Skip to content

Commit cb3c7a0

Browse files
garyrussellartembilan
authored andcommitted
INT-4441: Fix ACMH Concurrency Problem
JIRA: https://jira.spring.io/browse/INT-4441 Possible concurrent updates to `AbstractCorrelatingMessageHandler.groupIds` and `expireGroupScheduledFutures`. (cherry picked from commit f9d5198)
1 parent f9da438 commit cb3c7a0

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

spring-integration-core/src/main/java/org/springframework/integration/aggregator/AbstractCorrelatingMessageHandler.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,11 @@
2020
import java.util.Collections;
2121
import java.util.Comparator;
2222
import java.util.Date;
23-
import java.util.HashMap;
24-
import java.util.HashSet;
2523
import java.util.List;
2624
import java.util.Map;
2725
import java.util.Set;
2826
import java.util.UUID;
27+
import java.util.concurrent.ConcurrentHashMap;
2928
import java.util.concurrent.ScheduledFuture;
3029
import java.util.concurrent.locks.Lock;
3130

@@ -98,9 +97,9 @@ public abstract class AbstractCorrelatingMessageHandler extends AbstractMessageP
9897

9998
private final Comparator<Message<?>> sequenceNumberComparator = new MessageSequenceComparator();
10099

101-
private final Map<UUID, ScheduledFuture<?>> expireGroupScheduledFutures = new HashMap<>();
100+
private final Map<UUID, ScheduledFuture<?>> expireGroupScheduledFutures = new ConcurrentHashMap<>();
102101

103-
private final Set<Object> groupIds = new HashSet<>();
102+
private final Set<Object> groupIds = ConcurrentHashMap.newKeySet();
104103

105104
private MessageGroupProcessor outputProcessor;
106105

0 commit comments

Comments
 (0)