Author: ritchiem
Date: Wed Dec 17 08:15:16 2008
New Revision: 727421
URL: http://svn.apache.org/viewvc?rev=727421&view=rev
Log:
QPID-1524 : Added missing locking that could cause simultaneous delivery by
multiple threads on the MockSubscription
Modified:
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java
Modified:
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java?rev=727421&r1=727420&r2=727421&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java
(original)
+++
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/subscription/MockSubscription.java
Wed Dec 17 08:15:16 2008
@@ -22,6 +22,8 @@
*/
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 @@
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 void getSendLock()
{
+ _stateChangeLock.lock();
}
public boolean hasInterest(QueueEntry msg)
@@ -121,6 +125,7 @@
public void releaseSendLock()
{
+ _stateChangeLock.unlock();
}
public void resend(QueueEntry entry) throws AMQException