diff options
author | Ted Ross <tross@apache.org> | 2009-09-03 17:20:45 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2009-09-03 17:20:45 +0000 |
commit | 22008b3dfae9f69f3a26df68da7852c01933111e (patch) | |
tree | 45d4b299269491d9a085687f3d7575227c31eef5 /cpp | |
parent | c85b4f30bf760f38972fa91a5b9da12434c4e272 (diff) | |
download | qpid-python-22008b3dfae9f69f3a26df68da7852c01933111e.tar.gz |
QPID-2045 - crash when destroying a federation link with a dynamic bridge
Committed patch from Ken Guisti
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@811046 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/src/qpid/broker/Link.cpp | 4 | ||||
-rwxr-xr-x | cpp/src/tests/federation.py | 9 |
2 files changed, 10 insertions, 3 deletions
diff --git a/cpp/src/qpid/broker/Link.cpp b/cpp/src/qpid/broker/Link.cpp index 9a845b0339..cdba18ccf9 100644 --- a/cpp/src/qpid/broker/Link.cpp +++ b/cpp/src/qpid/broker/Link.cpp @@ -200,8 +200,10 @@ void Link::destroy () // Move the bridges to be deleted into a local vector so there is no // corruption of the iterator caused by bridge deletion. - for (Bridges::iterator i = active.begin(); i != active.end(); i++) + for (Bridges::iterator i = active.begin(); i != active.end(); i++) { + (*i)->closed(); toDelete.push_back(*i); + } active.clear(); for (Bridges::iterator i = created.begin(); i != created.end(); i++) diff --git a/cpp/src/tests/federation.py b/cpp/src/tests/federation.py index 1175074093..aa68e8198b 100755 --- a/cpp/src/tests/federation.py +++ b/cpp/src/tests/federation.py @@ -573,8 +573,13 @@ class FederationTests(TestBase010): result = bridge.close() self.assertEqual(result.status, 0) - result = bridge2.close() - self.assertEqual(result.status, 0) + + # Extra test: don't explicitly close() bridge2. When the link is closed, + # it should clean up bridge2 automagically. verify_cleanup() will detect + # if bridge2 isn't cleaned up and will fail the test. + # + #result = bridge2.close() + #self.assertEqual(result.status, 0) result = link.close() self.assertEqual(result.status, 0) |