[ISSUE #10082] Missing PROPERTY_TIMER_DELAY_MS property check in delay message type validation (#10084)

This commit is contained in:
dingshuangxi888
2026-02-10 13:48:45 +08:00
committed by GitHub
parent c197e50f8d
commit ec7db8dc79
@@ -36,6 +36,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.common.attribute.TopicMessageType;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.common.filter.ExpressionType;
import org.apache.rocketmq.common.message.MessageConst;
@@ -160,21 +161,8 @@ public class GrpcConverter {
}
// message_type
String isTrans = messageExt.getProperty(MessageConst.PROPERTY_TRANSACTION_PREPARED);
String isTransValue = "true";
if (isTransValue.equals(isTrans)) {
systemPropertiesBuilder.setMessageType(MessageType.TRANSACTION);
} else if (messageExt.getProperty(MessageConst.PROPERTY_DELAY_TIME_LEVEL) != null
|| messageExt.getProperty(MessageConst.PROPERTY_TIMER_DELIVER_MS) != null
|| messageExt.getProperty(MessageConst.PROPERTY_TIMER_DELAY_SEC) != null) {
systemPropertiesBuilder.setMessageType(MessageType.DELAY);
} else if (messageExt.getProperty(MessageConst.PROPERTY_SHARDING_KEY) != null) {
systemPropertiesBuilder.setMessageType(MessageType.FIFO);
} else if (messageExt.getProperty(MessageConst.PROPERTY_LITE_TOPIC) != null) {
systemPropertiesBuilder.setMessageType(MessageType.LITE);
} else {
systemPropertiesBuilder.setMessageType(MessageType.NORMAL);
}
TopicMessageType topicMessageType = TopicMessageType.parseFromMessageProperty(messageExt.getProperties());
systemPropertiesBuilder.setMessageType(convertToGrpcMessageType(topicMessageType));
// born_timestamp (millis)
long bornTimestamp = messageExt.getBornTimestamp();
@@ -271,4 +259,24 @@ public class GrpcConverter {
.setName(NamespaceUtil.withoutNamespace(resourceNameWithNamespace))
.build();
}
protected MessageType convertToGrpcMessageType(TopicMessageType topicMessageType) {
switch (topicMessageType) {
case TRANSACTION:
return MessageType.TRANSACTION;
case DELAY:
return MessageType.DELAY;
case FIFO:
return MessageType.FIFO;
case PRIORITY:
return MessageType.PRIORITY;
case LITE:
return MessageType.LITE;
case NORMAL:
return MessageType.NORMAL;
case UNSPECIFIED:
default:
return MessageType.NORMAL;
}
}
}