From 50cc5004292015ac325f3ffb761e2265b588ee1e Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Thu, 3 Nov 2011 10:19:12 -0400 Subject: [PATCH] fixed atomicity --- .../integration/store/SimpleMessageStore.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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; } }