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;