From f29e9cf029b381333c152d811b0c47bf869614aa Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 16 Mar 2012 13:32:41 +0200 Subject: [PATCH] #8534 Handle null values consistently both from server to client and from client to server --- .../vaadin/terminal/gwt/server/JsonCodec.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) 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; } } -- 2.39.5