summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/tests/exception_test.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-11-03 17:21:38 +0000
committerGordon Sim <gsim@apache.org>2008-11-03 17:21:38 +0000
commit81f1c974ba6b8fa51c33785a8b947810792f2165 (patch)
treebc0bfc241234ece76ca1245b378c082a6e215cff /qpid/cpp/src/tests/exception_test.cpp
parent319ee053ffa4ac3db1969b6597bec9f20286e094 (diff)
downloadqpid-python-81f1c974ba6b8fa51c33785a8b947810792f2165.tar.gz
Various fixes arising from testing client failover:
* introduced new exception type for signalling connection failure (as distinct from any logical connection errors) * ConnectionImpl::closeInternal(): take copy of session map to prevent concurrent modification (by the same thread) as sessions are deleted and erase themselves. * ConnectionImpl::shutdown: hold lock before calling closeInternal(); mark handler failed before informing sessions of failure * SessionImpl::connectionBroker(): remove code as its rather meaningless * Don't swallow exceptions in Dispatcher * Handle exceptions in FailoverListener * Take weak_ptr to ConnectionImpl on constructor of Connector, then convert to shared_ptr when 'receiver' thread is started. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@710106 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests/exception_test.cpp')
-rw-r--r--qpid/cpp/src/tests/exception_test.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/qpid/cpp/src/tests/exception_test.cpp b/qpid/cpp/src/tests/exception_test.cpp
index f3f5435699..e420bf2f0b 100644
--- a/qpid/cpp/src/tests/exception_test.cpp
+++ b/qpid/cpp/src/tests/exception_test.cpp
@@ -92,7 +92,7 @@ QPID_AUTO_TEST_CASE(DisconnectedPop) {
ProxyConnection c(fix.broker->getPort(Broker::TCP_TRANSPORT));
fix.session.queueDeclare(arg::queue="q");
fix.subs.subscribe(fix.lq, "q");
- Catcher<ConnectionException> pop(bind(&LocalQueue::pop, &fix.lq, sys::TIME_SEC));
+ Catcher<TransportFailure> pop(bind(&LocalQueue::pop, &fix.lq, sys::TIME_SEC));
fix.connection.proxy.close();
BOOST_CHECK(pop.join());
}
@@ -106,11 +106,10 @@ QPID_AUTO_TEST_CASE(DisconnectedListen) {
fix.session.queueDeclare(arg::queue="q");
fix.subs.subscribe(l, "q");
- ScopedSuppressLogging sl; // Suppress messages for expected errors.
- Thread t(fix.subs);
+ Catcher<TransportFailure> runner(bind(&SubscriptionManager::run, boost::ref(fix.subs)));
fix.connection.proxy.close();
- t.join();
- BOOST_CHECK_THROW(fix.session.close(), ConnectionException);
+ runner.join();
+ BOOST_CHECK_THROW(fix.session.close(), TransportFailure);
}
QPID_AUTO_TEST_CASE(NoSuchQueueTest) {