From 3ac6107d1b9e69598dcccf6c58fd88ad331ce7fc Mon Sep 17 00:00:00 2001 From: ninjaguardian <110734253+ninjaguardian@users.noreply.github.com> Date: Tue, 11 Aug 2026 20:45:50 -0500 Subject: [PATCH] Fix ConcurrentModificationException --- .../dynamictrees/api/registry/AbstractRegistry.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/com/dtteam/dynamictrees/api/registry/AbstractRegistry.java b/common/src/main/java/com/dtteam/dynamictrees/api/registry/AbstractRegistry.java index 6fe934816..c730973ce 100644 --- a/common/src/main/java/com/dtteam/dynamictrees/api/registry/AbstractRegistry.java +++ b/common/src/main/java/com/dtteam/dynamictrees/api/registry/AbstractRegistry.java @@ -188,9 +188,14 @@ public final void lock() { this.locked = true; this.dump(); - // Run all of the on lock runnables and then clear them. - this.onLockRunnables.forEach(Runnable::run); - this.onLockRunnables.clear(); + if (onLockRunnables.isEmpty()) { + return; + } + + // Copy the onLockRunnables to prevent a ConcurrentModificationException + List current = new ArrayList<>(onLockRunnables); + onLockRunnables.clear(); + current.forEach(Runnable::run); } /**