You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by di...@apache.org on 2020/04/03 08:20:16 UTC

[rocketmq] branch develop updated: [ISSUE #1463] Skip encode the null value property as string "null" (#1899)

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

dinglei 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 7760bb4  [ISSUE #1463] Skip encode the null value property as string "null" (#1899)
7760bb4 is described below

commit 7760bb4a43924608cb998fc87d038c9cf472fcd1
Author: carlvine500 <ca...@163.com>
AuthorDate: Fri Apr 3 16:20:08 2020 +0800

    [ISSUE #1463] Skip encode the null value property as string "null" (#1899)
    
    * Update MessageDecoder.java
    * add test case for MessageDecoder
---
 .../rocketmq/common/message/MessageDecoder.java     |  3 +++
 .../rocketmq/common/message/MessageDecoderTest.java | 21 ++++++++++++++++++++-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/common/src/main/java/org/apache/rocketmq/common/message/MessageDecoder.java b/common/src/main/java/org/apache/rocketmq/common/message/MessageDecoder.java
index 54d5e6b..d048dde 100644
--- a/common/src/main/java/org/apache/rocketmq/common/message/MessageDecoder.java
+++ b/common/src/main/java/org/apache/rocketmq/common/message/MessageDecoder.java
@@ -414,6 +414,9 @@ public class MessageDecoder {
                 final String name = entry.getKey();
                 final String value = entry.getValue();
 
+                if (value == null) {
+                    continue;
+                }
                 sb.append(name);
                 sb.append(NAME_VALUE_SEPARATOR);
                 sb.append(value);
diff --git a/common/src/test/java/org/apache/rocketmq/common/message/MessageDecoderTest.java b/common/src/test/java/org/apache/rocketmq/common/message/MessageDecoderTest.java
index 82ad271..fde523d 100644
--- a/common/src/test/java/org/apache/rocketmq/common/message/MessageDecoderTest.java
+++ b/common/src/test/java/org/apache/rocketmq/common/message/MessageDecoderTest.java
@@ -246,4 +246,23 @@ public class MessageDecoderTest {
 
         assertThat("abc").isEqualTo(decodedMsg.getTopic());
     }
-}
+
+    public void testNullValueProperty() throws Exception {
+        MessageExt msg = new MessageExt();
+        msg.setBody("x".getBytes());
+        msg.setTopic("x");
+        msg.setBornHost(new InetSocketAddress("127.0.0.1", 9000));
+        msg.setStoreHost(new InetSocketAddress("127.0.0.1", 9000));
+        String key = "NullValueKey";
+        msg.putProperty(key, null);
+        try {
+            byte[] encode = MessageDecoder.encode(msg, false);
+            MessageExt decode = MessageDecoder.decode(ByteBuffer.wrap(encode));
+            assertThat(decode.getProperty(key)).isNull();
+        } catch (Exception e) {
+            e.printStackTrace();
+            assertThat(Boolean.FALSE).isTrue();
+        }
+    }
+
+}
\ No newline at end of file