diff --git a/gson/src/main/java/com/google/gson/GsonToMiniGsonTypeAdapter.java b/gson/src/main/java/com/google/gson/GsonToMiniGsonTypeAdapter.java index 5347d10e..0daa1ff4 100644 --- a/gson/src/main/java/com/google/gson/GsonToMiniGsonTypeAdapter.java +++ b/gson/src/main/java/com/google/gson/GsonToMiniGsonTypeAdapter.java @@ -51,7 +51,11 @@ final class GsonToMiniGsonTypeAdapter implements TypeAdapter.Factory { // TODO: handle if deserializer is null throw new UnsupportedOperationException(); } - return deserializer.deserialize(Streams.parse(reader), typeOfT, createDeserializationContext(miniGson)); + JsonElement value = Streams.parse(reader); + if (value.isJsonNull()) { + return null; + } + return deserializer.deserialize(value, typeOfT, createDeserializationContext(miniGson)); } @Override public void write(JsonWriter writer, Object value) throws IOException { diff --git a/gson/src/main/java/com/google/gson/JsonElement.java b/gson/src/main/java/com/google/gson/JsonElement.java index 5ed477e4..79938598 100644 --- a/gson/src/main/java/com/google/gson/JsonElement.java +++ b/gson/src/main/java/com/google/gson/JsonElement.java @@ -81,7 +81,7 @@ public abstract class JsonElement { if (isJsonObject()) { return (JsonObject) this; } - throw new IllegalStateException("This is not a JSON Object."); + throw new IllegalStateException("Not a JSON Object: " + this); } /**