Multiple class loaders problem
Tom Tromey
tromey@redhat.com
Sun Nov 3 17:35:00 GMT 2002
>>>>> "Anthony" == Anthony Green <green@redhat.com> writes:
Anthony> class MyLoader extends URLClassLoader
This class has to be `static'. gcj shouldn't compile this.
Could you submit a PR for this?
The IBM JDK verifier chokes on the output (of the original test, not
the one with `static' added), but neither gcj nor gij diagnose a
problem. Could you put in a PR for that too? I don't want to look at
it right now. I guess attaching the bytecode is the best way since we
won't be able to reproduce it once the compiler bug is fixed.
I agree with your assessment of the bug you reported. Try the appended.
It works for me.
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
* java/lang/ClassLoader.java (loadClass): Call loadClass on
VMClassLoader, not findClass.
Index: java/lang/ClassLoader.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/ClassLoader.java,v
retrieving revision 1.19
diff -u -r1.19 ClassLoader.java
--- java/lang/ClassLoader.java 19 Sep 2002 17:44:49 -0000 1.19
+++ java/lang/ClassLoader.java 4 Nov 2002 01:35:03 -0000
@@ -177,14 +177,18 @@
if (c == null)
{
- try {
- if (parent != null)
- return parent.loadClass (name, link);
- else
- c = gnu.gcj.runtime.VMClassLoader.instance.findClass (name);
- } catch (ClassNotFoundException ex) {
- /* ignore, we'll try findClass */;
- }
+ try
+ {
+ ClassLoader cl = parent;
+ if (parent == null)
+ cl = gnu.gcj.runtime.VMClassLoader.instance;
+ if (cl != this)
+ c = cl.loadClass (name, link);
+ }
+ catch (ClassNotFoundException ex)
+ {
+ /* ignore, we'll try findClass */;
+ }
}
if (c == null)
More information about the Java
mailing list