diff -r e4b334d47f4b -r d0f7a3e441c4 jdk/src/share/classes/java/lang/invoke/AdapterMethodHandle.java --- a/jdk/src/share/classes/java/lang/invoke/AdapterMethodHandle.java Tue May 17 19:48:14 2011 -0700 +++ b/jdk/src/share/classes/java/lang/invoke/AdapterMethodHandle.java Tue May 17 19:48:19 2011 -0700 @@ -546,6 +546,10 @@ } static MethodHandle makeVarargsCollector(MethodHandle target, Class arrayType) { + MethodType type = target.type(); + int last = type.parameterCount() - 1; + if (type.parameterType(last) != arrayType) + target = target.asType(type.changeParameterType(last, arrayType)); return new AsVarargsCollector(target, arrayType); } @@ -1144,7 +1148,7 @@ } @Override - public String toString() { + String debugString() { return getNameString(nonAdapter((MethodHandle)vmtarget), this); }