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

jbertram 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 1ee3e884b7 ARTEMIS-4726 removing scheduled msg from q via mngmnt can 
cause negative msg count
1ee3e884b7 is described below

commit 1ee3e884b707a659d924188048c2960a3b22df35
Author: Justin Bertram <[email protected]>
AuthorDate: Wed Apr 17 17:01:25 2024 -0500

    ARTEMIS-4726 removing scheduled msg from q via mngmnt can cause negative 
msg count
---
 .../core/server/impl/ScheduledDeliveryHandlerImpl.java |  1 -
 .../integration/scheduling/ScheduledMessageTest.java   | 18 ++++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScheduledDeliveryHandlerImpl.java
 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScheduledDeliveryHandlerImpl.java
index 1e848bc793..1bc9d24b66 100644
--- 
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScheduledDeliveryHandlerImpl.java
+++ 
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ScheduledDeliveryHandlerImpl.java
@@ -178,7 +178,6 @@ public class ScheduledDeliveryHandlerImpl implements 
ScheduledDeliveryHandler {
                ref.acknowledge(tx);
                iter.remove();
                notifyScheduledReferencesUpdated();
-               metrics.decrementMetrics(ref);
                return ref;
             }
          }
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/scheduling/ScheduledMessageTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/scheduling/ScheduledMessageTest.java
index 956df30e93..6ae52b8245 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/scheduling/ScheduledMessageTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/scheduling/ScheduledMessageTest.java
@@ -543,6 +543,24 @@ public class ScheduledMessageTest extends ActiveMQTestBase 
{
       session.close();
    }
 
+   @Test
+   public void testManagementDeleteById() throws Exception {
+      try (ClientSessionFactory sessionFactory = 
createSessionFactory(locator)) {
+         ClientSession session = sessionFactory.createSession(false, false, 
false);
+         session.createQueue(new QueueConfiguration(atestq));
+         ClientProducer producer = session.createProducer(atestq);
+         ClientMessage messageToSend = session.createMessage(true);
+         messageToSend.putLongProperty(Message.HDR_SCHEDULED_DELIVERY_TIME, 
System.currentTimeMillis() + 999_999_999);
+         producer.send(messageToSend);
+         session.commit();
+      }
+
+      QueueControl queueControl = (QueueControl) 
server.getManagementService().getResource(ResourceNames.QUEUE + atestq);
+      assertEquals(1, queueControl.getMessageCount());
+      assertTrue(queueControl.removeMessage((long) 
queueControl.listScheduledMessages()[0].get("messageID")));
+      assertEquals(0, queueControl.getMessageCount());
+   }
+
    @Test
    public void testManagementDeliveryByFilter() throws Exception {
       final String propertyValue = RandomUtil.randomString();

Reply via email to