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

Reply via email to