]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fix broken enums in UIDL message (#8878)
authorLeif Åstrand <leif@vaadin.com>
Thu, 7 Jun 2012 08:41:50 +0000 (11:41 +0300)
committerLeif Åstrand <leif@vaadin.com>
Thu, 7 Jun 2012 08:41:50 +0000 (11:41 +0300)
src/com/vaadin/terminal/gwt/client/communication/JsonEncoder.java

index 9b0b690ed43f2abde4431e1a6fe285cc07638635..657f44896d640a9dbbfd09e30aa12345709a7d37 100644 (file)
@@ -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;
     }