RFR 8233091 : Backout JDK-8212117: Class.forName loads a class but not linked if class is not initialized

Mandy Chung mandy.chung at oracle.com
Thu Oct 31 23:20:51 UTC 2019


This looks good to me.

Mandy

On 10/31/19 3:50 PM, Brent Christian wrote:
> Hi,
>
> Please review my change to backout JDK-8212117:
> http://cr.openjdk.java.net/~bchristi/8233091/webrev-revert-01/
>
> Background:
>
> A couple months ago, JDK-8212117[1] was fixed[2].  It changed the 
> behavior of the 2-arg and 3-arg Class.forName methods to ensure that 
> linking is performed.  This conforms to the specification[3], which 
> states that the method "attempts to locate, load, and link the class". 
> In the process, 8181144[7] was also resolved.
>
> It was acknowledged that new LinkageErrors could be introduced as a 
> result - for instance, in cases where Class.forName() loads, but never 
> uses, an unlinkable class.  Such uncovered errors would need to be fixed.
>
> Well, after a few promoted builds with the JDK-8212117 change, it 
> looks like new LinkageErrors will be more widespread than anticipated 
> (JDK-8231924[4], for example).  This change to long-standing behavior 
> would cause too great an incompatibility. (See Mandy's comment[5] for 
> more.)
>
> So the proposal is to revert the JDK-8212117 change, along with a 
> couple follow-up tasks:
>
> * Update the Class::forName API spec to match the long-standing 
> behavior (i.e. no linking if initialize=false) - JDK-8233272 [6]
>
> * Reopen JDK-8181144[7] for further investigation of JDI 
> VirtualMachine::allClasses and JVM TI AllLoadedClasses
>
> Thanks,
> -Brent
>
> ==============
> 1. https://bugs.openjdk.java.net/browse/JDK-8212117
>
> 2. 
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2019-September/062142.html
>
> 3. 
> https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Class.html#forName(java.lang.String,boolean,java.lang.ClassLoader)
>
> 4. https://bugs.openjdk.java.net/browse/JDK-8231924
>
> 5. 
> https://bugs.openjdk.java.net/browse/JDK-8212117?focusedCommentId=14297501&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14297501
>
> 6. https://bugs.openjdk.java.net/browse/JDK-8233272
>
> 7. https://bugs.openjdk.java.net/browse/JDK-8181144
>
>



More information about the core-libs-dev mailing list