--- old/src/java.base/share/classes/java/lang/invoke/MethodHandle.java 2017-11-08 15:32:35.000000000 -0800 +++ new/src/java.base/share/classes/java/lang/invoke/MethodHandle.java 2017-11-08 15:32:35.000000000 -0800 @@ -886,9 +886,13 @@ * to the target method handle. * (The array may also be null when zero elements are required.) *

- * If, when the adapter is called, the supplied array argument does - * not have the correct number of elements, the adapter will throw - * an {@link IllegalArgumentException} instead of invoking the target. + * When the adapter is called, the length of the supplied {@code array} + * argument is queried as if by {@code array.length} or {@code arraylength} + * bytecode. If the adapter accepts a zero-length trailing array argument, + * the supplied {@code array} argument can either be a zero-length array or + * {@code null}; otherwise, the adapter will throw a {@code NullPointerException} + * if the array is {@code null} and throw an {@link IllegalArgumentException} + * if the array does not have the correct number of elements. *

* Here are some simple examples of array-spreading method handles: *

{@code