This is an automated email from the ASF dual-hosted git repository.

lizhimin pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new ec7db8dc79 [ISSUE #10082] Missing PROPERTY_TIMER_DELAY_MS property 
check in delay message type validation (#10084)
ec7db8dc79 is described below

commit ec7db8dc7915c54364950303ff6c66df99f5ea7c
Author: dingshuangxi888 <[email protected]>
AuthorDate: Tue Feb 10 13:48:45 2026 +0800

    [ISSUE #10082] Missing PROPERTY_TIMER_DELAY_MS property check in delay 
message type validation (#10084)
---
 .../proxy/grpc/v2/common/GrpcConverter.java        | 38 +++++++++++++---------
 1 file changed, 23 insertions(+), 15 deletions(-)

diff --git 
a/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/common/GrpcConverter.java
 
b/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/common/GrpcConverter.java
index 04dab917ea..87d20ebca1 100644
--- 
a/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/common/GrpcConverter.java
+++ 
b/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/common/GrpcConverter.java
@@ -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;
+        }
+    }
 }

Reply via email to