summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/ha/HaBroker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/ha/HaBroker.cpp')
-rw-r--r--cpp/src/qpid/ha/HaBroker.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/cpp/src/qpid/ha/HaBroker.cpp b/cpp/src/qpid/ha/HaBroker.cpp
index e15fb0c096..0fd8c9e518 100644
--- a/cpp/src/qpid/ha/HaBroker.cpp
+++ b/cpp/src/qpid/ha/HaBroker.cpp
@@ -256,9 +256,10 @@ std::vector<Url> HaBroker::getKnownBrokers() const {
return knownBrokers;
}
-void HaBroker::shutdown() {
- QPID_LOG(critical, logPrefix << "Critical error, shutting down.");
+void HaBroker::shutdown(const std::string& message) {
+ QPID_LOG(critical, message);
broker.shutdown();
+ throw Exception(message);
}
BrokerStatus HaBroker::getStatus() const {
@@ -294,12 +295,11 @@ void HaBroker::setStatus(BrokerStatus newStatus, Mutex::ScopedLock& l) {
QPID_LOG(info, logPrefix << "Status change: "
<< printable(status) << " -> " << printable(newStatus));
bool legal = checkTransition(status, newStatus);
+ assert(legal);
if (!legal) {
- QPID_LOG(critical, logPrefix << "Illegal state transition: "
- << printable(status) << " -> " << printable(newStatus));
- shutdown();
+ shutdown(QPID_MSG(logPrefix << "Illegal state transition: "
+ << printable(status) << " -> " << printable(newStatus)));
}
- assert(legal); // FIXME aconway 2012-12-07: fail
status = newStatus;
statusChanged(l);
}