Index: java/lang/natClass.cc =================================================================== RCS file: /cvsroot/gcc/gcc/libjava/java/lang/natClass.cc,v retrieving revision 1.61 diff -u -2 -r1.61 natClass.cc --- java/lang/natClass.cc 29 Mar 2003 20:17:02 -0000 1.61 +++ java/lang/natClass.cc 11 May 2003 12:29:04 -0000 @@ -96,15 +96,10 @@ = new gnu::gcj::runtime::StackTrace(4); java::lang::Class *klass = NULL; - try - { - for (int i = 1; !klass; i++) - { - klass = t->classAt (i); - } - loader = klass->getClassLoader(); - } - catch (::java::lang::ArrayIndexOutOfBoundsException *e) + for (int i = 1; !klass && i < t->length (); i++) { + klass = t->classAt (i); } + if (klass) + loader = klass->getClassLoader (); return forName (className, true, loader); Index: java/lang/natRuntime.cc =================================================================== RCS file: /cvsroot/gcc/gcc/libjava/java/lang/natRuntime.cc,v retrieving revision 1.36 diff -u -2 -r1.36 natRuntime.cc --- java/lang/natRuntime.cc 26 Mar 2003 22:31:52 -0000 1.36 +++ java/lang/natRuntime.cc 11 May 2003 12:29:05 -0000 @@ -171,23 +171,16 @@ ClassLoader *look = NULL; gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace(10); - try - { - for (int i = 0; i < 10; ++i) - { - jclass klass = t->classAt(i); - if (klass != NULL) - { - ClassLoader *loader = klass->getClassLoaderInternal(); - if (loader != NULL && loader != sys) - { - look = loader; - break; - } - } - } - } - catch (::java::lang::ArrayIndexOutOfBoundsException *e) - { - } + for (int i = 0; !look && i < t->length(); ++i) + { + jclass klass = t->classAt(i); + if (klass != NULL) + { + ClassLoader *loader = klass->getClassLoaderInternal(); + if (loader != NULL && loader != sys) + { + look = loader; + } + } + } if (look != NULL) Index: java/util/natResourceBundle.cc =================================================================== RCS file: /cvsroot/gcc/gcc/libjava/java/util/natResourceBundle.cc,v retrieving revision 1.7 diff -u -2 -r1.7 natResourceBundle.cc --- java/util/natResourceBundle.cc 21 Jan 2003 21:16:46 -0000 1.7 +++ java/util/natResourceBundle.cc 11 May 2003 12:29:08 -0000 @@ -24,18 +24,12 @@ { gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace(6); - try - { - /* Frame 0 is this method, frame 1 is getBundle, so starting at - frame 2 we might see the user's class. FIXME: should account - for reflection, JNI, etc, here. */ - for (int i = 2; ; ++i) - { - jclass klass = t->classAt(i); - if (klass != NULL) - return klass->getClassLoaderInternal(); - } - } - catch (::java::lang::ArrayIndexOutOfBoundsException *e) + /* Frame 0 is this method, frame 1 is getBundle, so starting at + frame 2 we might see the user's class. FIXME: should account + for reflection, JNI, etc, here. */ + for (int i = 2; i < t->length (); ++i) { + jclass klass = t->classAt (i); + if (klass != NULL) + return klass->getClassLoaderInternal (); } return NULL;