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 23ca4e1826 ARTEMIS-5621 logger.info when queue is disabled
23ca4e1826 is described below

commit 23ca4e18264ffbfec1271998ce7fda3d5f24f688
Author: Clebert Suconic <[email protected]>
AuthorDate: Thu Aug 14 11:05:43 2025 -0400

    ARTEMIS-5621 logger.info when queue is disabled
    
    This will log the infor earlier instead of being routed.
---
 .../artemis/core/server/ActiveMQServerLogger.java  |  3 ++
 .../artemis/core/server/impl/QueueImpl.java        | 10 ++++-
 .../integration/addressing/AddressingTest.java     | 49 ++++++++++++----------
 3 files changed, 39 insertions(+), 23 deletions(-)

diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
index aeb44d57b9..fb9683d176 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
@@ -1515,4 +1515,7 @@ public interface ActiveMQServerLogger {
 
    @LogMessage(id = 224149, value = "Messages are being dropped on queue {}. 
PurgeOnNoConsumers=true and there are no consumers on this queue.", level = 
LogMessage.Level.INFO)
    void noRouteNoConsumers(SimpleString queueName);
+
+   @LogMessage(id = 224150, value = "Messages will be dropped on queue {}. 
Queue is disabled.", level = LogMessage.Level.INFO)
+   void noRouteMessagesWillBeDropped(SimpleString queueName);
 }
diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
index 91951f6da2..9caf9c43db 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
@@ -455,9 +455,16 @@ public class QueueImpl extends CriticalComponentImpl 
implements Queue {
          ? ActiveMQDefaultConfiguration.INITIAL_QUEUE_BUFFER_SIZE
          : this.cachedAddressSettings.getInitialQueueBufferSize();
       this.intermediateMessageReferences = new 
MpscUnboundedArrayQueue<>(initialQueueBufferSize);
+
+      verifyDisabledConfiguration();
+   }
+
+   private void verifyDisabledConfiguration() {
+      if (noRouteLogging && !this.queueConfiguration.isEnabled()) {
+         
ActiveMQServerLogger.LOGGER.noRouteMessagesWillBeDropped(this.getName());
+      }
    }
 
-   // Bindable implementation 
-------------------------------------------------------------------------------------
 
    @Override
    public boolean allowsReferenceCallback() {
@@ -659,6 +666,7 @@ public class QueueImpl extends CriticalComponentImpl 
implements Queue {
    @Override
    public synchronized void setEnabled(boolean value) {
       queueConfiguration.setEnabled(value);
+      verifyDisabledConfiguration();
    }
 
    @Override
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
index 8cb746ac10..32a22eab4c 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
@@ -341,20 +341,23 @@ public class AddressingTest extends ActiveMQTestBase {
       SimpleString enabledQueue = 
SimpleString.of(UUID.randomUUID().toString());
       SimpleString disabledQueue = 
SimpleString.of(UUID.randomUUID().toString());
 
-
       //Validate default is enabled, and check that queues enabled receive 
messages and disabled do not on same address.
 
-      
server.createQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST));
-      
server.createQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
-      
server.createQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-
-      assertNotNull(server.locateQueue(defaultQueue));
-      assertNotNull(server.locateQueue(enabledQueue));
-      assertNotNull(server.locateQueue(disabledQueue));
       ClientSession session = sessionFactory.createSession();
       ClientProducer producer = session.createProducer(address);
+
       try (AssertionLoggerHandler loggerHandler = new 
AssertionLoggerHandler()) {
+         
server.createQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST));
+         
server.createQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
+         
server.createQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+         // one queue was disabled
+         assertEquals(1, loggerHandler.countText("AMQ224150"));
+
+         assertNotNull(server.locateQueue(defaultQueue));
+         assertNotNull(server.locateQueue(enabledQueue));
+         assertNotNull(server.locateQueue(disabledQueue));
          producer.send(session.createMessage(true));
+         // the warning had already been sent when the queue was created
          assertEquals(1, loggerHandler.countText("AMQ224148"));
       }
 
@@ -366,12 +369,13 @@ public class AddressingTest extends ActiveMQTestBase {
       Wait.assertEquals(1, server.locateQueue(enabledQueue)::getMessageCount);
       Wait.assertEquals(0, server.locateQueue(disabledQueue)::getMessageCount);
 
-      //Update Queue Disable All
-      
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-      
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-      
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-
       try (AssertionLoggerHandler loggerHandler = new 
AssertionLoggerHandler()) {
+         //Update Queue Disable All
+         
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+         
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+         
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+         assertEquals(2, loggerHandler.countText("AMQ224150"));
+
          producer.send(session.createMessage(true));
          producer.send(session.createMessage(true));
          // we should be informed only twice even though there are 3 queues, 
as one of those were already informed before
@@ -383,13 +387,12 @@ public class AddressingTest extends ActiveMQTestBase {
       Wait.assertEquals(0, server.locateQueue(disabledQueue)::getMessageCount);
 
 
-      //Update Queue Enable All
-      
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
-      
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
-      
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
-
-
       try (AssertionLoggerHandler loggerHandler = new 
AssertionLoggerHandler()) {
+         //Update Queue Enable All
+         
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
+         
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
+         
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
+
          producer.send(session.createMessage(true));
          assertFalse(loggerHandler.findText("AMQ224148"));
       }
@@ -399,11 +402,13 @@ public class AddressingTest extends ActiveMQTestBase {
       Wait.assertEquals(1, server.locateQueue(disabledQueue)::getMessageCount);
 
       // disable again
-      
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-      
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-      
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
 
       try (AssertionLoggerHandler loggerHandler = new 
AssertionLoggerHandler()) {
+         
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+         
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+         
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+         assertEquals(3, loggerHandler.countText("AMQ224150"));
+
          for (int i = 0; i < 10; i++) {
             producer.send(session.createMessage(true));
          }


---------------------------------------------------------------------
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