You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2021/10/11 20:30:55 UTC

[activemq-artemis] 02/02: NO-JIRA fixing intermittent failures

This is an automated email from the ASF dual-hosted git repository.

clebertsuconic pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git

commit 95aa20b6088a316154454726ee4fc46aa574951d
Author: Clebert Suconic <cl...@apache.org>
AuthorDate: Mon Oct 11 16:20:55 2021 -0400

    NO-JIRA fixing intermittent failures
---
 .../artemis/tests/integration/client/SessionTest.java      | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java
index 6191db7..c2ffac0 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/SessionTest.java
@@ -225,26 +225,32 @@ public class SessionTest extends ActiveMQTestBase {
       } else {
          clientSession.createQueue(new QueueConfiguration(queueName).setAddress("a1").setDurable(false));
       }
-      clientSession.createConsumer(queueName);
-      clientSession.createConsumer(queueName);
+      // I'm holding a reference here on purpose to avoid GC and unexpected closes.. etc
+      ClientConsumer consumer1 = clientSession.createConsumer(queueName);
+      ClientConsumer consumer2 = clientSession.createConsumer(queueName);
       ClientProducer cp = clientSession.createProducer("a1");
       cp.send(clientSession.createMessage(true));
       cp.send(clientSession.createMessage(true));
 
-      flushQueue();
+      Queue queue = flushQueue();
+      Wait.assertEquals(2, queue::getMessageCount);
+      Wait.assertEquals(2, queue::getConsumerCount);
 
       QueueQuery resp = clientSession.queueQuery(new SimpleString(queueName));
       Assert.assertEquals(new SimpleString("a1"), resp.getAddress());
       Assert.assertEquals(2, resp.getConsumerCount());
       Assert.assertEquals(2, resp.getMessageCount());
       Assert.assertEquals(null, resp.getFilterString());
+      consumer1.close();
+      consumer2.close();
       clientSession.close();
    }
 
-   private void flushQueue() throws Exception {
+   private Queue flushQueue() throws Exception {
       Queue queue = server.locateQueue(SimpleString.toSimpleString(queueName));
       assertNotNull(queue);
       queue.flushExecutor();
+      return queue;
    }
 
    @Test