--- old/jdk/src/java.base/share/classes/jdk/experimental/value/MethodHandleBuilder.java 2017-09-19 16:01:50.000000000 -0700 +++ new/jdk/src/java.base/share/classes/jdk/experimental/value/MethodHandleBuilder.java 2017-09-19 16:01:49.000000000 -0700 @@ -64,14 +64,15 @@ } public static MethodHandle loadCode(Lookup lookup, String name, MethodType type, Consumer> builder) { - return loadCode(lookup, name, type.toMethodDescriptorString(), builder); + return loadCode(lookup, name, name, type, builder); } - public static MethodHandle loadCode(Lookup lookup, String name, String type, Consumer> builder) { - return loadCode(lookup, name, name, type, MethodHandleCodeBuilder::new, + public static MethodHandle loadCode(Lookup lookup, String className, String methodName, MethodType type, Consumer> builder) { + String descriptor = type.toMethodDescriptorString(); + return loadCode(lookup, className, methodName, descriptor, MethodHandleCodeBuilder::new, clazz -> { try { - return lookup.findStatic(clazz, name, MethodType.fromMethodDescriptorString(type, lookup.lookupClass().getClassLoader())); + return lookup.findStatic(clazz, methodName, MethodType.fromMethodDescriptorString(descriptor, lookup.lookupClass().getClassLoader())); } catch (ReflectiveOperationException ex) { throw new IllegalStateException(ex); }