summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Connection.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-11-06 13:30:27 +0000
committerGordon Sim <gsim@apache.org>2008-11-06 13:30:27 +0000
commit2e987bf2b0c3f9318b28c79186a35f338c90ee6c (patch)
tree56af15ac228d02d6da144fafdecee4933a1abb36 /cpp/src/qpid/broker/Connection.cpp
parent324d26687919a5e1fc3de44f2998dce700e2149a (diff)
downloadqpid-python-2e987bf2b0c3f9318b28c79186a35f338c90ee6c.tar.gz
QPID-1417: ensure there are no dangling pointers in a connections output tasks
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@711855 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Connection.cpp')
-rw-r--r--cpp/src/qpid/broker/Connection.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/Connection.cpp b/cpp/src/qpid/broker/Connection.cpp
index 47ad8f74b7..28ab6cbf1b 100644
--- a/cpp/src/qpid/broker/Connection.cpp
+++ b/cpp/src/qpid/broker/Connection.cpp
@@ -169,6 +169,8 @@ void Connection::close(
{
QPID_LOG_IF(error, code != 200, "Connection " << mgmtId << " closed by error: " << text << "(" << code << ")");
adapter.close(code, text, classId, methodId);
+ //make sure we delete dangling pointers from outputTasks before deleting sessions
+ outputTasks.removeAll();
channels.clear();
getOutput().close();
}