jbertram commented on a change in pull request #2872: ARTEMIS-2531: Fix filter
in FederatedQueue to prevent infinite consumer creation in a circular or
bidrectional setup
URL: https://github.com/apache/activemq-artemis/pull/2872#discussion_r339180495
##########
File path:
tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/federation/FederatedQueueTest.java
##########
@@ -177,6 +177,11 @@ public void testFederatedQueueBiDirectional() throws
Exception {
producer1.send(session1.createTextMessage("hello"));
assertNotNull(consumer0.receive(1000));
+ //Sleep to see if extra consumers are created - this tests to make
sure there is no loop and tests the FederatedQueue metaDataFilterString
+ //is working properly - should only be 1 consumer on each (1 for the
local consumer on broker0 and 1 for the federated consumer on broker1)
+ Thread.sleep(1000);
+ assertEquals(1, ((QueueBinding)
getServer(0).getPostOffice().getBinding(SimpleString.toSimpleString(queueName))).consumerCount());
+ assertEquals(1, ((QueueBinding)
getServer(1).getPostOffice().getBinding(SimpleString.toSimpleString(queueName))).consumerCount());
Review comment:
One thought here...Instead of using `Thread.sleep(1000)` you could do
something like this:
```
assertFalse(Wait.waitFor(() ->
getServer(0).locateQueue(SimpleString.toSimpleString(queueName)).getConsumerCount()
> 1, 500, 100));
assertFalse(Wait.waitFor(() ->
getServer(1).locateQueue(SimpleString.toSimpleString(queueName)).getConsumerCount()
> 1, 500, 100));
```
I used 500 on both calls because you were originally sleeping for 1000ms and
1000/2=500. The advantage here (albeit small) is that the test would fail
faster. Also, using `locateQueue()` is a bit more elegant than
`getPostOffice().getBinding()`.
I don't feel strongly about the change. Just thought I'd throw it out there.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services