You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2015/07/29 13:23:37 UTC

activemq git commit: https://issues.apache.org/jira/browse/AMQ-5875

Repository: activemq
Updated Branches:
  refs/heads/master eb8723c1e -> 5684d093c


https://issues.apache.org/jira/browse/AMQ-5875

Reworking DurableConduitBridge to look up subscriptions from the
TopicRegion  instead of the RegionBroker since inactive subscriptions
need to be looked at as well when dynamicOnly is false for a
network bridge.


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/5684d093
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/5684d093
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/5684d093

Branch: refs/heads/master
Commit: 5684d093c0fe643c9967b03dbf4d0661f2e0227a
Parents: eb8723c
Author: Christopher L. Shannon (cshannon) <ch...@gmail.com>
Authored: Tue Jul 28 17:44:53 2015 +0000
Committer: gtully <ga...@gmail.com>
Committed: Wed Jul 29 12:10:05 2015 +0100

----------------------------------------------------------------------
 .../java/org/apache/activemq/broker/region/TopicRegion.java  | 4 ++++
 .../org/apache/activemq/network/DurableConduitBridge.java    | 8 +++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/5684d093/activemq-broker/src/main/java/org/apache/activemq/broker/region/TopicRegion.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/region/TopicRegion.java b/activemq-broker/src/main/java/org/apache/activemq/broker/region/TopicRegion.java
index ca79b25..51c9beb 100755
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/region/TopicRegion.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/region/TopicRegion.java
@@ -424,4 +424,8 @@ public class TopicRegion extends AbstractRegion {
     public DurableTopicSubscription getDurableSubscription(SubscriptionKey key) {
         return durableSubscriptions.get(key);
     }
+
+    public Map<SubscriptionKey, DurableTopicSubscription> getDurableSubscriptions() {
+        return durableSubscriptions;
+    }
 }

http://git-wip-us.apache.org/repos/asf/activemq/blob/5684d093/activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java b/activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java
index b4d04f6..4b6a6c7 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java
@@ -18,7 +18,9 @@ package org.apache.activemq.network;
 
 import java.io.IOException;
 
+import org.apache.activemq.broker.region.RegionBroker;
 import org.apache.activemq.broker.region.Subscription;
+import org.apache.activemq.broker.region.TopicRegion;
 import org.apache.activemq.command.ActiveMQDestination;
 import org.apache.activemq.command.ConsumerId;
 import org.apache.activemq.command.ConsumerInfo;
@@ -64,11 +66,15 @@ public class DurableConduitBridge extends ConduitBridge {
                     try {
                         //Filtering by non-empty subscriptions, see AMQ-5875
                         if (dest.isTopic()) {
+                            RegionBroker regionBroker = (RegionBroker) brokerService.getRegionBroker();
+                            TopicRegion topicRegion = (TopicRegion) regionBroker.getTopicRegion();
+
                             String candidateSubName = getSubscriberName(dest);
-                            for (Subscription subscription : this.getRegionSubscriptions(dest)) {
+                            for (Subscription subscription : topicRegion.getDurableSubscriptions().values()) {
                                 String subName = subscription.getConsumerInfo().getSubscriptionName();
                                 if (subName != null && subName.equals(candidateSubName)) {
                                     DemandSubscription sub = createDemandSubscription(dest);
+                                    sub.getLocalInfo().setSubscriptionName(getSubscriberName(dest));
                                     sub.setStaticallyIncluded(true);
                                     addSubscription(sub);
                                     break;