From 215ccc4ef1672087d6fe93be22b65c8838c6ce55 Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Fri, 27 Feb 2026 12:07:17 -0800 Subject: [PATCH] Prevent ConcurrentModificationException in TempTableThread shutdown --- api/src/org/labkey/api/data/TempTableTracker.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/api/src/org/labkey/api/data/TempTableTracker.java b/api/src/org/labkey/api/data/TempTableTracker.java index d62b76b4c31..919b96633d3 100644 --- a/api/src/org/labkey/api/data/TempTableTracker.java +++ b/api/src/org/labkey/api/data/TempTableTracker.java @@ -26,6 +26,7 @@ import java.io.IOException; import java.io.RandomAccessFile; import java.lang.ref.Cleaner; +import java.util.ArrayList; import java.util.Map; import java.util.TreeMap; import java.util.TreeSet; @@ -286,7 +287,8 @@ public void shutdownStarted() { synchronized(createdTableNames) { - for (TempTableTracker ttt : createdTableNames.values()) + // Copy createdTableNames.values() to prevent ConcurrentModificationException + for (TempTableTracker ttt : new ArrayList<>(createdTableNames.values())) { ttt.state.run(); }