summaryrefslogtreecommitdiff
path: root/qpid/java/broker-core
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2014-01-29 14:20:20 +0000
committerKeith Wall <kwall@apache.org>2014-01-29 14:20:20 +0000
commitb9d59d86496cccf609210a0b1fc2fb9b9e224d7e (patch)
tree382e90002f060dc1b5fc6cd99aa0cae246184ab0 /qpid/java/broker-core
parente0b72e18ccadaf4e840ca6da74a4c9316d6335d6 (diff)
downloadqpid-python-b9d59d86496cccf609210a0b1fc2fb9b9e224d7e.tar.gz
QPID-5211: Prevent spurious not valid state transitions for MemoryMessageStore and test QuotaMessageStore
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1562452 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-core')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryMessageStore.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryMessageStore.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryMessageStore.java
index 8aead75c5b..1a7cd72cb6 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryMessageStore.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/store/AbstractMemoryMessageStore.java
@@ -133,9 +133,11 @@ abstract public class AbstractMemoryMessageStore extends NullMessageStore
@Override
public void close() throws Exception
{
- _stateManager.attainState(State.CLOSING);
- _closed.getAndSet(true);
- _stateManager.attainState(State.CLOSED);
+ if (_closed.compareAndSet(false, true))
+ {
+ _stateManager.attainState(State.CLOSING);
+ _stateManager.attainState(State.CLOSED);
+ }
}
@Override