--- old/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2013-07-02 14:49:00.000000000 -0700 +++ new/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2013-07-02 14:48:58.000000000 -0700 @@ -747,7 +747,8 @@ GuardWithCatch gguard = new GuardWithCatch(gtarget, exType, gcatcher); if (gtarget == null || gcatcher == null) throw new InternalError(); MethodHandle ginvoker = GuardWithCatch.VARARGS_INVOKE.bindReceiver(gguard); - return makeCollectArguments(ginvoker, ValueConversions.varargsArray(nargs), 0, false); + MethodHandle gcollect = makeCollectArguments(ginvoker, ValueConversions.varargsArray(nargs), 0, false); + return makePairwiseConvert(gcollect, type, 2); } }