summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-06-03 15:53:48 +0000
committerTed Ross <tross@apache.org>2008-06-03 15:53:48 +0000
commit83a3dc24856d12270c71fd56dd983769179e0727 (patch)
treed0052466e097ce3651ce305ca6c12039ceb2bff2 /cpp/src
parent244909ffb0d10ec1ac394c80d1d57d574503ca17 (diff)
downloadqpid-python-83a3dc24856d12270c71fd56dd983769179e0727.tar.gz
Management fixes: set session.detachedLifetime to 0, set journal->queue link in all cases
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@662830 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/broker/Queue.cpp12
-rw-r--r--cpp/src/qpid/broker/SessionState.cpp1
2 files changed, 10 insertions, 3 deletions
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp
index 0b26762697..1eeb1fb7f8 100644
--- a/cpp/src/qpid/broker/Queue.cpp
+++ b/cpp/src/qpid/broker/Queue.cpp
@@ -578,11 +578,17 @@ uint64_t Queue::getPersistenceId() const
}
void Queue::setPersistenceId(uint64_t _persistenceId) const
-{
- if (mgmtObject != 0 && persistenceId == 0)
+{
+ if (mgmtObject.get() != 0 && persistenceId == 0)
{
ManagementAgent::shared_ptr agent = ManagementAgent::getAgent ();
agent->addObject (mgmtObject, _persistenceId, 3);
+
+ if (externalQueueStore) {
+ ManagementObject::shared_ptr childObj = externalQueueStore->GetManagementObject();
+ if (childObj.get() != 0)
+ childObj->setReference(mgmtObject->getObjectId());
+ }
}
persistenceId = _persistenceId;
}
@@ -669,7 +675,7 @@ void Queue::setExternalQueueStore(ExternalQueueStore* inst) {
if (inst) {
ManagementObject::shared_ptr childObj = inst->GetManagementObject();
- if (childObj.get() != 0)
+ if (childObj.get() != 0 && mgmtObject.get() != 0)
childObj->setReference(mgmtObject->getObjectId());
}
}
diff --git a/cpp/src/qpid/broker/SessionState.cpp b/cpp/src/qpid/broker/SessionState.cpp
index 1ddb3f3026..dada7567f9 100644
--- a/cpp/src/qpid/broker/SessionState.cpp
+++ b/cpp/src/qpid/broker/SessionState.cpp
@@ -62,6 +62,7 @@ SessionState::SessionState(
mgmtObject = management::Session::shared_ptr
(new management::Session (this, parent, getId().getName()));
mgmtObject->set_attached (0);
+ mgmtObject->set_detachedLifespan (0);
agent->addObject (mgmtObject);
}
}