From 891e7dac1c965ea68cd7aa7e38775a1193139455 Mon Sep 17 00:00:00 2001 From: kris20030907 <3185633428@qq.com> Date: Sat, 21 Mar 2026 20:56:30 +0800 Subject: [PATCH] enhance: when the lock is not locked successfully, there is an exception when trying to release the lock. --- .../apache/rocketmq/client/impl/consumer/ProcessQueue.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ProcessQueue.java b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ProcessQueue.java index bc1b5eff2f9..a0387b5c1c6 100644 --- a/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ProcessQueue.java +++ b/client/src/main/java/org/apache/rocketmq/client/impl/consumer/ProcessQueue.java @@ -430,8 +430,10 @@ public void incTryUnlockTimes() { } public void fillProcessQueueInfo(final ProcessQueueInfo info) { + boolean lockAcquired = false; try { this.treeMapLock.readLock().lockInterruptibly(); + lockAcquired = true; if (!this.msgTreeMap.isEmpty()) { info.setCachedMsgMinOffset(this.msgTreeMap.firstKey()); @@ -454,8 +456,11 @@ public void fillProcessQueueInfo(final ProcessQueueInfo info) { info.setLastPullTimestamp(this.lastPullTimestamp); info.setLastConsumeTimestamp(this.lastConsumeTimestamp); } catch (Exception e) { + log.error("fillProcessQueueInfo exception", e); } finally { - this.treeMapLock.readLock().unlock(); + if (lockAcquired) { + this.treeMapLock.readLock().unlock(); + } } }