@@ -135,6 +135,7 @@ public void receiveMessage(ProxyContext ctx, ReceiveMessageRequest request,
135135 request .hasAttemptId () ? request .getAttemptId () : null ,
136136 timeRemaining
137137 ).thenAccept (popResult -> {
138+ Runnable doAfterWrite = null ;
138139 if (proxyConfig .isEnableProxyAutoRenew () && request .getAutoRenew ()) {
139140 if (PopStatus .FOUND .equals (popResult .getPopStatus ())) {
140141 GrpcClientChannel clientChannel = grpcChannelManager .getChannel (ctx .getClientID ());
@@ -145,19 +146,21 @@ public void receiveMessage(ProxyContext ctx, ReceiveMessageRequest request,
145146 writer .processThrowableWhenWriteMessage (e , ctx , request , messageExt ));
146147 throw e ;
147148 }
148- List <MessageExt > messageExtList = popResult .getMsgFoundList ();
149- for (MessageExt messageExt : messageExtList ) {
150- String receiptHandle = messageExt .getProperty (MessageConst .PROPERTY_POP_CK );
151- if (receiptHandle != null ) {
152- MessageReceiptHandle messageReceiptHandle =
153- new MessageReceiptHandle (group , topic , messageExt .getQueueId (), receiptHandle , messageExt .getMsgId (),
154- messageExt .getQueueOffset (), messageExt .getReconsumeTimes ());
155- messagingProcessor .addReceiptHandle (ctx , clientChannel , group , messageExt .getMsgId (), messageReceiptHandle );
149+ doAfterWrite = () -> {
150+ List <MessageExt > messageExtList = popResult .getMsgFoundList ();
151+ for (MessageExt messageExt : messageExtList ) {
152+ String receiptHandle = messageExt .getProperty (MessageConst .PROPERTY_POP_CK );
153+ if (receiptHandle != null ) {
154+ MessageReceiptHandle messageReceiptHandle =
155+ new MessageReceiptHandle (group , topic , messageExt .getQueueId (), receiptHandle , messageExt .getMsgId (),
156+ messageExt .getQueueOffset (), messageExt .getReconsumeTimes ());
157+ messagingProcessor .addReceiptHandle (ctx , clientChannel , group , messageExt .getMsgId (), messageReceiptHandle );
158+ }
156159 }
157- }
160+ };
158161 }
159162 }
160- writer .writeAndComplete (ctx , request , popResult );
163+ writer .writeAndComplete (ctx , request , popResult , doAfterWrite );
161164 })
162165 .exceptionally (t -> {
163166 writer .writeAndComplete (ctx , request , t );
0 commit comments