This looks good to me Mandy.

Thanks,
-Chris.

> On 10 Mar 2020, at 18:27, Mandy Chung <[email protected]> wrote:
> 
> Hi Chris,
> 
> Below is the revised patch per your suggestion.  I made some minor fixes in 
> the method name shown in the "Access modes" section as well.
> 
> Mandy
> 
> diff --git a/src/java.base/share/classes/java/lang/invoke/MethodHandles.java 
> b/src/java.base/share/classes/java/lang/invoke/MethodHandles.java
> --- a/src/java.base/share/classes/java/lang/invoke/MethodHandles.java
> +++ b/src/java.base/share/classes/java/lang/invoke/MethodHandles.java
> @@ -740,11 +740,11 @@
>       * The table below shows the access modes of a {@code Lookup} produced by
>       * any of the following factory or transformation methods:
>       * <ul>
> -     * <li>{@link #lookup() MethodHandles.lookup()}</li>
> -     * <li>{@link #publicLookup() MethodHandles.publicLookup()}</li>
> -     * <li>{@link #privateLookupIn(Class, Lookup) 
> MethodHandles.privateLookupIn}</li>
> -     * <li>{@link Lookup#in}</li>
> -     * <li>{@link Lookup#dropLookupMode(int)}</li>
> +     * <li>{@link #lookup() MethodHandles::lookup}</li>
> +     * <li>{@link #publicLookup() MethodHandles::publicLookup}</li>
> +     * <li>{@link #privateLookupIn(Class, Lookup) 
> MethodHandles::privateLookupIn}</li>
> +     * <li>{@link Lookup#in Lookup::in}</li>
> +     * <li>{@link Lookup#dropLookupMode(int) Lookup::dropLookupMode}</li>
>       * </ul>
>       *
>       * <table class="striped">
> @@ -1524,14 +1524,22 @@
>           * Creates a lookup on the same lookup class which this lookup object
>           * finds members, but with a lookup mode that has lost the given 
> lookup mode.
>           * The lookup mode to drop is one of {@link #PUBLIC PUBLIC}, {@link 
> #MODULE
> -         * MODULE}, {@link #PACKAGE PACKAGE}, {@link #PROTECTED PROTECTED} 
> or {@link #PRIVATE PRIVATE}.
> -         * {@link #PROTECTED PROTECTED} is always
> -         * dropped and so the resulting lookup mode will never have this 
> access capability.
> -         * When dropping {@code PACKAGE} then the resulting lookup will not 
> have {@code PACKAGE}
> -         * or {@code PRIVATE} access. When dropping {@code MODULE} then the 
> resulting lookup will
> -         * not have {@code MODULE}, {@code PACKAGE}, or {@code PRIVATE} 
> access. If {@code PUBLIC}
> -         * is dropped then the resulting lookup has no access. If {@code 
> UNCONDITIONAL}
> -         * is dropped then the resulting lookup has no access.
> +         * MODULE}, {@link #PACKAGE PACKAGE}, {@link #PROTECTED PROTECTED},
> +         * {@link #PRIVATE PRIVATE}, or {@link #UNCONDITIONAL UNCONDITIONAL}.
> +         *
> +         * <p> If this lookup is a {@linkplain MethodHandles#publicLookup() 
> public lookup},
> +         * this lookup has {@code UNCONDITIONAL} mode set and it has no 
> other mode set.
> +         * When dropping {@code UNCONDITIONAL} on a public lookup then the 
> resulting
> +         * lookup has no access.
> +         *
> +         * <p> If this lookup is not a public lookup, then the following 
> applies
> +         * regardless of its {@linkplain #lookupModes() lookup modes}.
> +         * {@link #PROTECTED PROTECTED} is always dropped and so the 
> resulting lookup
> +         * mode will never have this access capability. When dropping {@code 
> PACKAGE}
> +         * then the resulting lookup will not have {@code PACKAGE} or {@code 
> PRIVATE}
> +         * access. When dropping {@code MODULE} then the resulting lookup 
> will not
> +         * have {@code MODULE}, {@code PACKAGE}, or {@code PRIVATE} access.
> +         * When dropping {@code PUBLIC} then the resulting lookup has no 
> access.
>           *
>           * @apiNote
>           * A lookup with {@code PACKAGE} but not {@code PRIVATE} mode can 
> safely

Reply via email to