Skip to content

Commit ec7db8d

Browse files
[ISSUE #10082] Missing PROPERTY_TIMER_DELAY_MS property check in delay message type validation (#10084)
1 parent c197e50 commit ec7db8d

1 file changed

Lines changed: 23 additions & 15 deletions

File tree

proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/common/GrpcConverter.java

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import java.util.Map;
3737
import java.util.concurrent.TimeUnit;
3838
import org.apache.commons.lang3.StringUtils;
39+
import org.apache.rocketmq.common.attribute.TopicMessageType;
3940
import org.apache.rocketmq.common.constant.LoggerName;
4041
import org.apache.rocketmq.common.filter.ExpressionType;
4142
import org.apache.rocketmq.common.message.MessageConst;
@@ -160,21 +161,8 @@ protected SystemProperties buildSystemProperties(MessageExt messageExt) {
160161
}
161162

162163
// message_type
163-
String isTrans = messageExt.getProperty(MessageConst.PROPERTY_TRANSACTION_PREPARED);
164-
String isTransValue = "true";
165-
if (isTransValue.equals(isTrans)) {
166-
systemPropertiesBuilder.setMessageType(MessageType.TRANSACTION);
167-
} else if (messageExt.getProperty(MessageConst.PROPERTY_DELAY_TIME_LEVEL) != null
168-
|| messageExt.getProperty(MessageConst.PROPERTY_TIMER_DELIVER_MS) != null
169-
|| messageExt.getProperty(MessageConst.PROPERTY_TIMER_DELAY_SEC) != null) {
170-
systemPropertiesBuilder.setMessageType(MessageType.DELAY);
171-
} else if (messageExt.getProperty(MessageConst.PROPERTY_SHARDING_KEY) != null) {
172-
systemPropertiesBuilder.setMessageType(MessageType.FIFO);
173-
} else if (messageExt.getProperty(MessageConst.PROPERTY_LITE_TOPIC) != null) {
174-
systemPropertiesBuilder.setMessageType(MessageType.LITE);
175-
} else {
176-
systemPropertiesBuilder.setMessageType(MessageType.NORMAL);
177-
}
164+
TopicMessageType topicMessageType = TopicMessageType.parseFromMessageProperty(messageExt.getProperties());
165+
systemPropertiesBuilder.setMessageType(convertToGrpcMessageType(topicMessageType));
178166

179167
// born_timestamp (millis)
180168
long bornTimestamp = messageExt.getBornTimestamp();
@@ -271,4 +259,24 @@ public Resource buildResource(String resourceNameWithNamespace) {
271259
.setName(NamespaceUtil.withoutNamespace(resourceNameWithNamespace))
272260
.build();
273261
}
262+
263+
protected MessageType convertToGrpcMessageType(TopicMessageType topicMessageType) {
264+
switch (topicMessageType) {
265+
case TRANSACTION:
266+
return MessageType.TRANSACTION;
267+
case DELAY:
268+
return MessageType.DELAY;
269+
case FIFO:
270+
return MessageType.FIFO;
271+
case PRIORITY:
272+
return MessageType.PRIORITY;
273+
case LITE:
274+
return MessageType.LITE;
275+
case NORMAL:
276+
return MessageType.NORMAL;
277+
case UNSPECIFIED:
278+
default:
279+
return MessageType.NORMAL;
280+
}
281+
}
274282
}

0 commit comments

Comments
 (0)