Wed, 08 Dec 2010 10:43:16 -0800
6877056: SVUID calculated for java.lang.Enum is not 0L
Reviewed-by: raginip
src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java Sun Dec 05 15:20:25 2010 -0800 1.2 +++ b/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java Wed Dec 08 10:43:16 2010 -0800 1.3 @@ -85,6 +85,9 @@ 1.4 1.5 private static Hashtable translatedFields; 1.6 1.7 + /** true if represents enum type */ 1.8 + private boolean isEnum; 1.9 + 1.10 private static final Bridge bridge = 1.11 (Bridge)AccessController.doPrivileged( 1.12 new PrivilegedAction() { 1.13 @@ -359,6 +362,7 @@ 1.14 } 1.15 1.16 name = cl.getName(); 1.17 + isEnum = Enum.class.isAssignableFrom(cl); 1.18 superclass = superdesc; 1.19 serializable = serial; 1.20 if (!forProxyClass) { 1.21 @@ -401,7 +405,8 @@ 1.22 if (!serializable || 1.23 externalizable || 1.24 forProxyClass || 1.25 - name.equals("java.lang.String")) { 1.26 + name.equals("java.lang.String") || 1.27 + isEnum) { 1.28 fields = NO_FIELDS; 1.29 } else if (serializable) { 1.30 /* Ask for permission to override field access checks. 1.31 @@ -502,7 +507,7 @@ 1.32 * 1.33 * NonSerializable classes have a serialVerisonUID of 0L. 1.34 */ 1.35 - if (isNonSerializable()) { 1.36 + if (isNonSerializable() || isEnum) { 1.37 suid = 0L; 1.38 } else { 1.39 // Lookup special Serializable members using reflection.