summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2009-02-06 16:39:17 +0000
committerAlan Conway <aconway@apache.org>2009-02-06 16:39:17 +0000
commitd6deb54c0ee69729d10cff57191e0d9711ed13f3 (patch)
treeb70176f26f386080569f72c990ae151120b75aaa
parentb0ddeb44a42706e064664eb94c6e6d1a29bbf3b4 (diff)
downloadqpid-python-d6deb54c0ee69729d10cff57191e0d9711ed13f3.tar.gz
Fix seg fault if cluster and management are enabled.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@741624 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/cluster/Cluster.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/qpid/cpp/src/qpid/cluster/Cluster.cpp b/qpid/cpp/src/qpid/cluster/Cluster.cpp
index 4709ca759d..8e6ece11cc 100644
--- a/qpid/cpp/src/qpid/cluster/Cluster.cpp
+++ b/qpid/cpp/src/qpid/cluster/Cluster.cpp
@@ -109,6 +109,14 @@ Cluster::Cluster(const std::string& name_, const Url& url_, broker::Broker& b, b
lastBroker(false),
sequence(0)
{
+ mAgent = ManagementAgent::Singleton::getInstance();
+ if (mAgent != 0){
+ _qmf::Package packageInit(mAgent);
+ mgmtObject = new _qmf::Cluster (mAgent, this, &broker,name,myUrl.str());
+ mAgent->addObject (mgmtObject);
+ mgmtObject->set_status("JOINING");
+ }
+
failoverExchange.reset(new FailoverExchange(this));
if (quorum_) quorum.init();
cpg.join(name);
@@ -125,13 +133,6 @@ void Cluster::initialize() {
if (myUrl.empty())
myUrl = Url::getIpAddressesUrl(broker.getPort(broker::Broker::TCP_TRANSPORT));
QPID_LOG(notice, *this << " joining cluster " << name << " with url=" << myUrl);
- mAgent = ManagementAgent::Singleton::getInstance();
- if (mAgent != 0){
- _qmf::Package packageInit(mAgent);
- mgmtObject = new _qmf::Cluster (mAgent, this, &broker,name,myUrl.str());
- mAgent->addObject (mgmtObject);
- mgmtObject->set_status("JOINING");
- }
broker.getKnownBrokers = boost::bind(&Cluster::getUrls, this);
dispatcher.start();
deliverEventQueue.start();