From ee9ffa808a24d690dbffedb6bda4a18876c29fbd Mon Sep 17 00:00:00 2001 From: Jesse Wilson Date: Fri, 9 Sep 2011 08:10:57 +0000 Subject: [PATCH] If the reflective type isn't as expected, fail with a JsonSyntaxException --- .../com/google/gson/internal/bind/ReflectiveTypeAdapter.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gson/src/main/java/com/google/gson/internal/bind/ReflectiveTypeAdapter.java b/gson/src/main/java/com/google/gson/internal/bind/ReflectiveTypeAdapter.java index dcb77905..117c8773 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/ReflectiveTypeAdapter.java +++ b/gson/src/main/java/com/google/gson/internal/bind/ReflectiveTypeAdapter.java @@ -16,6 +16,7 @@ package com.google.gson.internal.bind; +import com.google.gson.JsonSyntaxException; import java.io.IOException; import java.lang.reflect.AccessibleObject; import java.lang.reflect.Constructor; @@ -72,8 +73,8 @@ public final class ReflectiveTypeAdapter extends TypeAdapter { // TODO: null out the other fields? - reader.beginObject(); try { + reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); BoundField field = map.get(name); @@ -84,6 +85,8 @@ public final class ReflectiveTypeAdapter extends TypeAdapter { field.read(reader, instance); } } + } catch (IllegalStateException e) { + throw new JsonSyntaxException(e); } catch (IllegalAccessException e) { throw new AssertionError(); }