From: Artur Signell Date: Fri, 16 Mar 2012 11:32:41 +0000 (+0200) Subject: #8534 Handle null values consistently both from server to client and X-Git-Tag: 7.0.0.alpha2~301 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f29e9cf029b381333c152d811b0c47bf869614aa;p=vaadin-framework.git #8534 Handle null values consistently both from server to client and from client to server --- diff --git a/src/com/vaadin/terminal/gwt/server/JsonCodec.java b/src/com/vaadin/terminal/gwt/server/JsonCodec.java index 6a2a0750ad..5d2e39f10f 100644 --- a/src/com/vaadin/terminal/gwt/server/JsonCodec.java +++ b/src/com/vaadin/terminal/gwt/server/JsonCodec.java @@ -203,7 +203,7 @@ public class JsonCodec implements Serializable { Paintable paintable = (Paintable) value; return combineTypeAndValue(JsonEncoder.VTYPE_PAINTABLE, idMapper.getPaintableId(paintable)); - } else if (getTransportType(value) != JsonEncoder.VTYPE_NULL) { + } else if (getTransportType(value) != null) { return combineTypeAndValue(getTransportType(value), String.valueOf(value)); } else { @@ -317,16 +317,20 @@ public class JsonCodec implements Serializable { return outerArray; } + /** + * Gets the transport type for the value. Returns null if no transport type + * can be found. + * + * @param value + * @return + * @throws JSONException + */ private static String getTransportType(Object value) throws JSONException { if (null == value) { return JsonEncoder.VTYPE_NULL; } String transportType = typeToTransportType.get(value.getClass()); - if (null != transportType) { - return transportType; - } - throw new JSONException("Unknown object type " - + value.getClass().getName()); + return transportType; } }