src/share/vm/oops/instanceKlass.cpp

changeset 5786
36b97be47bde
parent 5784
190899198332
child 5836
3374b92de2d9
     1.1 --- a/src/share/vm/oops/instanceKlass.cpp	Fri Sep 27 10:08:56 2013 -0400
     1.2 +++ b/src/share/vm/oops/instanceKlass.cpp	Tue Oct 01 08:10:42 2013 -0400
     1.3 @@ -1419,6 +1419,8 @@
     1.4  }
     1.5  
     1.6  // lookup a method in all the interfaces that this class implements
     1.7 +// Do NOT return private or static methods, new in JDK8 which are not externally visible
     1.8 +// They should only be found in the initial InterfaceMethodRef
     1.9  Method* InstanceKlass::lookup_method_in_all_interfaces(Symbol* name,
    1.10                                                           Symbol* signature) const {
    1.11    Array<Klass*>* all_ifs = transitive_interfaces();
    1.12 @@ -1427,7 +1429,7 @@
    1.13    for (int i = 0; i < num_ifs; i++) {
    1.14      ik = InstanceKlass::cast(all_ifs->at(i));
    1.15      Method* m = ik->lookup_method(name, signature);
    1.16 -    if (m != NULL) {
    1.17 +    if (m != NULL && m->is_public() && !m->is_static()) {
    1.18        return m;
    1.19      }
    1.20    }

mercurial