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 c032c58e3f..816db96d6e 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 @@ -169,10 +169,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; } }