jdk/src/share/classes/java/lang/invoke/MethodHandles.java
changeset 20841 2b188911d712
parent 20831 96cf18811858
child 20851 9f284cf7836b
--- a/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	Mon Aug 12 19:57:21 2013 +0400
+++ b/jdk/src/share/classes/java/lang/invoke/MethodHandles.java	Mon Aug 12 13:47:21 2013 -0700
@@ -1289,6 +1289,10 @@
                         : resolveOrFail(refKind, defc, name, (Class<?>) type);
                 return getDirectField(refKind, defc, field);
             } else if (MethodHandleNatives.refKindIsMethod(refKind)) {
+                if (defc == MethodHandle.class && refKind == REF_invokeVirtual) {
+                    MethodHandle mh = findVirtualForMH(name, (MethodType) type);
+                    if (mh != null)  return mh;
+                }
                 MemberName method = (resolved != null) ? resolved
                         : resolveOrFail(refKind, defc, name, (MethodType) type);
                 return getDirectMethod(refKind, defc, method, lookupClass);