diff --git a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopReviveService.java b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopReviveService.java index 2be41a69d63..e952d2c4372 100644 --- a/broker/src/main/java/org/apache/rocketmq/broker/processor/PopReviveService.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/processor/PopReviveService.java @@ -126,6 +126,9 @@ private boolean reviveRetry(PopCheckPoint popCheckPoint, MessageExt messageExt) msgInner.setStoreHost(brokerController.getStoreHost()); msgInner.setReconsumeTimes(messageExt.getReconsumeTimes() + 1); msgInner.getProperties().putAll(messageExt.getProperties()); + if (!messageExt.getProperties().containsKey(MessageConst.PROPERTY_RETRY_TOPIC)) { + msgInner.getProperties().put(MessageConst.PROPERTY_RETRY_TOPIC, messageExt.getTopic()); + } if (messageExt.getReconsumeTimes() == 0 || msgInner.getProperties().get(MessageConst.PROPERTY_FIRST_POP_TIME) == null) { msgInner.getProperties().put(MessageConst.PROPERTY_FIRST_POP_TIME, String.valueOf(popCheckPoint.getPopTime())); }