RFR 8186092: Unnecessary loader constraints produced when there are multiple defaults

Karen Kinnear karen.kinnear at oracle.com
Thu Sep 28 14:59:02 UTC 2017

Many thanks Harold. Looks good!

Couple of minor comments:
1. klassVtable.cpp

line 484 - “They are not resolved methods”. Since the target_method is intended to be a “selected method” this comment is a bit
confusing. Perhaps just take out that sentence.

To answer David - an overpass is always created public. I like the improved assertion.

So I code reviewed the original exception messages, and missed the problem too. These look corrected.
Perhaps you could send the error test results from running the tests in the email so it is easier to see that the error messages are correct.

To make this a wee bit clearer:
 “when resolving method” line 1224 - should be “when selecting method”
“line 501 - "when resolving overriding” should be “when selecting overriding”

That also changes the error message in the tests - at least in vtableLdrConstraint/Test.java
vtableAME/Test.java line 46: inheriting - extra “t”

Thank you so much for covering so many test cases.


> On Sep 25, 2017, at 11:21 AM, harold seigel <harold.seigel at oracle.com> wrote:
> Hi,
> Please review this JDK-10 change to fix JDK-8186092.  The change prevents the checking of loader constraints during vtable and itable creation if the selected method is an overpass method. Overpass methods are created by the JVM to throw exceptions and so should not be subjected to loader constraint checking.
> Additionally, this change improves the LinkageError exception error text when a loader constraint violation occurs during vtable and itable creation.
> The fix includes four new tests, one test each to check that loader constraint checking is not done for overpass methods during vtable and itable creation, and one test each to test the new vtable and itable loader constraint error messages.
> Open webrev: http://cr.openjdk.java.net/~hseigel/bug_8186092/webrev/
> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8186092
> The change was tested with the JCK Lang and VM tests, the JTreg hotspot, java/io, java/lang, java/util, and other tests, the co-located NSK tests, JPRT, and with RBT tier2 - tier5 tests.
> Thanks, Harold

More information about the hotspot-runtime-dev mailing list