src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java

changeset 235
5d9708346d50
parent 158
91006f157c46
child 240
f90b3e014e83
equal deleted inserted replaced
234:e6f42f5d6d60 235:5d9708346d50
83 private static Object noArgsList[] = {}; 83 private static Object noArgsList[] = {};
84 private static Class noTypesList[] = {}; 84 private static Class noTypesList[] = {};
85 85
86 private static Hashtable translatedFields; 86 private static Hashtable translatedFields;
87 87
88 /** true if represents enum type */
89 private boolean isEnum;
90
88 private static final Bridge bridge = 91 private static final Bridge bridge =
89 (Bridge)AccessController.doPrivileged( 92 (Bridge)AccessController.doPrivileged(
90 new PrivilegedAction() { 93 new PrivilegedAction() {
91 public Object run() { 94 public Object run() {
92 return Bridge.get() ; 95 return Bridge.get() ;
357 if (Proxy.isProxyClass(cl)) { 360 if (Proxy.isProxyClass(cl)) {
358 forProxyClass = true; 361 forProxyClass = true;
359 } 362 }
360 363
361 name = cl.getName(); 364 name = cl.getName();
365 isEnum = Enum.class.isAssignableFrom(cl);
362 superclass = superdesc; 366 superclass = superdesc;
363 serializable = serial; 367 serializable = serial;
364 if (!forProxyClass) { 368 if (!forProxyClass) {
365 // proxy classes are never externalizable 369 // proxy classes are never externalizable
366 externalizable = extern; 370 externalizable = extern;
399 final Class cl = ofClass; 403 final Class cl = ofClass;
400 404
401 if (!serializable || 405 if (!serializable ||
402 externalizable || 406 externalizable ||
403 forProxyClass || 407 forProxyClass ||
404 name.equals("java.lang.String")) { 408 name.equals("java.lang.String") ||
409 isEnum) {
405 fields = NO_FIELDS; 410 fields = NO_FIELDS;
406 } else if (serializable) { 411 } else if (serializable) {
407 /* Ask for permission to override field access checks. 412 /* Ask for permission to override field access checks.
408 */ 413 */
409 AccessController.doPrivileged(new PrivilegedAction() { 414 AccessController.doPrivileged(new PrivilegedAction() {
500 * It uses the access override mechanism so make sure 505 * It uses the access override mechanism so make sure
501 * the field objects is only used here. 506 * the field objects is only used here.
502 * 507 *
503 * NonSerializable classes have a serialVerisonUID of 0L. 508 * NonSerializable classes have a serialVerisonUID of 0L.
504 */ 509 */
505 if (isNonSerializable()) { 510 if (isNonSerializable() || isEnum) {
506 suid = 0L; 511 suid = 0L;
507 } else { 512 } else {
508 // Lookup special Serializable members using reflection. 513 // Lookup special Serializable members using reflection.
509 AccessController.doPrivileged(new PrivilegedAction() { 514 AccessController.doPrivileged(new PrivilegedAction() {
510 public Object run() { 515 public Object run() {

mercurial