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 3d94585693 fix (#9516) Return origin handle to consumer when 
changeInvisibleDuration encounters flow limit
3d94585693 is described below

commit 3d945856932507c4ad259afae1ccfd067340aa70
Author: qianye <wuxingcan....@alibaba-inc.com>
AuthorDate: Tue Jul 8 10:17:37 2025 +0800

    fix (#9516) Return origin handle to consumer when changeInvisibleDuration 
encounters flow limit
    
     Return origin handle to consumer when changeInvisibleDuration encounters 
flow limit
---
 .../apache/rocketmq/proxy/grpc/v2/GrpcMessagingApplication.java  | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/GrpcMessagingApplication.java
 
b/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/GrpcMessagingApplication.java
index c470eda55c..9ee3f4fddd 100644
--- 
a/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/GrpcMessagingApplication.java
+++ 
b/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/GrpcMessagingApplication.java
@@ -358,7 +358,14 @@ public class GrpcMessagingApplication extends 
MessagingServiceGrpc.MessagingServ
     @Override
     public void changeInvisibleDuration(ChangeInvisibleDurationRequest request,
         StreamObserver<ChangeInvisibleDurationResponse> responseObserver) {
-        Function<Status, ChangeInvisibleDurationResponse> 
statusResponseCreator = status -> 
ChangeInvisibleDurationResponse.newBuilder().setStatus(status).build();
+        Function<Status, ChangeInvisibleDurationResponse> 
statusResponseCreator = status -> {
+            ChangeInvisibleDurationResponse.Builder builder =
+                ChangeInvisibleDurationResponse.newBuilder().setStatus(status);
+            if (Code.TOO_MANY_REQUESTS.equals(status.getCode())) {
+                builder.setReceiptHandle(request.getReceiptHandle());
+            }
+            return builder.build();
+        };
         ProxyContext context = createContext();
         try {
             this.addExecutor(this.consumerThreadPoolExecutor,

Reply via email to