From 2637311ef59a5f53c8f19c1b565d73f2b063b276 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 9 Feb 2022 20:20:30 +0000 Subject: [PATCH] Prevent potential ConcurrentModificationException in the build queue --- .../arbitrary/ArbitraryDataBuilderThread.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataBuilderThread.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataBuilderThread.java index f6c14669..1c03daed 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataBuilderThread.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataBuilderThread.java @@ -36,11 +36,15 @@ public class ArbitraryDataBuilderThread implements Runnable { continue; } + Map.Entry next = null; + // Find resources that are queued for building - Map.Entry next = buildManager.arbitraryDataBuildQueue - .entrySet().stream() - .filter(e -> e.getValue().isQueued()) - .findFirst().orElse(null); + synchronized (buildManager.arbitraryDataBuildQueue) { + next = buildManager.arbitraryDataBuildQueue + .entrySet().stream() + .filter(e -> e.getValue().isQueued()) + .findFirst().orElse(null); + } if (next == null) { continue;