diff options
author | Leif Åstrand <leif@vaadin.com> | 2012-06-07 11:41:50 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2012-06-07 11:41:50 +0300 |
commit | 5c31c4150d273e087514776cefe19561cc66d5fd (patch) | |
tree | 08c99901470eaa83e7f160688d3218fc3150a5ba /src | |
parent | a53d9263b7aaeddd0c7601acba8397a6983c26b3 (diff) | |
download | vaadin-framework-5c31c4150d273e087514776cefe19561cc66d5fd.tar.gz vaadin-framework-5c31c4150d273e087514776cefe19561cc66d5fd.zip |
Fix broken enums in UIDL message (#8878)
Diffstat (limited to 'src')
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java b/src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java index 9b0b690ed4..657f44896d 100644 --- a/src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java +++ b/src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java @@ -74,15 +74,7 @@ public class JsonEncoder { return encodeObjectArray((Object[]) value, restrictToInternalTypes, connection); } else if (value instanceof Enum) { - if (restrictToInternalTypes) { - // Enums are encoded as strings in Vaadin 6 so we still do that - // for backwards copmatibility. - return encode(new UidlValue(value.toString()), - restrictToInternalTypes, connection); - } else { - Enum e = (Enum) value; - return encodeEnum(e, connection); - } + return encodeEnum((Enum<?>) value, connection); } else if (value instanceof Map) { return encodeMap((Map) value, restrictToInternalTypes, connection); } else if (value instanceof Connector) { @@ -277,6 +269,9 @@ public class JsonEncoder { return VTYPE_ARRAY; } else if (value instanceof Map) { return VTYPE_MAP; + } else if (value instanceof Enum<?>) { + // Enum value is processed as a string + return VTYPE_STRING; } return null; } |