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 {