Skip to content

Commit a1662f7

Browse files
committed
fix ConcurrentModificationException when completing invocations
1 parent bbaa0d0 commit a1662f7

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

sdk/src/main/java/software/amazon/lambda/durable/execution/ExecutionManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
import java.time.Instant;
66
import java.util.ArrayList;
77
import java.util.Collections;
8-
import java.util.HashMap;
98
import java.util.HashSet;
109
import java.util.List;
1110
import java.util.Map;
1211
import java.util.Objects;
1312
import java.util.Set;
1413
import java.util.concurrent.CancellationException;
1514
import java.util.concurrent.CompletableFuture;
15+
import java.util.concurrent.ConcurrentHashMap;
1616
import java.util.concurrent.ThreadPoolExecutor;
1717
import java.util.concurrent.atomic.AtomicReference;
1818
import java.util.stream.Collectors;
@@ -59,7 +59,7 @@ public class ExecutionManager implements AutoCloseable {
5959
private final DurableConfig durableConfig;
6060

6161
// ===== Thread Coordination =====
62-
private final Map<String, BaseDurableOperation> registeredOperations = Collections.synchronizedMap(new HashMap<>());
62+
private final Map<String, BaseDurableOperation> registeredOperations = new ConcurrentHashMap<>();
6363
private final Set<String> activeThreads = Collections.synchronizedSet(new HashSet<>());
6464
private static final ThreadLocal<ThreadContext> currentThreadContext = new ThreadLocal<>();
6565
private final CompletableFuture<Void> executionExceptionFuture = new CompletableFuture<>();

0 commit comments

Comments
 (0)