Review Request JDK-8244090: public lookup should find public members of public exported types
Lois Foltan
lois.foltan at oracle.com
Wed Aug 12 21:13:26 UTC 2020
On 8/11/2020 2:00 PM, Mandy Chung wrote:
> It was agreed in an offline discussion with Lois, Kim and John that
> this work should wait for the integration of JDK-8247938 and JEP 347
> Enable C++ 14 features.
>
> This patch is updated to use scoped enum consistent with JDK-8247938.
> Updated webrev:
> http://cr.openjdk.java.net/~mchung/jdk16/webrevs/8244090/webrev.01/index.html
Hi Mandy,
Still looks good!
Thanks,
Lois
>
> Thanks
> Mandy
>
> On 6/18/20 2:12 PM, Mandy Chung wrote:
>> Prior to JDK-8173978, publicLookup().in(C.class) produces a Lookup
>> object on C with PUBLIC access which can be used to look up
>> unconditionally exported public types from the module of C. Such
>> lookup can only look up this C class defined by loader 1 but not
>> another class named "C" defined by loader 2.
>>
>> JDK-8173978 adds the support for cross-module teleporting.
>> publicLookup().in(C.class) was changed to produce a public Lookup
>> i.e. with UNCONDITIONAL access. A public lookup should be able to
>> look up public members of any unconditionally exported public types
>> including a class named "C" loaded by different loaders. It reveals
>> a bug in VM resolution for Lookup API that adds the loader
>> constraints with java.lang.Object as the accessor that constraints a
>> public lookup to load one type named C but any more.
>>
>> The lookup class of a public lookup is irrelevant to the lookup
>> context. Type consistency on P/Q/R live Class objects from the given
>> MethodType (MT)is ensured at the following:
>> 1. P/Q/R are consistent from the loader of the declaring class of the
>> resolved member (D's loader)
>> 2. P/Q/R are consistent w.r.t. the invoking class and the caller's MT
>> at invocation time (the method handle carries the caller's MT that
>> will be verified).
>>
>> The loader constraints added for public lookup is not necessary and
>> adds undesirable constraints. The proposed fixis to skip adding
>> loader constraints if the lookup mode is either TRUSTED or
>> UNCONDITIONAL.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~mchung/jdk16/webrevs/8244090/webrev.00/index.html
>>
>>
>> Thanks
>> Mandy
>
More information about the core-libs-dev
mailing list