summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2015-04-14 22:25:13 +0000
committerKeith Wall <kwall@apache.org>2015-04-14 22:25:13 +0000
commit96ee26de201537df222243d1f9a3a7bf6ad4c634 (patch)
treee2161b7399f6e11247c0f394df990f90ca06bb40
parent7fba002cd5acb236c7417a44ed7ef330eba84529 (diff)
downloadqpid-python-96ee26de201537df222243d1f9a3a7bf6ad4c634.tar.gz
QPID-6495: [Java Broker] Ensure the closing a 0-10 connection releases protocol layer session resources before the Connection model close future returns for the caller
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1673570 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
index 227281bbaf..e3b7a9282f 100644
--- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
+++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
@@ -396,7 +396,8 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S
{
if(!isClosing())
{
- closeSubscriptions();
+ markAllSessionsClosed();
+
performDeleteTasks();
setState(CLOSING);
@@ -582,6 +583,16 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S
}
}
+ private void markAllSessionsClosed()
+ {
+ for (Session ssn : getChannels())
+ {
+ final ServerSession session = (ServerSession) ssn;
+ ((ServerSession) ssn).setClose(true);
+ session.closed();
+ }
+ }
+
public void receivedComplete()
{
for (Session ssn : getChannels())