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