From 641e910790d5fde3f9c8e9e2308b299cd2b6242c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Mon, 1 Feb 2021 10:01:24 +0100 Subject: [PATCH] Synchronize initialization of callback methods map. --- .../java/li/cil/oc2/api/bus/device/object/Callbacks.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java b/src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java index b05d0e59..2d1ffcdc 100644 --- a/src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java +++ b/src/main/java/li/cil/oc2/api/bus/device/object/Callbacks.java @@ -90,9 +90,11 @@ public final class Callbacks { /////////////////////////////////////////////////////////////////// private static List getMethods(final Class type) { - return METHOD_BY_TYPE.computeIfAbsent(type, c -> Arrays.stream(c.getMethods()) - .filter(m -> m.isAnnotationPresent(Callback.class)) - .collect(Collectors.toList())); + synchronized (METHOD_BY_TYPE) { + return METHOD_BY_TYPE.computeIfAbsent(type, c -> Arrays.stream(c.getMethods()) + .filter(m -> m.isAnnotationPresent(Callback.class)) + .collect(Collectors.toList())); + } } private static final class ObjectRPCMethod extends AbstractRPCMethod {