ARTEMIS-1925 - fix test regression - isHighAcceptPriority does not need to check for off_with_redistribution
This commit is contained in:
parent
1839461204
commit
c6b85ea4e3
|
@ -154,7 +154,7 @@ public class RemoteQueueBindingImpl implements RemoteQueueBinding {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean isHighAcceptPriority(final Message message) {
|
public synchronized boolean isHighAcceptPriority(final Message message) {
|
||||||
if (consumerCount == 0 || messageLoadBalancingType.equals(MessageLoadBalancingType.OFF) || messageLoadBalancingType.equals(MessageLoadBalancingType.OFF_WITH_REDISTRIBUTION)) {
|
if (consumerCount == 0 || messageLoadBalancingType.equals(MessageLoadBalancingType.OFF)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -764,6 +764,36 @@ public class MessageRedistributionTest extends ClusterTestBase {
|
||||||
verifyNotReceive(1);
|
verifyNotReceive(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRedistributionOnlyWhenLocalRemovedLbOffWithRedistribution() throws Exception {
|
||||||
|
setupCluster(MessageLoadBalancingType.OFF_WITH_REDISTRIBUTION);
|
||||||
|
|
||||||
|
startServers(0, 1);
|
||||||
|
|
||||||
|
setupSessionFactory(0, isNetty());
|
||||||
|
setupSessionFactory(1, isNetty());
|
||||||
|
|
||||||
|
createQueue(0, "queues.testaddress", "queue0", null, false);
|
||||||
|
createQueue(1, "queues.testaddress", "queue0", null, false);
|
||||||
|
|
||||||
|
addConsumer(0, 0, "queue0", null);
|
||||||
|
addConsumer(1, 1, "queue0", null);
|
||||||
|
|
||||||
|
waitForBindings(0, "queues.testaddress", 1, 1, true);
|
||||||
|
waitForBindings(1, "queues.testaddress", 1, 1, true);
|
||||||
|
|
||||||
|
waitForBindings(0, "queues.testaddress", 1, 1, false);
|
||||||
|
waitForBindings(1, "queues.testaddress", 1, 1, false);
|
||||||
|
|
||||||
|
send(0, "queues.testaddress", 2, false, null);
|
||||||
|
|
||||||
|
verifyNotReceive(1);
|
||||||
|
|
||||||
|
removeConsumer(0);
|
||||||
|
|
||||||
|
verifyReceiveAll(2, 1);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testBackAndForth() throws Exception {
|
public void testBackAndForth() throws Exception {
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
|
|
|
@ -93,9 +93,14 @@ public class RemoteQueueBindImplTest extends ActiveMQTestBase {
|
||||||
final SimpleString bridgeName = RandomUtil.randomSimpleString();
|
final SimpleString bridgeName = RandomUtil.randomSimpleString();
|
||||||
final int distance = 0;
|
final int distance = 0;
|
||||||
RemoteQueueBindingImpl bindingOff = new RemoteQueueBindingImpl(id, address, uniqueName, routingName, remoteQueueID, filterString, storeAndForwardQueue, bridgeName, distance, MessageLoadBalancingType.OFF);
|
RemoteQueueBindingImpl bindingOff = new RemoteQueueBindingImpl(id, address, uniqueName, routingName, remoteQueueID, filterString, storeAndForwardQueue, bridgeName, distance, MessageLoadBalancingType.OFF);
|
||||||
|
bindingOff.addConsumer(null);
|
||||||
assertFalse(bindingOff.isHighAcceptPriority(null));
|
assertFalse(bindingOff.isHighAcceptPriority(null));
|
||||||
|
|
||||||
RemoteQueueBindingImpl bindingOffWithRedistribution = new RemoteQueueBindingImpl(id, address, uniqueName, routingName, remoteQueueID, filterString, storeAndForwardQueue, bridgeName, distance, MessageLoadBalancingType.OFF_WITH_REDISTRIBUTION);
|
RemoteQueueBindingImpl bindingOffWithRedistribution = new RemoteQueueBindingImpl(id, address, uniqueName, routingName, remoteQueueID, filterString, storeAndForwardQueue, bridgeName, distance, MessageLoadBalancingType.OFF_WITH_REDISTRIBUTION);
|
||||||
assertFalse(bindingOffWithRedistribution.isHighAcceptPriority(null));
|
bindingOffWithRedistribution.addConsumer(null);
|
||||||
|
// not really intuitive, but via getNextBinding (initial routing) BindingsImpl.matchBinding() traps remote bindings
|
||||||
|
// with OFF_WITH_REDISTRIBUTION which makes the need for change in isHighAcceptPriority redundant
|
||||||
|
// and ensures that redistribution can occur as isHighAcceptPriority is invoked from redistribute
|
||||||
|
assertTrue(bindingOffWithRedistribution.isHighAcceptPriority(null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue