From 13fd0b252cb6eca5f37b83262a7149225e4cc63e Mon Sep 17 00:00:00 2001 From: Eric Cochran Date: Sat, 29 Apr 2017 18:46:08 -0700 Subject: [PATCH] Throw NPE for null indent string in factory method. (#289) Fail when creating the JsonAdapter rather than when using it. --- .../java/com/squareup/moshi/JsonAdapter.java | 3 +++ .../com/squareup/moshi/JsonAdapterTest.java | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/moshi/src/main/java/com/squareup/moshi/JsonAdapter.java b/moshi/src/main/java/com/squareup/moshi/JsonAdapter.java index 4a2621b..a7e3f2a 100644 --- a/moshi/src/main/java/com/squareup/moshi/JsonAdapter.java +++ b/moshi/src/main/java/com/squareup/moshi/JsonAdapter.java @@ -204,6 +204,9 @@ public abstract class JsonAdapter { * @param indent a string containing only whitespace. */ public JsonAdapter indent(final String indent) { + if (indent == null) { + throw new NullPointerException("indent == null"); + } final JsonAdapter delegate = this; return new JsonAdapter() { @Override public T fromJson(JsonReader reader) throws IOException { diff --git a/moshi/src/test/java/com/squareup/moshi/JsonAdapterTest.java b/moshi/src/test/java/com/squareup/moshi/JsonAdapterTest.java index fa32a6d..7adad4e 100644 --- a/moshi/src/test/java/com/squareup/moshi/JsonAdapterTest.java +++ b/moshi/src/test/java/com/squareup/moshi/JsonAdapterTest.java @@ -145,6 +145,24 @@ public final class JsonAdapterTest { + "]"); } + @Test public void indentDisallowsNull() throws Exception { + JsonAdapter adapter = new JsonAdapter() { + @Override public Object fromJson(JsonReader reader) { + throw new AssertionError(); + } + + @Override public void toJson(JsonWriter writer, Object value) { + throw new AssertionError(); + } + }; + try { + adapter.indent(null); + fail(); + } catch (NullPointerException expected) { + assertThat(expected).hasMessage("indent == null"); + } + } + @Test public void serializeNulls() throws Exception { JsonAdapter> serializeNulls = new JsonAdapter>() { @Override public Map fromJson(JsonReader reader) throws IOException {