This is an automated email from the ASF dual-hosted git repository. kturner pushed a commit to branch 2.1 in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/2.1 by this push: new 14b63d9312 fixes ConcurrentModificationExceptions in Migrations class (#5523) 14b63d9312 is described below commit 14b63d93121a0733ee6aa4b50e8b49be57971bad Author: Keith Turner <ktur...@apache.org> AuthorDate: Mon May 5 12:13:06 2025 -0400 fixes ConcurrentModificationExceptions in Migrations class (#5523) --- .../src/main/java/org/apache/accumulo/manager/Migrations.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/Migrations.java b/server/manager/src/main/java/org/apache/accumulo/manager/Migrations.java index 68c7103960..55a2a4218e 100644 --- a/server/manager/src/main/java/org/apache/accumulo/manager/Migrations.java +++ b/server/manager/src/main/java/org/apache/accumulo/manager/Migrations.java @@ -100,13 +100,19 @@ public class Migrations { } public Set<KeyExtent> snapshot(DataLevel dl) { - return Set.copyOf(migrations.get(dl).keySet()); + var migrationsForLevel = migrations.get(dl); + synchronized (migrationsForLevel) { + return Set.copyOf(migrationsForLevel.keySet()); + } } public Map<DataLevel,Set<KeyExtent>> mutableCopy() { Map<DataLevel,Set<KeyExtent>> copy = new EnumMap<>(DataLevel.class); for (var dataLevel : DataLevel.values()) { - copy.put(dataLevel, new HashSet<>(migrations.get(dataLevel).keySet())); + var migrationsForLevel = migrations.get(dataLevel); + synchronized (migrationsForLevel) { + copy.put(dataLevel, new HashSet<>(migrationsForLevel.keySet())); + } } return copy; }