Skip to content

Commit 7bcf919

Browse files
authored
[ISSUE #9128] Fix NPE when grpc client ack message immediately after changing proxy (#9129)
1 parent 94d9185 commit 7bcf919

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/consumer/AckMessageActivity.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.apache.rocketmq.proxy.config.ConfigurationManager;
3535
import org.apache.rocketmq.proxy.grpc.v2.AbstractMessingActivity;
3636
import org.apache.rocketmq.proxy.grpc.v2.channel.GrpcChannelManager;
37+
import org.apache.rocketmq.proxy.grpc.v2.channel.GrpcClientChannel;
3738
import org.apache.rocketmq.proxy.grpc.v2.common.GrpcClientSettingsManager;
3839
import org.apache.rocketmq.proxy.grpc.v2.common.ResponseBuilder;
3940
import org.apache.rocketmq.proxy.processor.BatchAckResult;
@@ -193,10 +194,12 @@ protected void setAckResponseStatus(AckMessageResponse.Builder responseBuilder,
193194

194195
protected String getHandleString(ProxyContext ctx, String group, AckMessageRequest request, AckMessageEntry ackMessageEntry) {
195196
String handleString = ackMessageEntry.getReceiptHandle();
196-
197-
MessageReceiptHandle messageReceiptHandle = messagingProcessor.removeReceiptHandle(ctx, grpcChannelManager.getChannel(ctx.getClientID()), group, ackMessageEntry.getMessageId(), ackMessageEntry.getReceiptHandle());
198-
if (messageReceiptHandle != null) {
199-
handleString = messageReceiptHandle.getReceiptHandleStr();
197+
GrpcClientChannel channel = grpcChannelManager.getChannel(ctx.getClientID());
198+
if (channel != null) {
199+
MessageReceiptHandle messageReceiptHandle = messagingProcessor.removeReceiptHandle(ctx, channel, group, ackMessageEntry.getMessageId(), ackMessageEntry.getReceiptHandle());
200+
if (messageReceiptHandle != null) {
201+
handleString = messageReceiptHandle.getReceiptHandleStr();
202+
}
200203
}
201204
return handleString;
202205
}

0 commit comments

Comments
 (0)