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