You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2021/05/04 21:22:28 UTC

[logging-log4j2] 01/02: LOG4J2-3051 Disallow null inputs in JsonReader.

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

vy pushed a commit to branch LOG4J2-3051
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit de55d68fb99157cabdb1c7d8abef67d826c8db02
Author: Volkan Yazici <vo...@gmail.com>
AuthorDate: Mon Apr 12 09:11:43 2021 +0200

    LOG4J2-3051 Disallow null inputs in JsonReader.
---
 .../logging/log4j/layout/template/json/util/JsonReader.java  | 12 ++++++++----
 .../log4j/layout/template/json/util/JsonReaderTest.java      |  8 ++++++++
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonReader.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonReader.java
index cfc3fdc..c1377f7 100644
--- a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonReader.java
+++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonReader.java
@@ -24,6 +24,7 @@ import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * A simple JSON parser mapping tokens to basic Java types.
@@ -88,13 +89,16 @@ public final class JsonReader {
 
     private Object readToken;
 
-    private StringBuilder buffer = new StringBuilder();
+    private final StringBuilder buffer;
 
-    private JsonReader() {}
+    private JsonReader() {
+         this.buffer = new StringBuilder();
+    }
 
-    public static Object read(final String string) {
+    public static Object read(final String json) {
+        Objects.requireNonNull(json, "json");
         final JsonReader reader = new JsonReader();
-        return reader.read(new StringCharacterIterator(string));
+        return reader.read(new StringCharacterIterator(json));
     }
 
     private Object read(final CharacterIterator ci) {
diff --git a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/JsonReaderTest.java b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/JsonReaderTest.java
index aa7992e..2c35e5a 100644
--- a/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/JsonReaderTest.java
+++ b/log4j-layout-template-json/src/test/java/org/apache/logging/log4j/layout/template/json/util/JsonReaderTest.java
@@ -28,6 +28,14 @@ import java.util.LinkedHashMap;
 class JsonReaderTest {
 
     @Test
+    void test_null() {
+        Assertions
+                .assertThatThrownBy(() -> JsonReader.read(null))
+                .isInstanceOf(NullPointerException.class)
+                .hasMessage("json");
+    }
+
+    @Test
     void test_valid_null() {
         test("null", null);
         test("[null, null]", Arrays.asList(null, null));