mirror of https://github.com/apache/activemq.git
https://issues.apache.org/jira/browse/AMQ-3353 - fix regression in NoDuplicateOnTopicNetworkTest, suppression only relevant to active durable subs
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1153588 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
01ae0eaf92
commit
a6b85cc9f3
|
@ -270,7 +270,7 @@ public class DurableTopicSubscription extends PrefetchSubscription implements Us
|
||||||
|
|
||||||
|
|
||||||
public synchronized String toString() {
|
public synchronized String toString() {
|
||||||
return "DurableTopicSubscription-" + getSubscriptionKey() + ", id=" + info.getConsumerId() + ", destinations=" + destinations.size() + ", total=" + enqueueCounter + ", pending="
|
return "DurableTopicSubscription-" + getSubscriptionKey() + ", id=" + info.getConsumerId() + ", active=" + isActive() + ", destinations=" + destinations.size() + ", total=" + enqueueCounter + ", pending="
|
||||||
+ getPendingQueueSize() + ", dispatched=" + dispatchCounter + ", inflight=" + dispatched.size() + ", prefetchExtension=" + this.prefetchExtension;
|
+ getPendingQueueSize() + ", dispatched=" + dispatchCounter + ", inflight=" + dispatched.size() + ", prefetchExtension=" + this.prefetchExtension;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1048,7 +1048,11 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
|
||||||
List<ConsumerId> networkConsumers = sub.getConsumerInfo().getNetworkConsumerIds();
|
List<ConsumerId> networkConsumers = sub.getConsumerInfo().getNetworkConsumerIds();
|
||||||
if (!networkConsumers.isEmpty()) {
|
if (!networkConsumers.isEmpty()) {
|
||||||
if (matchFound(candidateConsumers, networkConsumers)) {
|
if (matchFound(candidateConsumers, networkConsumers)) {
|
||||||
suppress = isActiveDurableSub(sub) && hasLowerPriority(sub, candidate.getLocalInfo());
|
if (isInActiveDurableSub(sub)) {
|
||||||
|
suppress = false;
|
||||||
|
} else {
|
||||||
|
suppress = hasLowerPriority(sub, candidate.getLocalInfo());
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1056,8 +1060,8 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
|
||||||
return suppress;
|
return suppress;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isActiveDurableSub(Subscription sub) {
|
private boolean isInActiveDurableSub(Subscription sub) {
|
||||||
return (sub.getConsumerInfo().isDurable() && sub instanceof DurableTopicSubscription && ((DurableTopicSubscription)sub).isActive());
|
return (sub.getConsumerInfo().isDurable() && sub instanceof DurableTopicSubscription && !((DurableTopicSubscription)sub).isActive());
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasLowerPriority(Subscription existingSub, ConsumerInfo candidateInfo) {
|
private boolean hasLowerPriority(Subscription existingSub, ConsumerInfo candidateInfo) {
|
||||||
|
@ -1067,7 +1071,7 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
|
||||||
if (LOG.isDebugEnabled()) {
|
if (LOG.isDebugEnabled()) {
|
||||||
LOG.debug(configuration.getBrokerName() + " Ignoring duplicate subscription from " + remoteBrokerName
|
LOG.debug(configuration.getBrokerName() + " Ignoring duplicate subscription from " + remoteBrokerName
|
||||||
+ ", sub: " + candidateInfo + " is duplicated by network subscription with equal or higher network priority: "
|
+ ", sub: " + candidateInfo + " is duplicated by network subscription with equal or higher network priority: "
|
||||||
+ existingSub.getConsumerInfo() + ", networkComsumerIds: " + existingSub.getConsumerInfo().getNetworkConsumerIds());
|
+ existingSub + ", networkConsumerIds: " + existingSub.getConsumerInfo().getNetworkConsumerIds());
|
||||||
}
|
}
|
||||||
suppress = true;
|
suppress = true;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -117,7 +117,7 @@ public class NoDuplicateOnTopicNetworkTest extends CombinationTestSupport {
|
||||||
private BrokerService createAndStartBroker(String name, String addr)
|
private BrokerService createAndStartBroker(String name, String addr)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
BrokerService broker = new BrokerService();
|
BrokerService broker = new BrokerService();
|
||||||
//broker.setDeleteAllMessagesOnStartup(true);
|
broker.setDeleteAllMessagesOnStartup(true);
|
||||||
broker.setBrokerName(name);
|
broker.setBrokerName(name);
|
||||||
broker.addConnector(addr).setDiscoveryUri(new URI(MULTICAST_DEFAULT));
|
broker.addConnector(addr).setDiscoveryUri(new URI(MULTICAST_DEFAULT));
|
||||||
broker.setUseJmx(false);
|
broker.setUseJmx(false);
|
||||||
|
|
Loading…
Reference in New Issue