You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gitbox@activemq.apache.org by GitBox <gi...@apache.org> on 2019/10/25 18:19:57 UTC

[GitHub] [activemq-artemis] 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

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:
users@infra.apache.org


With regards,
Apache Git Services