--- old/src/java.base/share/classes/java/lang/invoke/MethodHandles.java 2017-07-10 15:59:05.000000000 +0300 +++ new/src/java.base/share/classes/java/lang/invoke/MethodHandles.java 2017-07-10 15:59:05.000000000 +0300 @@ -3486,6 +3486,12 @@ Class ptype = ptypes[pos+i]; if (ptype.isPrimitive()) { result = insertArgumentPrimitive(result, pos, ptype, value); + } else if (MinimalValueTypes_1_0.isValueType(ptype)) { + Class vcc = MinimalValueTypes_1_0.getValueCapableClass(ptype); + Objects.requireNonNull(value); // throw NPE if needed + value = vcc.cast(value); // throw CCE if needed + MethodHandle unbox = ValueType.forClass(vcc).unbox(); + result = result.bindArgumentQ(pos, value, unbox); } else { value = ptype.cast(value); // throw CCE if needed result = result.bindArgumentL(pos, value);