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/artemis.git

commit e9dbc111f0c7ff4ce8941cb18bcae5edb07ae43a
Author: Clebert Suconic <[email protected]>
AuthorDate: Fri Feb 27 15:54:31 2026 -0500

    ARTEMIS-5376 Using iterQueue on deleteReferences
---
 .../artemis/core/server/impl/QueueImpl.java        | 33 +++++-----------------
 1 file changed, 7 insertions(+), 26 deletions(-)

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 944992df0e..c9e48f3b32 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
@@ -2225,33 +2225,14 @@ public class QueueImpl extends CriticalComponentImpl 
implements Queue {
 
    @Override
    public synchronized boolean deleteReference(final long messageID) throws 
Exception {
-      boolean deleted = false;
-
-      Transaction tx = new TransactionImpl(storageManager);
-
-      try (LinkedListIterator<MessageReference> iter = iterator()) {
-
-         while (iter.hasNext()) {
-            MessageReference ref = iter.next();
-            if (ref.getMessage().getMessageID() == messageID) {
-               incDelivering(ref);
-               acknowledge(tx, ref);
-               iter.remove();
-               refRemoved(ref);
-               deleted = true;
-               break;
-            }
-         }
-
-         if (!deleted) {
-            // Look in scheduled deliveries
-            deleted = 
scheduledDeliveryHandler.removeReferenceWithID(messageID, tx) != null ? true : 
false;
+      return iterQueue("deleteReference", DEFAULT_FLUSH_LIMIT, null, new 
QueueIterateAction(messageID) {
+         @Override
+         public boolean actMessage(Transaction tx, MessageReference ref) 
throws Exception {
+            incDelivering(ref);
+            acknowledge(tx, ref);
+            return true;
          }
-
-         tx.commit();
-
-         return deleted;
-      }
+      }) == 1;
    }
 
    @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to