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

jbertram pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new 51a25b4  ARTEMIS-3677 mitigate NPE when browsing messages
     new 7a34194  This closes #3948
51a25b4 is described below

commit 51a25b4ba425d4f469b1c07f18ec8ae3d03364a8
Author: Justin Bertram <[email protected]>
AuthorDate: Wed Feb 9 19:12:34 2022 -0600

    ARTEMIS-3677 mitigate NPE when browsing messages
---
 .../src/main/java/org/apache/activemq/artemis/api/core/JsonUtil.java | 3 +++
 .../apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java    | 5 ++---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/JsonUtil.java
 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/JsonUtil.java
index dce5aad..c98aa9c 100644
--- 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/JsonUtil.java
+++ 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/JsonUtil.java
@@ -338,6 +338,9 @@ public final class JsonUtil {
    }
 
    public static Object truncate(final Object value, final int valueSizeLimit) 
{
+      if (value == null) {
+         return "";
+      }
       Object result = value;
       if (valueSizeLimit >= 0) {
          if (String.class.equals(value.getClass())) {
diff --git 
a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
 
b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
index 9ec7b62..71f1286 100644
--- 
a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
+++ 
b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java
@@ -865,8 +865,7 @@ public abstract class AMQPMessage extends RefCountMessage 
implements org.apache.
          if (value instanceof Binary) {
             value = ((Binary)value).getArray();
          }
-         value = JsonUtil.truncate(value, valueSizeLimit);
-         map.put(applicationPropertiesPrefix + name, value);
+         map.put(applicationPropertiesPrefix + name, JsonUtil.truncate(value, 
valueSizeLimit));
       }
 
       TypedProperties extraProperties = getExtraProperties();
@@ -876,7 +875,7 @@ public abstract class AMQPMessage extends RefCountMessage 
implements org.apache.
                // keep fields like _AMQ_ACTUAL_EXPIRY in their original type
                map.put(extraPropertiesPrefix + s.toString(), o);
             } else {
-               map.put(extraPropertiesPrefix + s.toString(), 
JsonUtil.truncate(o.toString(), valueSizeLimit));
+               map.put(extraPropertiesPrefix + s.toString(), 
JsonUtil.truncate(o != null ? o.toString() : o, valueSizeLimit));
             }
          });
       }

Reply via email to