diff options
author | Gordon Sim <gsim@apache.org> | 2007-06-14 07:12:14 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2007-06-14 07:12:14 +0000 |
commit | b3747b9e1a5090a5eea0ac067b94d259f17ee09a (patch) | |
tree | 9e20e176532ccddac807c7302422c3c03ece2e54 /cpp/src/qpid/broker/Connection.cpp | |
parent | 9f8a87e8fe1ac33935c816cf5fdc2c68aef3e556 (diff) | |
download | qpid-python-b3747b9e1a5090a5eea0ac067b94d259f17ee09a.tar.gz |
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
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: " << |