From 671c0f769e480e2215f4bd94449342136599f2c0 Mon Sep 17 00:00:00 2001 From: Qing Wang Date: Sat, 8 Jun 2019 22:56:00 +0800 Subject: [PATCH] [Java] Fix serializing issues of `RaySerializer` (#4887) * Fix * Address comment. --- java/dependencies.bzl | 2 +- java/runtime/pom.xml | 2 +- .../java/org/ray/runtime/RayPyActorImpl.java | 4 +++- .../org/ray/api/test/RaySerializerTest.java | 23 +++++++++++++++++++ 4 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 java/test/src/main/java/org/ray/api/test/RaySerializerTest.java diff --git a/java/dependencies.bzl b/java/dependencies.bzl index d0178ba0f..7c716166d 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 1ce51971c..c75e2eeef 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 2938478d2..f1f26d408 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 000000000..33283abc7 --- /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"); + } + +}