diff --git a/spring-integration-core/src/main/java/org/springframework/integration/store/SimpleMessageStore.java b/spring-integration-core/src/main/java/org/springframework/integration/store/SimpleMessageStore.java index 795968af57..1a73d2ad66 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/store/SimpleMessageStore.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/store/SimpleMessageStore.java @@ -154,10 +154,13 @@ public class SimpleMessageStore extends AbstractMessageGroupStore implements Mes } private SimpleMessageGroup getMessageGroupInternal(Object groupId) { - if (!groupIdToMessageGroup.containsKey(groupId)) { - groupIdToMessageGroup.putIfAbsent(groupId, new SimpleMessageGroup(groupId)); + SimpleMessageGroup group = this.groupIdToMessageGroup.get(groupId); + if (group == null) { + SimpleMessageGroup newGroup = new SimpleMessageGroup(groupId); + SimpleMessageGroup previousGroup = this.groupIdToMessageGroup.putIfAbsent(groupId, newGroup); + group = (previousGroup == null) ? newGroup : previousGroup; } - return groupIdToMessageGroup.get(groupId); + return group; } }