summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-07-21 21:48:27 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-07-21 21:48:27 +0000
commit44a7523a85f69f02b99e1464f543436932aa8322 (patch)
tree85a3e8735b119af23e44930f3428f17cceb5baab /qpid/java/broker-plugins
parent629595fd01a0839a225afdfbb91e4771096a42e0 (diff)
downloadqpid-python-44a7523a85f69f02b99e1464f543436932aa8322.tar.gz
QPID-5776 : Clean up sessions and links on AMQP 1.0 connection closing
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1612404 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
-rw-r--r--qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java8
-rw-r--r--qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java5
2 files changed, 13 insertions, 0 deletions
diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java
index 6d780461f4..31a962f71e 100644
--- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java
+++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Connection_1_0.java
@@ -209,7 +209,15 @@ public class Connection_1_0 implements ConnectionEventListener, AMQConnectionMod
public void closeReceived()
{
+ Collection<Session_1_0> sessions = new ArrayList(_sessions);
+
+ for(Session_1_0 session : sessions)
+ {
+ session.remoteEnd(new End());
+ }
+
List<Action<? super Connection_1_0>> taskCopy;
+
synchronized (_closeTasks)
{
taskCopy = new ArrayList<Action<? super Connection_1_0>>(_closeTasks);
diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
index 2c7884b3ce..b870eaf630 100644
--- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
+++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
@@ -510,6 +510,11 @@ public class Session_1_0 implements SessionEventListener, AMQSessionModel<Sessio
iter.remove();
}
+ for(LinkEndpoint linkEndpoint : _endpoint.getLocalLinkEndpoints())
+ {
+ linkEndpoint.remoteDetached(new Detach());
+ }
+
_connection.sessionEnded(this);
}