Review request for 8021368: Launch of Java Web Start app fails with ClassCircularityError exception

Mandy Chung mandy.chung at oracle.com
Thu Dec 12 18:29:34 UTC 2013


JDK-8021368: Launch of Java Web Start app fails with 
ClassCircularityError exception in 7u25
https://bugs.openjdk.java.net/browse/JDK-8021368

This is a fix for 7u60 only.  It's a regression in 7u25 due to 
JDK-8010117 where it calls Class.getMethod to determine if the 
checkMemberAccess method is overridden in a SecurityManager subclass but 
Class.getMethod causes parameter types and returned type of other public 
methods to be resolved and hence ClassCircularityError.  It is not an 
issue in JDK 8 as SecurityManager.checkMemberAccess is deprecated and 
not called by the JDK (see JDK-8007035).

Webrev at:
http://cr.openjdk.java.net/~mchung/jdk7u/webrevs/8021368/webrev.00/

An alternative implementation is to add a new VM entry point to look up 
the declaring class of an overridden method instead of using 
JNI_GetMethodID and get a reflective method for a faster query. Since 
this check is only performed once in most cases, this performance cost 
of using JNI is not too bad that the new VM entry point doesn't 
necessarily buy much more.

thanks
Mandy



More information about the core-libs-dev mailing list