diff --git a/extras/src/main/java/com/google/gson/typeadapters/UtcDateTypeAdapter.java b/extras/src/main/java/com/google/gson/typeadapters/UtcDateTypeAdapter.java index d9269df7..5e8c0cce 100644 --- a/extras/src/main/java/com/google/gson/typeadapters/UtcDateTypeAdapter.java +++ b/extras/src/main/java/com/google/gson/typeadapters/UtcDateTypeAdapter.java @@ -37,9 +37,10 @@ public final class UtcDateTypeAdapter extends TypeAdapter { public void write(JsonWriter out, Date date) throws IOException { if (date == null) { out.nullValue(); + } else { + String value = format(date, true, UTC_TIME_ZONE); + out.value(value); } - String value = format(date, true, UTC_TIME_ZONE); - out.value(value); } @Override diff --git a/extras/src/test/java/com/google/gson/typeadapters/UtcDateTypeAdapterTest.java b/extras/src/test/java/com/google/gson/typeadapters/UtcDateTypeAdapterTest.java index c69b4c59..902dc477 100644 --- a/extras/src/test/java/com/google/gson/typeadapters/UtcDateTypeAdapterTest.java +++ b/extras/src/test/java/com/google/gson/typeadapters/UtcDateTypeAdapterTest.java @@ -29,8 +29,8 @@ import com.google.gson.GsonBuilder; public final class UtcDateTypeAdapterTest extends TestCase { private final Gson gson = new GsonBuilder() - .registerTypeAdapter(Date.class, new UtcDateTypeAdapter()) - .create(); + .registerTypeAdapter(Date.class, new UtcDateTypeAdapter()) + .create(); public void testLocalTimeZone() { Date expected = new Date(); @@ -71,4 +71,9 @@ public final class UtcDateTypeAdapterTest extends TestCase { Date actual = gson.fromJson(expectedJson, Date.class); assertEquals(expected.getTime(), actual.getTime()); } + + public void testNullDateSerialization() { + String json = gson.toJson(null, Date.class); + assertEquals("null", json); + } }