Skip to content

Commit 536ee7b

Browse files
committed
fix concurrent modification
need to clone the list in classNamesBySourceFile Map to avoid concurrent modification of it while registering a new class
1 parent 26bee84 commit 536ee7b

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/ClassesToRetransformFinder.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,10 @@ Trie getAllChangedClasses(ConfigurationComparer comparer) {
8989

9090
private void processAdditionalClasses(String sourceFile, Trie changedClasses) {
9191
sourceFile = stripPackagePath(sourceFile);
92-
List<String> additionalClasses = classNamesBySourceFile.get(sourceFile);
92+
// need to clone the list to avoid concurrent modification during iteration
93+
List<String> additionalClasses =
94+
classNamesBySourceFile.computeIfPresent(
95+
sourceFile, (k, classNames) -> new ArrayList<>(classNames));
9396
if (additionalClasses == null) {
9497
return;
9598
}

0 commit comments

Comments
 (0)