diff options
| author | Gordon Sim <gsim@apache.org> | 2013-05-24 10:24:38 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2013-05-24 10:24:38 +0000 |
| commit | 3f5c0af52efb0de29de567dc00b041c871daba65 (patch) | |
| tree | 885516c889fa4dadcd047574ede391779aaab60c /cpp/src/qpid/broker/IngressCompletion.cpp | |
| parent | b008ec4e225f4381a07175587437cae07b51409d (diff) | |
| download | qpid-python-3f5c0af52efb0de29de567dc00b041c871daba65.tar.gz | |
QPID-4859: prevent circular reference on queues still holding durable messages
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1485995 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/IngressCompletion.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/IngressCompletion.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/cpp/src/qpid/broker/IngressCompletion.cpp b/cpp/src/qpid/broker/IngressCompletion.cpp index 5affd2b940..51eafb8d86 100644 --- a/cpp/src/qpid/broker/IngressCompletion.cpp +++ b/cpp/src/qpid/broker/IngressCompletion.cpp @@ -39,7 +39,10 @@ void IngressCompletion::flush() queues.swap(copy); } for (Queues::const_iterator i = copy.begin(); i != copy.end(); ++i) { - (*i)->flush(); + boost::shared_ptr<Queue> q(i->lock()); + if (q) { + q->flush(); + } } } }} // namespace qpid::broker |
