diff options
Diffstat (limited to 'cpp/src/qpid/broker/Connection.cpp')
-rw-r--r-- | cpp/src/qpid/broker/Connection.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
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: " << |