diff --git a/java/runtime/src/main/java/org/ray/runtime/WorkerContext.java b/java/runtime/src/main/java/org/ray/runtime/WorkerContext.java index ebe00cfa1..7708466ed 100644 --- a/java/runtime/src/main/java/org/ray/runtime/WorkerContext.java +++ b/java/runtime/src/main/java/org/ray/runtime/WorkerContext.java @@ -1,5 +1,6 @@ package org.ray.runtime; +import java.util.HashMap; import org.ray.api.id.UniqueId; import org.ray.runtime.config.WorkerMode; import org.ray.runtime.task.TaskSpec; @@ -83,7 +84,7 @@ public class WorkerContext { 0, null, null, - null, + new HashMap<>(), null); } } diff --git a/java/runtime/src/main/java/org/ray/runtime/util/ResourceUtil.java b/java/runtime/src/main/java/org/ray/runtime/util/ResourceUtil.java index 499ef8f77..98cc43631 100644 --- a/java/runtime/src/main/java/org/ray/runtime/util/ResourceUtil.java +++ b/java/runtime/src/main/java/org/ray/runtime/util/ResourceUtil.java @@ -18,15 +18,16 @@ public class ResourceUtil { */ public static Map getResourcesMapFromArray(RayRemote remoteAnnotation) { Map resourceMap = new HashMap<>(); - if (remoteAnnotation == null) { - return resourceMap; - } - for (ResourceItem item : remoteAnnotation.resources()) { - if (!item.name().isEmpty()) { - resourceMap.put(item.name(), item.value()); + if (remoteAnnotation != null) { + for (ResourceItem item : remoteAnnotation.resources()) { + if (!item.name().isEmpty()) { + resourceMap.put(item.name(), item.value()); + } } } - + if (!resourceMap.containsKey(CPU_LITERAL)) { + resourceMap.put(CPU_LITERAL, 0.0); + } return resourceMap; } diff --git a/java/test/src/main/java/org/ray/api/test/WaitTest.java b/java/test/src/main/java/org/ray/api/test/WaitTest.java index ee1df5f30..ac18276bf 100644 --- a/java/test/src/main/java/org/ray/api/test/WaitTest.java +++ b/java/test/src/main/java/org/ray/api/test/WaitTest.java @@ -28,8 +28,7 @@ public class WaitTest { return "hi"; } - @Test - public void test() { + private static void testWait() { RayObject obj1 = Ray.call(WaitTest::hi); RayObject obj2 = Ray.call(WaitTest::delayedHi); @@ -43,4 +42,20 @@ public class WaitTest { Assert.assertEquals("hi", readyList.get(0).get()); } + @Test + public void testWaitInDriver() { + testWait(); + } + + @RayRemote + public static Object waitInWorker() { + testWait(); + return null; + } + + @Test + public void testWaitInWorker() { + RayObject res = Ray.call(WaitTest::waitInWorker); + res.get(); + } }