From a5376ccd16ef8f45f3f08e2f84d1fd0ac6c23ea2 Mon Sep 17 00:00:00 2001 From: Piotrek Zygielo Date: Sun, 7 Sep 2025 22:04:02 +0200 Subject: [PATCH] Drop synchronization on local object --- .../jmq/jmsserver/core/Consumer.java | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/mq/main/mq-broker/broker-core/src/main/java/com/sun/messaging/jmq/jmsserver/core/Consumer.java b/mq/main/mq-broker/broker-core/src/main/java/com/sun/messaging/jmq/jmsserver/core/Consumer.java index c920af48b..77318eca6 100644 --- a/mq/main/mq-broker/broker-core/src/main/java/com/sun/messaging/jmq/jmsserver/core/Consumer.java +++ b/mq/main/mq-broker/broker-core/src/main/java/com/sun/messaging/jmq/jmsserver/core/Consumer.java @@ -644,24 +644,22 @@ protected void destroy() { try { DestinationList DL = Globals.getDestinationList(); - synchronized (s) { - Iterator itr = s.iterator(); - while (itr.hasNext()) { - PacketReference pr = itr.next(); - if (ackMsgsOnDestroy && pr.acknowledged(getConsumerUID(), getStoredConsumerUID(), !uid.isUnsafeAck(), true)) { - try { - - Destination[] ds = DL.getDestination(pr.getPartitionedStore(), pr.getDestinationUID()); - Destination d = ds[0]; - if (pr.isLocal()) { - d.removeMessage(pr.getSysMessageID(), cleanupReason); - } else { - d.removeRemoteMessage(pr.getSysMessageID(), cleanupReason, pr); - } + Iterator itr = s.iterator(); + while (itr.hasNext()) { + PacketReference pr = itr.next(); + if (ackMsgsOnDestroy && pr.acknowledged(getConsumerUID(), getStoredConsumerUID(), !uid.isUnsafeAck(), true)) { + try { - } finally { - pr.postAcknowledgedRemoval(); + Destination[] ds = DL.getDestination(pr.getPartitionedStore(), pr.getDestinationUID()); + Destination d = ds[0]; + if (pr.isLocal()) { + d.removeMessage(pr.getSysMessageID(), cleanupReason); + } else { + d.removeRemoteMessage(pr.getSysMessageID(), cleanupReason, pr); } + + } finally { + pr.postAcknowledgedRemoval(); } } }