On Fri, 4 Jun 2021 00:08:41 GMT, Mandy Chung <mch...@openjdk.org> wrote:
>> Dan Smith has updated the pull request incrementally with one additional >> commit since the last revision: >> >> Fix accidentally commented-out parts of test > > src/java.base/share/classes/java/lang/invoke/LambdaMetafactory.java line 457: > >> 455: * @return a CallSite whose target can be used to perform capture, >> generating >> 456: * instances of the interface named by {@code factoryType} >> 457: * @throws LambdaConversionException If {@code caller} does not >> have private > > One additional comment: > > The lookup access has been extended since 14 to include `MODULE` and > `ORIGINAL` access. > `Lookup::hasFullPrivilegeAccess` returns true if the lookup has `PRIVATE` and > `MODULE` which means that this lookup is not teleported from another module > via `Lookup::in` and `MethodHandles::privateLookupIn`. > > What privilege do you expect the `caller` lookup should have? I believe full > privilege access is the appropriate privilege. The `ORIGINAL` access is > stricter as the lookup must be created from the original lookup class. > > [1] shows what access a `Lookup` has when being produced via different APIs. > > [1] > https://download.java.net/java/early_access/jdk17/docs/api/java.base/java/lang/invoke/MethodHandles.Lookup.html#access-modes Thanks, yes I think `hasFullPrivilegeAccess` is what we want. I updated the javadoc, along with the actual check. Thanks for catching! > test/jdk/java/lang/invoke/lambda/MetafactoryArgValidationTest.java line 2: > >> 1: /* >> 2: * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. > > copyright year needs update. Fixed. And I bumped it on the other files, too. ------------- PR: https://git.openjdk.java.net/jdk/pull/4346