# HG changeset patch # User miroslawzn # Date 1291833796 28800 # Node ID 5d9708346d50a34a8432d83d34e001a658f71ddd # Parent e6f42f5d6d60c6fa436823cd50bcbdd57f057aaf 6877056: SVUID calculated for java.lang.Enum is not 0L Reviewed-by: raginip diff -r e6f42f5d6d60 -r 5d9708346d50 src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java --- a/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java Sun Dec 05 15:20:25 2010 -0800 +++ b/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java Wed Dec 08 10:43:16 2010 -0800 @@ -85,6 +85,9 @@ private static Hashtable translatedFields; + /** true if represents enum type */ + private boolean isEnum; + private static final Bridge bridge = (Bridge)AccessController.doPrivileged( new PrivilegedAction() { @@ -359,6 +362,7 @@ } name = cl.getName(); + isEnum = Enum.class.isAssignableFrom(cl); superclass = superdesc; serializable = serial; if (!forProxyClass) { @@ -401,7 +405,8 @@ if (!serializable || externalizable || forProxyClass || - name.equals("java.lang.String")) { + name.equals("java.lang.String") || + isEnum) { fields = NO_FIELDS; } else if (serializable) { /* Ask for permission to override field access checks. @@ -502,7 +507,7 @@ * * NonSerializable classes have a serialVerisonUID of 0L. */ - if (isNonSerializable()) { + if (isNonSerializable() || isEnum) { suid = 0L; } else { // Lookup special Serializable members using reflection.