diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-07-21 21:48:27 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-07-21 21:48:27 +0000 |
| commit | 44a7523a85f69f02b99e1464f543436932aa8322 (patch) | |
| tree | 85a3e8735b119af23e44930f3428f17cceb5baab /qpid/java/broker-plugins | |
| parent | 629595fd01a0839a225afdfbb91e4771096a42e0 (diff) | |
| download | qpid-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')
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); } |
