RFR(S) 8020675: Trying to print to a pdf file with PDFill PDF&Image Writer 10.0 Build 4
David Holmes
david.holmes at oracle.com
Wed Aug 7 18:47:22 PDT 2013
Hi Calvin,
It seems to me that this code has a general problem with exceptions. If
exceptions can be posted then methods should be declared with a last
parameter of TRAPS and called with a CHECK_ macro. The way this code is
written it does not seem to expect any exceptions to be possible. I
would check with Karen on this.
This addition seems unused:
+ Thread* THREAD = thread;
Thumbs up on the removal of the EXCEPTION_MARKs prior to throwing
exceptions - don't know what the thought process was there :)
David
On 8/08/2013 10:25 AM, Calvin Cheung wrote:
> Please review this small fix for fixing a fatal error in
> ~ExceptionMark() triggered by ClassNotFoundException in
> ClassLoader::create_class_path_entry(). I could reproduce similar crash
> by trying to load a class from an empty jar which is in the
> bootclasspath. The following program can trigger the crash if the
> jce.jar is invalid (e.g. 0-byte):
>
> public class TestForName {
> public static void main(String[] args) {
> try {
> Class cls = Class.forName("javax.crypto.KeyGenerator");
> System.out.println("Class = " + cls.getName());
> } catch (ClassNotFoundException cnfe) {
> cnfe.printStackTrace();
> }
> }
> }
>
> The fix also changes the assert() in LazyClassPathEntry::resolve_entry()
> to a NULL check. Otherwise, the assert() will fail under the above test
> scenario.
>
> With the fix, the following ClassNotFoundException will be thrown
> instead of a crash:
> java.lang.ClassNotFoundException: javax.crypto.KeyGenerator
> at java.net.URLClassLoader$1.run(URLClassLoader.java:365)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:354)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:353)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:258)
> at TestForName.main(TestForName.java:6)
>
> webrev: http://cr.openjdk.java.net/~ccheung/8020675/webrev/
>
> JBS: https://jbs.oracle.com/bugs/browse/JDK-8020675
> bug: http://bugs.sun.com/view_bug.do?bug_id=8020675
>
> Tests:
> jprt, vm.quick.testlist
>
> thanks,
> Calvin
>
>
More information about the hotspot-runtime-dev
mailing list