This is an automated email from the ASF dual-hosted git repository.
RongtongJin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git
The following commit(s) were added to refs/heads/master by this push:
new ec29fca8 [Go] Fix inverted hook status in Ack/DLQ methods (#1269)
ec29fca8 is described below
commit ec29fca80a9a6d2afe5af51c8f789e013221da7d
Author: guyinyou <[email protected]>
AuthorDate: Fri Jun 12 10:23:50 2026 +0800
[Go] Fix inverted hook status in Ack/DLQ methods (#1269)
The messageHookPointsStatus was incorrectly initialized to ERROR and
set to OK when the response code was not OK, which is the opposite
of the intended behavior. This affected three locations:
- push_consumer.go: Ack()
- push_consumer.go: ForwardMessageToDeadLetterQueue()
- simple_consumer.go: Ack()
Also set status to ERROR before early return on err != nil, so that
the hook always reports the correct status on failure.
Co-authored-by: guyinyou <[email protected]>
---
golang/push_consumer.go | 10 ++++++----
golang/simple_consumer.go | 5 +++--
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/golang/push_consumer.go b/golang/push_consumer.go
index a7d1dce9..84dd548a 100644
--- a/golang/push_consumer.go
+++ b/golang/push_consumer.go
@@ -581,13 +581,14 @@ func (pc *defaultPushConsumer) Ack(ctx context.Context,
messageView *MessageView
resp, err := pc.ack0(ctx, messageView)
duration := time.Since(watchTime)
- messageHookPointsStatus := MessageHookPointsStatus_ERROR
+ messageHookPointsStatus := MessageHookPointsStatus_OK
if err != nil {
+ messageHookPointsStatus = MessageHookPointsStatus_ERROR
pc.cli.doAfter(MessageHookPoints_ACK, messageCommons, duration,
messageHookPointsStatus)
return err
}
if resp.GetStatus().GetCode() != v2.Code_OK {
- messageHookPointsStatus = MessageHookPointsStatus_OK
+ messageHookPointsStatus = MessageHookPointsStatus_ERROR
}
pc.cli.doAfter(MessageHookPoints_ACK, messageCommons, duration,
messageHookPointsStatus)
return nil
@@ -632,13 +633,14 @@ func (pc *defaultPushConsumer)
ForwardMessageToDeadLetterQueue(ctx context.Conte
resp, err := pc.forwardMessageToDeadLetterQueue0(ctx, messageView)
duration := time.Since(watchTime)
- messageHookPointsStatus := MessageHookPointsStatus_ERROR
+ messageHookPointsStatus := MessageHookPointsStatus_OK
if err != nil {
+ messageHookPointsStatus = MessageHookPointsStatus_ERROR
pc.cli.doAfter(MessageHookPoints_FORWARD_TO_DLQ,
messageCommons, duration, messageHookPointsStatus)
return err
}
if resp.GetStatus().GetCode() != v2.Code_OK {
- messageHookPointsStatus = MessageHookPointsStatus_OK
+ messageHookPointsStatus = MessageHookPointsStatus_ERROR
}
pc.cli.doAfter(MessageHookPoints_FORWARD_TO_DLQ, messageCommons,
duration, messageHookPointsStatus)
return nil
diff --git a/golang/simple_consumer.go b/golang/simple_consumer.go
index 4fa0b0fd..a159afea 100644
--- a/golang/simple_consumer.go
+++ b/golang/simple_consumer.go
@@ -449,14 +449,15 @@ func (sc *defaultSimpleConsumer) Ack(ctx context.Context,
messageView *MessageVi
request := sc.wrapAckMessageRequest(messageView)
ctx = sc.cli.Sign(ctx)
resp, err := sc.cli.clientManager.AckMessage(ctx, endpoints, request,
sc.cli.opts.timeout)
- messageHookPointsStatus := MessageHookPointsStatus_ERROR
+ messageHookPointsStatus := MessageHookPointsStatus_OK
duration := time.Since(watchTime)
if err != nil {
+ messageHookPointsStatus = MessageHookPointsStatus_ERROR
sc.cli.doAfter(MessageHookPoints_ACK, messageCommons, duration,
messageHookPointsStatus)
return err
}
if resp.GetStatus().GetCode() != v2.Code_OK {
- messageHookPointsStatus = MessageHookPointsStatus_OK
+ messageHookPointsStatus = MessageHookPointsStatus_ERROR
}
sc.cli.doAfter(MessageHookPoints_ACK, messageCommons, duration,
messageHookPointsStatus)
return nil