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));
}
});
}