You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by lo...@apache.org on 2025/08/12 08:58:27 UTC

(rocketmq) branch develop updated: [ISSUE #9611] Should exec callback in the Pop based on rocksdb impl (#9612)

This is an automated email from the ASF dual-hosted git repository.

lollipop pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new c05dcdc155 [ISSUE #9611] Should exec callback in the Pop based on rocksdb impl (#9612)
c05dcdc155 is described below

commit c05dcdc155b1b8e6226f31d67063a2ad08324955
Author: lizhimins <70...@qq.com>
AuthorDate: Tue Aug 12 16:58:22 2025 +0800

    [ISSUE #9611] Should exec callback in the Pop based on rocksdb impl (#9612)
---
 .../apache/rocketmq/broker/processor/PopMessageProcessor.java    | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopMessageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopMessageProcessor.java
index d73acc84df..73f442bcd6 100644
--- a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopMessageProcessor.java
+++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopMessageProcessor.java
@@ -387,6 +387,15 @@ public class PopMessageProcessor implements NettyRequestProcessor {
                 requestHeader.getAttemptId(), requestHeader.getInitMode(), messageFilter);
 
             popAsyncFuture.thenApply(result -> {
+                try {
+                    if (request.getCallbackList() != null) {
+                        request.getCallbackList().forEach(CommandCallback::accept);
+                        request.getCallbackList().clear();
+                    }
+                } catch (Throwable t) {
+                    POP_LOGGER.error("PopProcessor execute callback error", t);
+                }
+
                 if (result.isFound()) {
                     response.setCode(ResponseCode.SUCCESS);
                     getMessageResult.setStatus(GetMessageStatus.FOUND);