+2002-12-19 Andrew Haley <aph@redhat.com>
+
+ * java/util/natResourceBundle.cc: Include
+ ArrayIndexOutOfBoundsException.h.
+ (getCallingClassLoader): Don't put upper bound on stack search.
+ Catch ArrayIndexOutOfBoundsException.
+
2002-12-19 Tom Tromey <tromey@redhat.com>
* libtool-version: Increased `current'.
#include <java/lang/SecurityManager.h>
#include <java/lang/ClassLoader.h>
#include <java/lang/Class.h>
+#include <java/lang/ArrayIndexOutOfBoundsException.h>
#include <gnu/gcj/runtime/StackTrace.h>
java::lang::ClassLoader *
java::util::ResourceBundle::getCallingClassLoader ()
{
gnu::gcj::runtime::StackTrace *t = new gnu::gcj::runtime::StackTrace(6);
- for (int i = 3; i < 6; ++i)
+ try
+ {
+ for (int i = 3; ; ++i)
+ {
+ jclass klass = t->classAt(i);
+ if (klass != NULL)
+ return klass->getClassLoaderInternal();
+ }
+ }
+ catch (::java::lang::ArrayIndexOutOfBoundsException *e)
{
- jclass klass = t->classAt(i);
- if (klass != NULL)
- return klass->getClassLoaderInternal();
}
return NULL;
}