--- old/src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java 2019-04-24 13:36:50.000000000 -0700 +++ new/src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java 2019-04-24 13:36:49.000000000 -0700 @@ -129,7 +129,7 @@ return make(refKind, refc, member, null /* no callerClass context */); } static DirectMethodHandle make(MemberName member) { - if (member.isConstructor()) + if (member.isConstructor() && member.getReturnType() == void.class) return makeAllocator(member); return make(member.getDeclaringClass(), member); }