From fbefa59b66152ed9db730a528ed2bb5834de5c86 Mon Sep 17 00:00:00 2001 From: Inderjeet Singh Date: Wed, 30 Sep 2009 23:11:30 +0000 Subject: [PATCH] changed synchronization on Date type adapter to be for the format object per code review comments on r452 --- .../com/google/gson/DefaultTypeAdapters.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gson/src/main/java/com/google/gson/DefaultTypeAdapters.java b/gson/src/main/java/com/google/gson/DefaultTypeAdapters.java index fd0d874e..dd519062 100644 --- a/gson/src/main/java/com/google/gson/DefaultTypeAdapters.java +++ b/gson/src/main/java/com/google/gson/DefaultTypeAdapters.java @@ -251,21 +251,22 @@ final class DefaultTypeAdapters { // These methods need to be synchronized since JDK DateFormat classes are not thread-safe // See issue 162 - public synchronized JsonElement serialize( - Date src, Type typeOfSrc, JsonSerializationContext context) { - String dateFormatAsString = format.format(src); - return new JsonPrimitive(dateFormatAsString); + public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) { + synchronized (format) { + String dateFormatAsString = format.format(src); + return new JsonPrimitive(dateFormatAsString); + } } - public synchronized Date deserialize( - JsonElement json, Type typeOfT, JsonDeserializationContext context) + public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (!(json instanceof JsonPrimitive)) { throw new JsonParseException("The date should be a string value"); } - try { - return format.parse(json.getAsString()); + synchronized (format) { + return format.parse(json.getAsString()); + } } catch (ParseException e) { throw new JsonParseException(e); }