Fixes SerializationPolicy to be backwards compatible.
Review by: jlabanca, rjrjr (desk check)


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@6010 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/server/rpc/SerializationPolicy.java b/user/src/com/google/gwt/user/server/rpc/SerializationPolicy.java
index 4eda6b5..ba33620 100644
--- a/user/src/com/google/gwt/user/server/rpc/SerializationPolicy.java
+++ b/user/src/com/google/gwt/user/server/rpc/SerializationPolicy.java
@@ -36,7 +36,10 @@
    * @param clazz the class to test
    * @return a set containing client field names, or null
    */
-  public abstract Set<String> getClientFieldNamesForEnhancedClass(Class<?> clazz);
+  public Set<String> getClientFieldNamesForEnhancedClass(Class<?> clazz) {
+    // Ignore the possibility of server-side enhancement for legacy classes.
+    return null;
+  }
   
   /**
    * Returns <code>true</code> if the class' fields should be deserialized.
diff --git a/user/src/com/google/gwt/user/server/rpc/impl/LegacySerializationPolicy.java b/user/src/com/google/gwt/user/server/rpc/impl/LegacySerializationPolicy.java
index bcb1777..62413b6 100644
--- a/user/src/com/google/gwt/user/server/rpc/impl/LegacySerializationPolicy.java
+++ b/user/src/com/google/gwt/user/server/rpc/impl/LegacySerializationPolicy.java
@@ -104,14 +104,6 @@
   }
   
   /**
-   * Ignore the possibility of server-side enhancement for legacy classes.
-   */
-  @Override
-  public Set<String> getClientFieldNamesForEnhancedClass(Class<?> clazz) {
-    return null;
-  }
-
-  /**
    * Implemented to fail with a useful error message.
    */
   public final String getTypeIdForClass(Class<?> clazz)
diff --git a/user/src/com/google/gwt/user/server/rpc/impl/StandardSerializationPolicy.java b/user/src/com/google/gwt/user/server/rpc/impl/StandardSerializationPolicy.java
index 4c29b03..f89e6a3 100644
--- a/user/src/com/google/gwt/user/server/rpc/impl/StandardSerializationPolicy.java
+++ b/user/src/com/google/gwt/user/server/rpc/impl/StandardSerializationPolicy.java
@@ -65,6 +65,17 @@
   public StandardSerializationPolicy(
       Map<Class<?>, Boolean> serializationWhitelist,
       Map<Class<?>, Boolean> deserializationWhitelist,
+      Map<Class<?>, String> obfuscatedTypeIds) {
+    this(serializationWhitelist, deserializationWhitelist, obfuscatedTypeIds,
+        null);
+  }
+
+  /**
+   * Constructs a {@link SerializationPolicy} from several {@link Map}s.
+   */
+  public StandardSerializationPolicy(
+      Map<Class<?>, Boolean> serializationWhitelist,
+      Map<Class<?>, Boolean> deserializationWhitelist,
       Map<Class<?>, String> obfuscatedTypeIds,
       Map<Class<?>, Set<String>> clientFields) {
     if (serializationWhitelist == null || deserializationWhitelist == null) {