diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2008-12-17 16:15:16 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2008-12-17 16:15:16 +0000 |
| commit | 4ee24df9f37980b0a9ad596d05874d601276871c (patch) | |
| tree | 441de2e829a470474df2b90580ab36c00d580993 /java | |
| parent | 67f005039d4f1e1c6fafe07c421e19445d8a9471 (diff) | |
| download | qpid-python-4ee24df9f37980b0a9ad596d05874d601276871c.tar.gz | |
QPID-1524 : Added missing locking that could cause simultaneous delivery by multiple threads on the MockSubscription
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@727421 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
| -rw-r--r-- | java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java b/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java index 8b6b630aad..33fd669d5c 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java +++ b/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java @@ -22,6 +22,8 @@ package org.apache.qpid.server.subscription; */ import java.util.ArrayList; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; import org.apache.qpid.AMQException; import org.apache.qpid.framing.AMQShortString; @@ -40,6 +42,7 @@ public class MockSubscription implements Subscription private QueueEntry lastSeen = null; private State _state = State.ACTIVE; private ArrayList<QueueEntry> messages = new ArrayList<QueueEntry>(); + private final Lock _stateChangeLock = new ReentrantLock(); public void close() { @@ -83,6 +86,7 @@ public class MockSubscription implements Subscription public void getSendLock() { + _stateChangeLock.lock(); } public boolean hasInterest(QueueEntry msg) @@ -121,6 +125,7 @@ public class MockSubscription implements Subscription public void releaseSendLock() { + _stateChangeLock.unlock(); } public void resend(QueueEntry entry) throws AMQException |
