You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2013/02/07 20:26:20 UTC

svn commit: r1443679 - in /qpid/trunk/qpid/cpp/src/qpid: broker/QueueSettings.cpp broker/QueueSettings.h broker/SessionAdapter.cpp ha/BrokerReplicator.cpp ha/ReplicationTest.cpp

Author: aconway
Date: Thu Feb  7 19:26:20 2013
New Revision: 1443679

URL: http://svn.apache.org/r1443679
Log:
QPID-4555: HA Add QueueSettings::declaredExclusive for exclusive queues.

This is set when the queue is created, before calling
ConfigurationObserver::queueCreate, and does not change thereafter.

The existing Queue::owner not set until after ConfigurationObserver::queueCreate
and does change as ownership can be released and acquired.

Modified:
    qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp
    qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.h
    qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp
    qpid/trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
    qpid/trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp?rev=1443679&r1=1443678&r2=1443679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp Thu Feb  7 19:26:20 2013
@@ -77,6 +77,7 @@ const QueueSettings::Aliases QueueSettin
 QueueSettings::QueueSettings(bool d, bool a) :
     durable(d),
     autodelete(a),
+    declaredExclusive(false),
     priorities(0),
     defaultFairshare(0),
     shareGroups(false),

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.h?rev=1443679&r1=1443678&r2=1443679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.h Thu Feb  7 19:26:20 2013
@@ -43,6 +43,7 @@ struct QueueSettings
 
     bool durable;
     bool autodelete;
+    bool declaredExclusive;
 
     //basic queue types:
     std::string lvqKey;

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp?rev=1443679&r1=1443678&r2=1443679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp Thu Feb  7 19:26:20 2013
@@ -294,6 +294,7 @@ void SessionAdapter::QueueHandlerImpl::d
         } catch (const qpid::types::Exception& e) {
             throw InvalidArgumentException(e.what());
         }
+        settings.declaredExclusive = exclusive;
 
         std::pair<Queue::shared_ptr, bool> queue_created =
             getBroker().createQueue(name, settings,

Modified: qpid/trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp?rev=1443679&r1=1443678&r2=1443679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp Thu Feb  7 19:26:20 2013
@@ -600,9 +600,11 @@ void BrokerReplicator::doEventMembersUpd
 void BrokerReplicator::doEventSubscribe(Variant::Map& values) {
     // Ignore queue replicator subscriptions.
     if (QueueReplicator::isReplicatorName(values[DEST].asString())) return;
-    QPID_LOG(debug, logPrefix << "Subscribe event: " << values[QNAME]);
     boost::shared_ptr<QueueReplicator> qr = findQueueReplicator(values[QNAME]);
-    if (qr) qr->setSubscribed();
+    if (qr) {
+        qr->setSubscribed();
+        QPID_LOG(debug, logPrefix << "Subscribe event: " << values[QNAME]);
+    }
 }
 
 namespace {

Modified: qpid/trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp?rev=1443679&r1=1443678&r2=1443679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp Thu Feb  7 19:26:20 2013
@@ -65,7 +65,7 @@ ReplicateLevel ReplicationTest::getLevel
 
 ReplicateLevel ReplicationTest::useLevel(const broker::Queue& q)
 {
-    bool ignore = q.isAutoDelete() && q.hasExclusiveOwner() &&
+    bool ignore = q.isAutoDelete() && q.getSettings().declaredExclusive &&
         !q.getSettings().autoDeleteDelay;
     return ignore ? ReplicationTest(NONE).getLevel(q) : getLevel(q);
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org