[Java] Fix serializing issues of RaySerializer (#4887)

* Fix

* Address comment.
This commit is contained in:
Qing Wang
2019-06-08 22:56:00 +08:00
committed by GitHub
parent ec8aaf011b
commit 671c0f769e
4 changed files with 28 additions and 3 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ def gen_java_deps():
"com.sun.xml.bind:jaxb-impl:2.3.0",
"com.typesafe:config:1.3.2",
"commons-io:commons-io:2.5",
"de.ruedigermoeller:fst:2.47",
"de.ruedigermoeller:fst:2.57",
"javax.xml.bind:jaxb-api:2.3.0",
"org.apache.commons:commons-lang3:3.4",
"org.ow2.asm:asm:6.0",
+1 -1
View File
@@ -54,7 +54,7 @@
<dependency>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
<version>2.47</version>
<version>2.57</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -20,7 +20,9 @@ public class RayPyActorImpl extends RayActorImpl implements RayPyActor {
*/
private String className;
private RayPyActorImpl() {}
// Note that this empty constructor must be public
// since it'll be needed when deserializing.
public RayPyActorImpl() {}
public RayPyActorImpl(UniqueId id, String moduleName, String className) {
super(id);
@@ -0,0 +1,23 @@
package org.ray.api.test;
import org.ray.api.RayPyActor;
import org.ray.api.id.UniqueId;
import org.ray.runtime.RayPyActorImpl;
import org.ray.runtime.util.Serializer;
import org.testng.Assert;
import org.testng.annotations.Test;
public class RaySerializerTest {
@Test
public void testSerializePyActor() {
final UniqueId pyActorId = UniqueId.randomId();
RayPyActor pyActor = new RayPyActorImpl(pyActorId, "test", "RaySerializerTest");
byte[] bytes = Serializer.encode(pyActor);
RayPyActor result = Serializer.decode(bytes);
Assert.assertEquals(result.getId(), pyActorId);
Assert.assertEquals(result.getModuleName(), "test");
Assert.assertEquals(result.getClassName(), "RaySerializerTest");
}
}