From b3747b9e1a5090a5eea0ac067b94d259f17ee09a Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Thu, 14 Jun 2007 07:12:14 +0000 Subject: Add ability for a queue to record all bindings to it, such that these can be removed when the queue is deleted. Fix to QPID-438 git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@547151 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/Connection.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'cpp/src/qpid/broker/Connection.cpp') diff --git a/cpp/src/qpid/broker/Connection.cpp b/cpp/src/qpid/broker/Connection.cpp index 15031ff243..d809ef14d9 100644 --- a/cpp/src/qpid/broker/Connection.cpp +++ b/cpp/src/qpid/broker/Connection.cpp @@ -96,8 +96,10 @@ void Connection::idleIn(){} void Connection::closed(){ try { while (!exclusiveQueues.empty()) { - broker.getQueues().destroy(exclusiveQueues.front()->getName()); + Queue::shared_ptr q(exclusiveQueues.front()); + broker.getQueues().destroy(q->getName()); exclusiveQueues.erase(exclusiveQueues.begin()); + q->unbind(broker.getExchanges(), q); } } catch(std::exception& e) { QPID_LOG(error, " Unhandled exception while closing session: " << -- cgit v1.2.1