Changes look reasonable Paul… Best Lance > On Mar 13, 2018, at 2:37 PM, Paul Sandoz <[email protected]> wrote: > > Hi, > > Please review these minor tweaks to the specification of > ConstantBootstraps.invoke to clarify the throwing of exceptions. This was the > result of discussion with the JCK team. > > A CSR has also been filed and requires a reviewer. > > https://bugs.openjdk.java.net/browse/JDK-8199540 > > Thanks, > Paul. > > diff -r 7c795d301dbf > src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java > --- a/src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java > Mon Mar 12 16:09:18 2018 -0700 > +++ b/src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java > Tue Mar 13 11:27:34 2018 -0700 > @@ -104,10 +104,10 @@ > * > * @param lookup the lookup context describing the class performing the > * operation (normally stacked by the JVM) > + * @param name the name of the constant to return, which must exactly > match > + * an enum constant in the specified type. > * @param type the {@code Class} object describing the enum type for which > * a constant is to be returned > - * @param name the name of the constant to return, which must exactly > match > - * an enum constant in the specified type. > * @param <E> The enum type for which a constant value is to be returned > * @return the enum constant of the specified enum type with the > * specified name > @@ -208,20 +208,25 @@ > /** > * Returns the result of invoking a method handle with the provided > * arguments. > + * <p> > + * This method behaves as if the method handle to be invoked is the > result > + * of adapting the given method handle, via {@link MethodHandle#asType}, > to > + * adjust the return type to the desired type. > * > * @param lookup unused > * @param name unused > - * @param type the type of the value to be returned, which must be > + * @param type the desired type of the value to be returned, which must > be > * compatible with the return type of the method handle > * @param handle the method handle to be invoked > * @param args the arguments to pass to the method handle, as if with > * {@link MethodHandle#invokeWithArguments}. Each argument may be > * {@code null}. > * @return the result of invoking the method handle > - * @throws WrongMethodTypeException if the handle's return type cannot be > - * adjusted to the desired type > - * @throws ClassCastException if an argument cannot be converted by > - * reference casting > + * @throws WrongMethodTypeException if the handle's method type cannot be > + * adjusted to take the given number of arguments, or if the handle's > return > + * type cannot be adjusted to the desired type > + * @throws ClassCastException if an argument or the result produced by > + * invoking the handle cannot be converted by reference casting > * @throws Throwable anything thrown by the method handle invocation > */ > public static Object invoke(MethodHandles.Lookup lookup, String name, > Class<?> type, >
<http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037 Oracle Java Engineering 1 Network Drive Burlington, MA 01803 [email protected] <mailto:[email protected]>
