501 |
flags, fields); |
flags, fields); |
502 |
assignNewHandle(osc); |
assignNewHandle(osc); |
503 |
|
|
504 |
if (callersClassLoader == null) |
ClassLoader callersClassLoader = currentLoader(); |
|
callersClassLoader = currentLoader(); |
|
505 |
|
|
506 |
for (int i = 0; i < field_count; i++) |
for (int i = 0; i < field_count; i++) |
507 |
{ |
{ |
740 |
protected Class resolveClass(ObjectStreamClass osc) |
protected Class resolveClass(ObjectStreamClass osc) |
741 |
throws ClassNotFoundException, IOException |
throws ClassNotFoundException, IOException |
742 |
{ |
{ |
743 |
if (callersClassLoader == null) |
String name = osc.getName(); |
744 |
|
try |
745 |
{ |
{ |
746 |
callersClassLoader = currentLoader (); |
return Class.forName(name, true, currentLoader()); |
747 |
if (DEBUG && dump) |
} |
748 |
{ |
catch(ClassNotFoundException x) |
749 |
dumpElementln ("CallersClassLoader = " + callersClassLoader); |
{ |
750 |
} |
if (name.equals("void")) |
751 |
|
return Void.TYPE; |
752 |
|
else if (name.equals("boolean")) |
753 |
|
return Boolean.TYPE; |
754 |
|
else if (name.equals("byte")) |
755 |
|
return Byte.TYPE; |
756 |
|
else if (name.equals("char")) |
757 |
|
return Character.TYPE; |
758 |
|
else if (name.equals("short")) |
759 |
|
return Short.TYPE; |
760 |
|
else if (name.equals("int")) |
761 |
|
return Integer.TYPE; |
762 |
|
else if (name.equals("long")) |
763 |
|
return Long.TYPE; |
764 |
|
else if (name.equals("float")) |
765 |
|
return Float.TYPE; |
766 |
|
else if (name.equals("double")) |
767 |
|
return Double.TYPE; |
768 |
|
else |
769 |
|
throw x; |
770 |
} |
} |
|
|
|
|
return Class.forName(osc.getName(), true, callersClassLoader); |
|
771 |
} |
} |
772 |
|
|
773 |
/** |
/** |
1888 |
private Hashtable classLookupTable; |
private Hashtable classLookupTable; |
1889 |
private GetField prereadFields; |
private GetField prereadFields; |
1890 |
|
|
|
private ClassLoader callersClassLoader; |
|
1891 |
private static boolean dump; |
private static boolean dump; |
1892 |
|
|
1893 |
// The nesting depth for debugging output |
// The nesting depth for debugging output |