Forgot that enumerated types that are subclassed will be abstract, yet they require an instantiate method on their generated field serializer.  Ran the full RPC suite against the change this time.

Review by: BobV (TBR)

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1702 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/rebind/rpc/FieldSerializerCreator.java b/user/src/com/google/gwt/user/rebind/rpc/FieldSerializerCreator.java
index bb7b444..fbe7c2f 100644
--- a/user/src/com/google/gwt/user/rebind/rpc/FieldSerializerCreator.java
+++ b/user/src/com/google/gwt/user/rebind/rpc/FieldSerializerCreator.java
@@ -369,7 +369,7 @@
   }
 
   private void writeInstatiateMethod() {
-    if (serializableClass.isAbstract()) {
+    if (serializableClass.isAbstract() && serializableClass.isEnum() == null) {
       /*
        * Field serializers are shared by all of the RemoteService proxies in a
        * compilation. Therefore, we have to generate an instantiate method even
@@ -378,6 +378,10 @@
        * instantiable relative to any of the RemoteService proxies, dead code
        * optimizations will cause the method to be removed from the compiled
        * output.
+       * 
+       * Enumerated types require an instantiate method even if they are 
+       * abstract.  You will have an abstract enum in cases where the enum type
+       * is sub-classed.
        */
       return;
     }