summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2008-12-17 16:15:16 +0000
committerMartin Ritchie <ritchiem@apache.org>2008-12-17 16:15:16 +0000
commit4ee24df9f37980b0a9ad596d05874d601276871c (patch)
tree441de2e829a470474df2b90580ab36c00d580993 /java
parent67f005039d4f1e1c6fafe07c421e19445d8a9471 (diff)
downloadqpid-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.java5
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