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 <[email protected]>
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;
}