RFR 8202913: loader constraint message for fields specifies incorrect referring class
Harold David Seigel
harold.seigel at oracle.com
Wed May 30 12:58:36 UTC 2018
Hi David,
Thanks for the review!
Harold
On 5/25/2018 8:57 PM, David Holmes wrote:
> On 26/05/2018 10:40 AM, David Holmes wrote:
>> Hi Harold,
>>
>> I don't think this was the minimal fix needed to address the missing
>> reference to the Child class,
>
> No I take that back. I messed up the original message in two ways and
> this addresses both of them. It's also more consistent with the method
> version. It also avoids confusing use of "referring class", by which I
> meant the current class that holds the putfield/getfield, not the REFC
> type of the putfield/getfield (which I just confused myself with!)
>
> Thanks,
> David
> -----
>
>> but these messages are so complicated and unreadable now that I'm
>> beyond trying to argue for their form.
>>
>> I agree with Goetz about moving the tests to where the existing ones
>> are.
>>
>> Otherwise ok.
>>
>> Thanks,
>> David
>>
>> On 25/05/2018 11:28 PM, Harold David Seigel wrote:
>>> Hi,
>>>
>>> Please review this change to correct and simplify the error message
>>> displayed when a loader constraint check fails when trying to access
>>> a field.
>>>
>>> The old message (for this test case):
>>>
>>> loader constraint violation: when resolving field "_field1" the
>>> class loader "<unnamed>" (instance of ClassLoaderForChildGrandFoo,
>>> child of "app" jdk.internal.loader.ClassLoaders$AppClassLoader) of
>>> the referring class, Parent, and the class loader "<unnamed>"
>>> (instance of ClassLoaderForParentFoo, child of "app"
>>> jdk.internal.loader.ClassLoaders$AppClassLoader) for the field's
>>> resolved type, Foo, have different Class objects for that type
>>>
>>> The new message:
>>>
>>> loader constraint violation: when resolving field "_field1" of type
>>> Foo, the class loader "<unnamed>" (instance of
>>> ClassLoaderForChildGrandFoo, child of "app"
>>> jdk.internal.loader.ClassLoaders$AppClassLoader) of the current
>>> class, Child, and the class loader "<unnamed>" (instance of
>>> ClassLoaderForParentFoo, child of "app"
>>> jdk.internal.loader.ClassLoaders$AppClassLoader) for the field's
>>> defining type, Parent, have different Class objects for type Foo
>>>
>>> Open Webrev: http://cr.openjdk.java.net/~hseigel/bug_8202913/webrev/
>>>
>>> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8202913
>>>
>>> This fix was tested with Mach5 tiers 1 and 2 tests and builds on
>>> Linux-X64, Windows, Solaris Sparc, and Mac OS X, with tiers 3-5
>>> tests on Linux-x64, and with JCK-11 Lang and VM tests.
>>>
>>> Thanks, Harold
>>>
More information about the hotspot-runtime-dev
mailing list