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


Reply via email to