diff --git a/gson/src/main/java/com/google/gson/TypeAdapter.java b/gson/src/main/java/com/google/gson/TypeAdapter.java index 097afdc8..75b3490d 100644 --- a/gson/src/main/java/com/google/gson/TypeAdapter.java +++ b/gson/src/main/java/com/google/gson/TypeAdapter.java @@ -179,7 +179,7 @@ public abstract class TypeAdapter { * } * }.nullSafe()).create(); * } - * Note that we didn't need to check for nulls in our type adapter after we used nullSafe. + * Note that we didn't need to check for nulls in our type adapter after we used nullSafe. */ public TypeAdapter nullSafe() { return new TypeAdapter() { @@ -187,7 +187,7 @@ public abstract class TypeAdapter { if (value == null) { out.nullValue(); } else { - write(out, value); + TypeAdapter.this.write(out, value); } } @Override public T read(JsonReader reader) throws IOException { @@ -195,7 +195,7 @@ public abstract class TypeAdapter { reader.nextNull(); return null; } - return read(reader); + return TypeAdapter.this.read(reader); } }; } diff --git a/gson/src/test/java/com/google/gson/functional/StreamingTypeAdaptersTest.java b/gson/src/test/java/com/google/gson/functional/StreamingTypeAdaptersTest.java index ca2bb924..8002d216 100644 --- a/gson/src/test/java/com/google/gson/functional/StreamingTypeAdaptersTest.java +++ b/gson/src/test/java/com/google/gson/functional/StreamingTypeAdaptersTest.java @@ -164,20 +164,23 @@ public final class StreamingTypeAdaptersTest extends TestCase { truck.horsePower = 1.0D; truck.passengers = new ArrayList(); truck.passengers.add(null); + truck.passengers.add(new Person("jesse", 30)); try { gson.toJson(truck, Truck.class); fail(); } catch (NullPointerException expected) {} - String json = "{horsePower:1.0,passengers:[null,null]}"; + String json = "{horsePower:1.0,passengers:[null,'jesse,30']}"; try { gson.fromJson(json, Truck.class); fail(); } catch (JsonSyntaxException expected) {} gson = new GsonBuilder().registerTypeAdapter(Person.class, typeAdapter.nullSafe()).create(); - assertEquals("{\"horsePower\":1.0,\"passengers\":[null]}", gson.toJson(truck, Truck.class)); + assertEquals("{\"horsePower\":1.0,\"passengers\":[null,\"jesse,30\"]}", + gson.toJson(truck, Truck.class)); truck = gson.fromJson(json, Truck.class); assertEquals(1.0D, truck.horsePower); assertNull(truck.passengers.get(0)); + assertEquals("jesse", truck.passengers.get(1).name); } public void testSerializeRecursive() throws IOException {