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(); }