diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 89cba058fbe..24bd7ac9444 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2002-09-19 Tom Tromey + + * java/lang/ClassLoader.java (resolveClass0): Set cause for + newly-created exception. + 2002-09-18 Michael Koch * java/util/regex/Matcher.java, java/util/regex/Pattern.java, diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java index a6faa61b2ed..2c0e21133d9 100644 --- a/libjava/java/lang/ClassLoader.java +++ b/libjava/java/lang/ClassLoader.java @@ -432,17 +432,24 @@ public abstract class ClassLoader { synchronized (clazz) { - try { - linkClass0 (clazz); - } catch (Throwable x) { - markClassErrorState0 (clazz); + try + { + linkClass0 (clazz); + } + catch (Throwable x) + { + markClassErrorState0 (clazz); - if (x instanceof Error) - throw (Error)x; - else - throw new java.lang.InternalError - ("unexpected exception during linking: " + x); - } + if (x instanceof Error) + throw (Error)x; + else + { + InternalError e + = new InternalError ("unexpected exception during linking"); + e.initCause (x); + throw e; + } + } } }