From 9c606ea06cdd604f7d840e0f69d6d9b5d6b46394 Mon Sep 17 00:00:00 2001 From: bibabolynn <1018527906@qq.com> Date: Wed, 3 Oct 2018 13:53:54 +0800 Subject: [PATCH] fix bug: (#3000) before fix,RAY_FUN_CACHE use only get method ,can only get null fix : put after create --- .../java/org/ray/runtime/functionmanager/FunctionManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/runtime/src/main/java/org/ray/runtime/functionmanager/FunctionManager.java b/java/runtime/src/main/java/org/ray/runtime/functionmanager/FunctionManager.java index e58674164..473a1f033 100644 --- a/java/runtime/src/main/java/org/ray/runtime/functionmanager/FunctionManager.java +++ b/java/runtime/src/main/java/org/ray/runtime/functionmanager/FunctionManager.java @@ -28,7 +28,7 @@ public class FunctionManager { * Cache from a RayFunc object to its corresponding FunctionDescriptor. Because * `LambdaUtils.getSerializedLambda` is expensive. */ - private static final ThreadLocal, FunctionDescriptor>> + private static final ThreadLocal, FunctionDescriptor>> RAY_FUNC_CACHE = ThreadLocal.withInitial(WeakHashMap::new); /** @@ -51,6 +51,7 @@ public class FunctionManager { final String methodName = serializedLambda.getImplMethodName(); final String typeDescriptor = serializedLambda.getImplMethodSignature(); functionDescriptor = new FunctionDescriptor(className, methodName, typeDescriptor); + RAY_FUNC_CACHE.get().put(func.getClass(),functionDescriptor); } return getFunction(driverId, functionDescriptor); }