diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/common/ReceiptHandleGroup.java b/proxy/src/main/java/org/apache/rocketmq/proxy/common/ReceiptHandleGroup.java index 71e23932b3..05a29c8de7 100644 --- a/proxy/src/main/java/org/apache/rocketmq/proxy/common/ReceiptHandleGroup.java +++ b/proxy/src/main/java/org/apache/rocketmq/proxy/common/ReceiptHandleGroup.java @@ -28,11 +28,11 @@ public class ReceiptHandleGroup { receiptHandleMap.put(key, value); } - public void remove(String key) { - receiptHandleMap.remove(key); + public MessageReceiptHandle remove(String key) { + return receiptHandleMap.remove(key); } - public Map all() { + public Map immutableMapView() { return ImmutableMap.copyOf(receiptHandleMap); } } diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/processor/ReceiptHandleProcessor.java b/proxy/src/main/java/org/apache/rocketmq/proxy/processor/ReceiptHandleProcessor.java index 10179a7fa8..533b2b375e 100644 --- a/proxy/src/main/java/org/apache/rocketmq/proxy/processor/ReceiptHandleProcessor.java +++ b/proxy/src/main/java/org/apache/rocketmq/proxy/processor/ReceiptHandleProcessor.java @@ -107,7 +107,7 @@ public class ReceiptHandleProcessor extends AbstractStartAndShutdown { for (Map.Entry entry : receiptHandleGroupMap.entrySet()) { String key = entry.getKey(); ReceiptHandleGroup group = entry.getValue(); - group.all().forEach((k, v) -> { + group.immutableMapView().forEach((k, v) -> { ReceiptHandle handle = ReceiptHandle.decode(v.getReceiptHandle()); long now = System.currentTimeMillis(); if (handle.getNextVisibleTime() - now > proxyConfig.getRenewAheadTimeMillis()) { @@ -178,7 +178,7 @@ public class ReceiptHandleProcessor extends AbstractStartAndShutdown { } ProxyConfig proxyConfig = ConfigurationManager.getProxyConfig(); receiptHandleGroupMap.computeIfPresent(key, (k, v) -> { - Map all = v.all(); + Map all = v.immutableMapView(); all.forEach((key0, value0) -> { ReceiptHandle receiptHandle = ReceiptHandle.decode(value0.getReceiptHandle()); messagingProcessor.changeInvisibleTime(