Agree, looks good.
Rémi
On 08/08/2011 03:41 PM, Lance Andersen - Oracle wrote:
Looks fine to me Joe
Best
Lance
On Aug 8, 2011, at 1:24 AM, Joe Darcy wrote:
Hello.
Please review this small fix, developed after I went through my open bug list;
patch below, webrev at:
6380161 (reflect) Exception from newInstance() not chained to cause.
http://cr.openjdk.java.net/~darcy/6380161.0/
Several call to initCause are added to plumb up caused-by exception chains to
exception types without constructors taking a cause. In addition, multi-catch
is added in on location.
I looked for similar issues in Constructor, Method, and Executable, but there
weren't any.
Thanks,
-Joe
--- old/src/share/classes/java/lang/Class.java 2011-08-07 22:21:58.000000000
-0700
+++ new/src/share/classes/java/lang/Class.java 2011-08-07 22:21:58.000000000
-0700
@@ -349,7 +349,8 @@
});
cachedConstructor = c;
} catch (NoSuchMethodException e) {
- throw new InstantiationException(getName());
+ throw (InstantiationException)
+ new InstantiationException(getName()).initCause(e);
}
}
Constructor<T> tmpConstructor = cachedConstructor;
@@ -973,7 +974,8 @@
descriptor = (String) enclosingInfo[2];
assert((name != null&& descriptor != null) || name ==
descriptor);
} catch (ClassCastException cce) {
- throw new InternalError("Invalid type in enclosing method
information");
+ throw (InternalError)
+ new InternalError("Invalid type in enclosing method
information").initCause(cce);
}
}
@@ -1239,7 +1241,8 @@
try {
return getName().substring(enclosingClass.getName().length());
} catch (IndexOutOfBoundsException ex) {
- throw new InternalError("Malformed class name");
+ throw (InternalError)
+ new InternalError("Malformed class name").initCause(ex);
}
}
@@ -2954,9 +2957,8 @@
}
// These can happen when users concoct enum-like classes
// that don't comply with the enum spec.
- catch (InvocationTargetException ex) { return null; }
- catch (NoSuchMethodException ex) { return null; }
- catch (IllegalAccessException ex) { return null; }
+ catch (InvocationTargetException | NoSuchMethodException |
+ IllegalAccessException ex) { return null; }
}
return enumConstants;
}
Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
[email protected]