diff --git a/common/src/main/java/org/embeddedt/modernfix/resources/PackResourcesCacheEngine.java b/common/src/main/java/org/embeddedt/modernfix/resources/PackResourcesCacheEngine.java index d02c55d8..577e1c50 100644 --- a/common/src/main/java/org/embeddedt/modernfix/resources/PackResourcesCacheEngine.java +++ b/common/src/main/java/org/embeddedt/modernfix/resources/PackResourcesCacheEngine.java @@ -31,7 +31,7 @@ public class PackResourcesCacheEngine { private final Map> namespacesByType; private final Set containedPaths; private final EnumMap>> resourceListings; - private CompletableFuture cacheFuture; + private volatile CompletableFuture cacheFuture; public PackResourcesCacheEngine(Function> namespacesRetriever, BiFunction basePathRetriever) { this.namespacesByType = new EnumMap<>(PackType.class); @@ -114,8 +114,12 @@ public class PackResourcesCacheEngine { private void awaitLoad() { if(this.cacheFuture != null) { - this.cacheFuture.join(); - this.cacheFuture = null; + synchronized (this) { + if(this.cacheFuture != null) { + this.cacheFuture.join(); + this.cacheFuture = null; + } + } } }