Author: aconway Date: Fri Oct 30 20:33:46 2009 New Revision: 831446 URL: http://svn.apache.org/viewvc?rev=831446&view=rev Log: Fix memory leak in testCoincidentErrors due to un-joined connector thread.
Modified: qpid/trunk/qpid/cpp/src/qpid/client/ConnectionImpl.cpp qpid/trunk/qpid/cpp/src/tests/BrokerFixture.h qpid/trunk/qpid/cpp/src/tests/PartialFailure.cpp Modified: qpid/trunk/qpid/cpp/src/qpid/client/ConnectionImpl.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/client/ConnectionImpl.cpp?rev=831446&r1=831445&r2=831446&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/client/ConnectionImpl.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/client/ConnectionImpl.cpp Fri Oct 30 20:33:46 2009 @@ -156,8 +156,14 @@ handler.setRcvTimeoutTask(heartbeatTask); theTimer().add(heartbeatTask); } - - handler.waitForOpen(); + + try { + handler.waitForOpen(); + } catch (...) { + // Make sure the connector thread is joined. + connector->close(); + throw; + } // If the SASL layer has provided an "operational" userId for the connection, // put it in the negotiated settings. Modified: qpid/trunk/qpid/cpp/src/tests/BrokerFixture.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/BrokerFixture.h?rev=831446&r1=831445&r2=831446&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/BrokerFixture.h (original) +++ qpid/trunk/qpid/cpp/src/tests/BrokerFixture.h Fri Oct 30 20:33:46 2009 @@ -94,6 +94,7 @@ struct LocalConnection : public qpid::client::Connection { LocalConnection(uint16_t port) { open("localhost", port); } LocalConnection(const qpid::client::ConnectionSettings& s) { open(s); } + ~LocalConnection() { close(); } }; /** A local client connection via a socket proxy. */ Modified: qpid/trunk/qpid/cpp/src/tests/PartialFailure.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/PartialFailure.cpp?rev=831446&r1=831445&r2=831446&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/PartialFailure.cpp (original) +++ qpid/trunk/qpid/cpp/src/tests/PartialFailure.cpp Fri Oct 30 20:33:46 2009 @@ -98,8 +98,8 @@ async(c1.session).messageTransfer(content=pMessage("TEST_STORE_DO: s1[exception]", "q")); int alive=0; - try { Client c00(cluster[0], "c00"); ++alive; } catch (...) {} - try { Client c11(cluster[1], "c11"); ++alive; } catch (...) {} + try { Client c00(cluster[0], "c00"); ++alive; c00.close(); } catch (...) {} + try { Client c11(cluster[1], "c11"); ++alive; c11.close(); } catch (...) {} BOOST_CHECK_EQUAL(alive, 1); --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscr...@qpid.apache.org