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]
