From 4ee24df9f37980b0a9ad596d05874d601276871c Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Wed, 17 Dec 2008 16:15:16 +0000 Subject: 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 --- .../java/org/apache/qpid/server/subscription/MockSubscription.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'java/broker/src') 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 messages = new ArrayList(); + 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 -- cgit v1.2.1