RFR (S) JDK-8028741: Interface Method Resolution should skip static and non-public methods in j.l.Object

Lois Foltan lois.foltan at oracle.com
Mon Dec 9 16:40:11 PST 2013


Please review the following fix:

Webrev:
     http://cr.openjdk.java.net/~lfoltan/bug_jdk8028741/

Fixes both: JDK-8028741: Interface Method Resolution should skip static 
and non-public methods in j.l.Object
                     JDK-8028626: invokeinterface selects the static 
Object.registerNatives method

https://bugs.openjdk.java.net/browse/JDK-8028741
https://bugs.openjdk.java.net/browse/JDK-8028626

Summary of fix:
     Implementation for the JDK 8 JVMS 5.4.3.4 specification change 
requested in JDK-8027581, to
     skip static and non-public methods of java.lang.Object, such as 
clone, finalize and registerNatives,
     for interface method resolution.  This fix also removes the 
temporary workaround that was put in
     place for JDK-8026394.  The workaround special cased checking for 
java.lang.Object methods
     of name "clone" and "finalize" during interface method resolution's 
interface method accessability
     checking.  Since non-public java.lang.Object methods such as clone 
and finalize, are now being ignored
     during method resolution, this temporary work around is no longer 
necessary.

Tests:
     JCK lang & vm - passed
     JDK java/lang & java/util - passed
     vm.quick.testlist - passed
     Hotspot test/* - in progress
     default method tests - passed

Thank you,
Lois



More information about the hotspot-runtime-dev mailing list