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() { |