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


The following commit(s) were added to refs/heads/main by this push:
     new e3c49e63d7 ARTEMIS-5173 avoiding test failure
e3c49e63d7 is described below

commit e3c49e63d7745c6a02f5040cb813d0902e4a1279
Author: Clebert Suconic <[email protected]>
AuthorDate: Mon Dec 16 10:31:13 2024 -0500

    ARTEMIS-5173 avoiding test failure
---
 .../integration/server/ScaleDownDirectTest.java    | 59 +++++++++++++---------
 1 file changed, 35 insertions(+), 24 deletions(-)

diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/server/ScaleDownDirectTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/server/ScaleDownDirectTest.java
index d93776bea8..4e51f826e1 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/server/ScaleDownDirectTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/server/ScaleDownDirectTest.java
@@ -25,6 +25,7 @@ import static org.junit.jupiter.api.Assertions.fail;
 
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.activemq.artemis.api.core.Message;
 import org.apache.activemq.artemis.api.core.QueueConfiguration;
@@ -38,6 +39,7 @@ import 
org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
 import 
org.apache.activemq.artemis.core.persistence.impl.journal.BatchingIDGenerator;
 import 
org.apache.activemq.artemis.core.persistence.impl.journal.JournalStorageManager;
 import org.apache.activemq.artemis.core.postoffice.impl.LocalQueueBinding;
+import org.apache.activemq.artemis.core.server.Queue;
 import org.apache.activemq.artemis.core.server.impl.ScaleDownHandler;
 import org.apache.activemq.artemis.core.settings.impl.AddressSettings;
 import 
org.apache.activemq.artemis.tests.extensions.parameterized.ParameterizedTestExtension;
@@ -160,9 +162,8 @@ public class ScaleDownDirectTest extends ClusterTestBase {
    }
 
    @TestTemplate
-   public void testPaging() throws Exception {
-      final int CHUNK_SIZE = 50;
-      int messageCount = 0;
+   public void testPaging() throws Throwable {
+      final int messageCount = 50;
       final String addressName = "testAddress";
       final String queueName = "testQueue";
 
@@ -173,34 +174,44 @@ public class ScaleDownDirectTest extends ClusterTestBase {
       ClientSession session = addClientSession(sf.createSession(false, false));
       ClientProducer producer = 
addClientProducer(session.createProducer(addressName));
 
-      AddressSettings defaultSetting = new 
AddressSettings().setPageSizeBytes(10 * 1024).setMaxSizeBytes(20 * 1024);
+      AddressSettings defaultSetting = new 
AddressSettings().setPageSizeBytes(10 * 1024).setMaxSizeBytes(1024);
       servers[0].getAddressSettingsRepository().addMatch("#", defaultSetting);
+      Queue queue0 = servers[0].locateQueue(queueName);
+      queue0.getPagingStore().startPaging();
+      assertTrue(queue0.getPagingStore().isPaging());
 
-      while 
(!servers[0].getPagingManager().getPageStore(SimpleString.of(addressName)).isPaging())
 {
-         for (int i = 0; i < CHUNK_SIZE; i++) {
-            Message message = session.createMessage(true);
-            message.getBodyBuffer().writeBytes(new byte[1024]);
-            // The only purpose of this count here is for eventually debug 
messages on print-data / print-pages
-            //            message.putIntProperty("count", messageCount);
-            producer.send(message);
-            messageCount++;
-         }
-         session.commit();
+      for (int i = 0; i < messageCount; i++) {
+         Message message = session.createMessage(true);
+         message.getBodyBuffer().writeBytes(new byte[1024]);
+         // The only purpose of this count here is for eventually debug 
messages on print-data / print-pages
+         //            message.putIntProperty("count", messageCount);
+         producer.send(message);
       }
+      session.commit();
 
-      assertEquals(messageCount, performScaledown());
+      assertTrue(queue0.getPagingStore().isPaging());
 
-      servers[0].stop();
+      try {
+         Wait.assertEquals(messageCount, queue0::getMessageCount);
+         queue0.flushExecutor();
+         queue0.getPagingStore().getExecutor().flush(10, TimeUnit.SECONDS);
 
-      addConsumer(0, 1, queueName, null);
-      for (int i = 0; i < messageCount; i++) {
-         ClientMessage message = consumers[0].getConsumer().receive(500);
-         assertNotNull(message);
-         //         Assert.assertEquals(i, 
message.getIntProperty("count").intValue());
-      }
+         long scaledDown = performScaledown();
 
-      assertNull(consumers[0].getConsumer().receiveImmediate());
-      removeConsumer(0);
+         servers[0].stop();
+
+         addConsumer(0, 1, queueName, null);
+         for (int i = 0; i < scaledDown; i++) {
+            ClientMessage message = consumers[0].getConsumer().receive(500);
+            assertNotNull(message);
+         }
+
+         assertNull(consumers[0].getConsumer().receiveImmediate());
+         removeConsumer(0);
+      } catch (Throwable ig) {
+         ig.printStackTrace();
+         throw ig;
+      }
    }
 
    @TestTemplate


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to