summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-07 21:39:44 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-07 21:39:44 +0000
commit2896b36927e6b91beefa0a4ca83479e68583fc57 (patch)
tree8e8b3c0fcda7a66c350e08f6df600d9d7ed7c694 /libjava/java
parent2a4b6f844be460d1e7c4c17a2cb06058fdd41294 (diff)
downloadppe42-gcc-2896b36927e6b91beefa0a4ca83479e68583fc57.tar.gz
ppe42-gcc-2896b36927e6b91beefa0a4ca83479e68583fc57.zip
PR libgcj/26103:
* java/lang/ClassLoader.java (loadClass): Don't throw StringIndexOutOfBoundsException if name is empty. * java/lang/natClassLoader.cc (loadClassFromSig): Throw exception if class not found. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111820 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/ClassLoader.java4
-rw-r--r--libjava/java/lang/natClassLoader.cc5
2 files changed, 6 insertions, 3 deletions
diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java
index e3051bc40b5..13d8ca65e47 100644
--- a/libjava/java/lang/ClassLoader.java
+++ b/libjava/java/lang/ClassLoader.java
@@ -1,5 +1,5 @@
/* ClassLoader.java -- responsible for loading classes into the VM
- Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -288,7 +288,7 @@ public abstract class ClassLoader
{
// Arrays are handled specially.
Class c;
- if (name.charAt(0) == '[')
+ if (name.length() > 0 && name.charAt(0) == '[')
c = loadClassFromSig(name);
else
{
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
index fa6f201db46..d22d6c2fa15 100644
--- a/libjava/java/lang/natClassLoader.cc
+++ b/libjava/java/lang/natClassLoader.cc
@@ -81,7 +81,10 @@ java::lang::ClassLoader::loadClassFromSig(jstring name)
int len = _Jv_GetStringUTFLength (name);
char sig[len + 1];
_Jv_GetStringUTFRegion (name, 0, name->length(), sig);
- return _Jv_FindClassFromSignature(sig, this);
+ jclass result = _Jv_FindClassFromSignature(sig, this);
+ if (result == NULL)
+ throw new ClassNotFoundException(name);
+ return result;
}
OpenPOWER on IntegriCloud