RFR: 8249080 - Reduce MemberName class dependency on MethodHandles
Bob Vandette
bob.vandette at oracle.com
Wed Jul 8 16:40:59 UTC 2020
> On Jul 8, 2020, at 12:08 PM, Mandy Chung <mandy.chung at oracle.com> wrote:
>
>
>
> On 7/8/20 8:19 AM, Bob Vandette wrote:
>> Please review this RFE for JDK 16 that reduces a class dependency in the MethodHandles.Lookup class.
>>
>> The ensureInitialized method from MethodHandles.Lookup creates a transient MemberName object only
>> to be used to throw an exception. This exception can be created in a more efficient manner without
>> using this class reducing the number of classes required. This reduction in dependencies is beneficial
>> to the GraalVM native-image tool and will be useful for future Leyden native image implementations.
>>
>
> I agree that Lookup::ensureInitialized should not depend MemberName. This refactoring seems a reasonable approach.
>
>> RFE:
>>
>>
>> https://bugs.openjdk.java.net/browse/JDK-8249080
>>
>>
>> WEBREV:
>>
>>
>> http://cr.openjdk.java.net/~bobv/8249080/webrev.01/
>>
>>
>>
> 3537 /**
> 3538 * Perform necessary <a href="MethodHandles.Lookup.html#secmgr">access checks</a>
> 3539 * for findClass or accessClass.
> 3540 */
>
> This should also mention `ensureInitialized`.
Ok.
>
> 3578 if (m == null) {
> 3579 // Step 2b:
> 3580 if (!fullPowerLookup) {
> 3581 smgr.checkPermission(SecurityConstants.GET_CLASSLOADER_PERMISSION);
> 3582 }
> 3583 return;
> 3584 }
>
> This is no longer needed. Instead, this method should require a non-null MemberName argument.
I was going to remove the null check but was concerned that there might be other cases where the argument
might be null.
Should I add an assert or just let the NPE happen?
Bob.
>
> Mandy
More information about the core-libs-dev
mailing list