From 86c1216957d6aaa7021943815f5fbfbf0d649c0c Mon Sep 17 00:00:00 2001 From: xujianhai666 <52450794+xujianhai666@users.noreply.github.com> Date: Mon, 20 Dec 2021 21:54:02 +0800 Subject: [PATCH] [ISSUE #1843] fix: broker panic when producer send to retry topic (#1844) producer send message to retry topic directly, broker will panic because maxReconsumeTimes is null and convert to int. add null check for maxReconsumeTimes Closes #1843 --- .../apache/rocketmq/broker/processor/SendMessageProcessor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/SendMessageProcessor.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/SendMessageProcessor.java index f5ebf3a6a3..f925364e48 100644 --- a/broker/src/main/java/org/apache/rocketmq/broker/processor/SendMessageProcessor.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/SendMessageProcessor.java @@ -358,7 +358,7 @@ public class SendMessageProcessor extends AbstractSendMessageProcessor implement } int maxReconsumeTimes = subscriptionGroupConfig.getRetryMaxTimes(); - if (request.getVersion() >= MQVersion.Version.V3_4_9.ordinal()) { + if (request.getVersion() >= MQVersion.Version.V3_4_9.ordinal() && requestHeader.getMaxReconsumeTimes() != null) { maxReconsumeTimes = requestHeader.getMaxReconsumeTimes(); } int reconsumeTimes = requestHeader.getReconsumeTimes() == null ? 0 : requestHeader.getReconsumeTimes();