diff -r ac62e33a99b0 -r e2497b11a021 src/jdk/internal/dynalink/beans/SimpleDynamicMethod.java --- a/src/jdk/internal/dynalink/beans/SimpleDynamicMethod.java Wed Aug 20 10:25:28 2014 +0200 +++ b/src/jdk/internal/dynalink/beans/SimpleDynamicMethod.java Wed Aug 20 10:26:01 2014 +0200 @@ -98,6 +98,7 @@ */ class SimpleDynamicMethod extends SingleDynamicMethod { private final MethodHandle target; + private final boolean constructor; /** * Creates a new simple dynamic method, with a name constructed from the class name, method name, and handle @@ -108,8 +109,22 @@ * @param name the simple name of the method */ SimpleDynamicMethod(final MethodHandle target, final Class clazz, final String name) { + this(target, clazz, name, false); + } + + /** + * Creates a new simple dynamic method, with a name constructed from the class name, method name, and handle + * signature. + * + * @param target the target method handle + * @param clazz the class declaring the method + * @param name the simple name of the method + * @param constructor does this represent a constructor? + */ + SimpleDynamicMethod(final MethodHandle target, final Class clazz, final String name, final boolean constructor) { super(getName(target, clazz, name)); this.target = target; + this.constructor = constructor; } private static String getName(final MethodHandle target, final Class clazz, final String name) { @@ -130,4 +145,9 @@ MethodHandle getTarget(final Lookup lookup) { return target; } + + @Override + boolean isConstructor() { + return constructor; + } }