diff --git a/java/dependencies.bzl b/java/dependencies.bzl index d0178ba0f8f4..7c716166d399 100644 --- a/java/dependencies.bzl +++ b/java/dependencies.bzl @@ -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", diff --git a/java/runtime/pom.xml b/java/runtime/pom.xml index 1ce51971c03e..c75e2eeef13f 100644 --- a/java/runtime/pom.xml +++ b/java/runtime/pom.xml @@ -54,7 +54,7 @@ de.ruedigermoeller fst - 2.47 + 2.57 org.apache.commons diff --git a/java/runtime/src/main/java/org/ray/runtime/RayPyActorImpl.java b/java/runtime/src/main/java/org/ray/runtime/RayPyActorImpl.java index 2938478d22e8..f1f26d40874e 100644 --- a/java/runtime/src/main/java/org/ray/runtime/RayPyActorImpl.java +++ b/java/runtime/src/main/java/org/ray/runtime/RayPyActorImpl.java @@ -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); diff --git a/java/test/src/main/java/org/ray/api/test/RaySerializerTest.java b/java/test/src/main/java/org/ray/api/test/RaySerializerTest.java new file mode 100644 index 000000000000..33283abc7a36 --- /dev/null +++ b/java/test/src/main/java/org/ray/api/test/RaySerializerTest.java @@ -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"); + } + +}