src/share/vm/classfile/vmSymbols.cpp

changeset 3969
1d7922586cf6
parent 3682
fc9d8850ab8b
child 4037
da91efe96a93
     1.1 --- a/src/share/vm/classfile/vmSymbols.cpp	Mon Jul 23 13:04:59 2012 -0700
     1.2 +++ b/src/share/vm/classfile/vmSymbols.cpp	Tue Jul 24 10:51:00 2012 -0700
     1.3 @@ -332,7 +332,14 @@
     1.4    if (cname == NULL || mname == NULL || msig == NULL)  return NULL;
     1.5    klassOop k = SystemDictionary::find_well_known_klass(cname);
     1.6    if (k == NULL)  return NULL;
     1.7 -  return instanceKlass::cast(k)->find_method(mname, msig);
     1.8 +  methodOop m = instanceKlass::cast(k)->find_method(mname, msig);
     1.9 +  if (m == NULL &&
    1.10 +      cname == vmSymbols::java_lang_invoke_MethodHandle() &&
    1.11 +      msig == vmSymbols::star_name()) {
    1.12 +    // Any signature polymorphic method is represented by a fixed concrete signature:
    1.13 +    m = instanceKlass::cast(k)->find_method(mname, vmSymbols::object_array_object_signature());
    1.14 +  }
    1.15 +  return m;
    1.16  }
    1.17  
    1.18  

mercurial