summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2012-06-07 11:41:50 +0300
committerLeif Åstrand <leif@vaadin.com>2012-06-07 11:41:50 +0300
commit5c31c4150d273e087514776cefe19561cc66d5fd (patch)
tree08c99901470eaa83e7f160688d3218fc3150a5ba /src
parenta53d9263b7aaeddd0c7601acba8397a6983c26b3 (diff)
downloadvaadin-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.java13
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;
}