You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2022/02/09 15:36:18 UTC
[logging-log4j2] 04/04: Possible NullPointerException in MongoDb4DocumentObject, MongoDbDocumentObject, DefaultNoSqlObject.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 57cfe28541d418fa482b2ed75c32ea152fb03655
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Feb 9 10:36:08 2022 -0500
Possible NullPointerException in MongoDb4DocumentObject,
MongoDbDocumentObject, DefaultNoSqlObject.
---
.../log4j/core/appender/nosql/DefaultNoSqlObject.java | 19 +++++++++++--------
.../logging/log4j/mongodb3/MongoDbDocumentObject.java | 6 +++---
.../log4j/mongodb4/MongoDb4DocumentObject.java | 6 +++---
src/changes/changes.xml | 3 +++
4 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/DefaultNoSqlObject.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/DefaultNoSqlObject.java
index debe9e5..8020f3a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/DefaultNoSqlObject.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/nosql/DefaultNoSqlObject.java
@@ -45,22 +45,25 @@ public class DefaultNoSqlObject implements NoSqlObject<Map<String, Object>> {
@Override
public void set(final String field, final NoSqlObject<Map<String, Object>> value) {
- this.map.put(field, value.unwrap());
+ this.map.put(field, value != null ? value.unwrap() : null);
}
@Override
public void set(final String field, final Object[] values) {
- this.map.put(field, Arrays.asList(values));
+ this.map.put(field, values != null ? Arrays.asList(values) : null);
}
@Override
public void set(final String field, final NoSqlObject<Map<String, Object>>[] values) {
- final List<Map<String, Object>> list = new ArrayList<>(values.length);
- for (final NoSqlObject<Map<String, Object>> value : values) {
- list.add(value.unwrap());
- }
- this.map.put(field, list);
- }
+ if (values == null) {
+ this.map.put(field, null);
+ } else {
+ final List<Map<String, Object>> list = new ArrayList<>(values.length);
+ for (final NoSqlObject<Map<String, Object>> value : values) {
+ list.add(value.unwrap());
+ }
+ this.map.put(field, list);
+ }}
@Override
public Map<String, Object> unwrap() {
diff --git a/log4j-mongodb3/src/main/java/org/apache/logging/log4j/mongodb3/MongoDbDocumentObject.java b/log4j-mongodb3/src/main/java/org/apache/logging/log4j/mongodb3/MongoDbDocumentObject.java
index 020c676..f9a1d58 100644
--- a/log4j-mongodb3/src/main/java/org/apache/logging/log4j/mongodb3/MongoDbDocumentObject.java
+++ b/log4j-mongodb3/src/main/java/org/apache/logging/log4j/mongodb3/MongoDbDocumentObject.java
@@ -37,12 +37,12 @@ public final class MongoDbDocumentObject implements NoSqlObject<Document> {
@Override
public void set(final String field, final NoSqlObject<Document> value) {
- this.document.append(field, value.unwrap());
+ this.document.append(field, value != null ? value.unwrap() : null);
}
@Override
public void set(final String field, final NoSqlObject<Document>[] values) {
- this.document.append(field, Arrays.asList(values));
+ this.document.append(field, values != null ? Arrays.asList(values) : null);
}
@Override
@@ -52,7 +52,7 @@ public final class MongoDbDocumentObject implements NoSqlObject<Document> {
@Override
public void set(final String field, final Object[] values) {
- this.document.append(field, Arrays.asList(values));
+ this.document.append(field, values != null ? Arrays.asList(values) : null);
}
@Override
diff --git a/log4j-mongodb4/src/main/java/org/apache/logging/log4j/mongodb4/MongoDb4DocumentObject.java b/log4j-mongodb4/src/main/java/org/apache/logging/log4j/mongodb4/MongoDb4DocumentObject.java
index 63c3fae..4d81bb5 100644
--- a/log4j-mongodb4/src/main/java/org/apache/logging/log4j/mongodb4/MongoDb4DocumentObject.java
+++ b/log4j-mongodb4/src/main/java/org/apache/logging/log4j/mongodb4/MongoDb4DocumentObject.java
@@ -37,12 +37,12 @@ public final class MongoDb4DocumentObject implements NoSqlObject<Document> {
@Override
public void set(final String field, final NoSqlObject<Document> value) {
- this.document.append(field, value.unwrap());
+ this.document.append(field, value != null ? value.unwrap() : null);
}
@Override
public void set(final String field, final NoSqlObject<Document>[] values) {
- this.document.append(field, Arrays.asList(values));
+ this.document.append(field, values != null ? Arrays.asList(values) : null);
}
@Override
@@ -52,7 +52,7 @@ public final class MongoDb4DocumentObject implements NoSqlObject<Document> {
@Override
public void set(final String field, final Object[] values) {
- this.document.append(field, Arrays.asList(values));
+ this.document.append(field, values != null ? Arrays.asList(values) : null);
}
@Override
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 8300101..3cd72ec 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -211,6 +211,9 @@
<action issue="LOG4J2-3392" dev="ggregory" type="fix" due-to="Gary Gregory, Omer U">
AppenderLoggingException logging any exception to a MongoDB Appender.
</action>
+ <action issue="LOG4J2-3392" dev="ggregory" type="fix" due-to="Gary Gregory">
+ Possible NullPointerException in MongoDb4DocumentObject, MongoDbDocumentObject, DefaultNoSqlObject.
+ </action>
<!-- ADD -->
<action issue="LOG4J2-2486" dev="rgoers" type="add">
Require log4j2.Script.enableLanguages to be specified to enable scripting for specific languages.