Author: rgodfrey
Date: Wed Jan 8 18:05:39 2014
New Revision: 1556593
URL: http://svn.apache.org/r1556593
Log:
QPID-5453 : [Java Broker] Fix to ensure that exclusive queues are always
unlocked when a session is closed
Modified:
qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
Modified:
qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java?rev=1556593&r1=1556592&r2=1556593&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
(original)
+++
qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
Wed Jan 8 18:05:39 2014
@@ -212,10 +212,21 @@ public class ServerSessionDelegate exten
{
ServerSession s = (ServerSession) session;
queue.setExclusiveOwningSession(s);
+
+ ((ServerSession) session).addSessionCloseTask(new
ServerSession.Task()
+ {
+ public void doTask(ServerSession session)
+ {
+ if(queue.getExclusiveOwningSession() ==
session)
+ {
+ queue.setExclusiveOwningSession(null);
+ }
+ }
+ });
+
if(queue.getAuthorizationHolder() == null)
{
queue.setAuthorizationHolder(s);
- queue.setExclusiveOwningSession(s);
((ServerSession) session).addSessionCloseTask(new
ServerSession.Task()
{
public void doTask(ServerSession session)
@@ -223,7 +234,6 @@ public class ServerSessionDelegate exten
if(queue.getAuthorizationHolder() ==
session)
{
queue.setAuthorizationHolder(null);
- queue.setExclusiveOwningSession(null);
}
}
});
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]