summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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())