hotspot/src/share/vm/oops/instanceKlass.cpp
changeset 20284 595a25ab9474
parent 20282 7f9cbdf89af2
child 20379 a4c59d30d67d
--- a/hotspot/src/share/vm/oops/instanceKlass.cpp	Fri Sep 27 10:08:56 2013 -0400
+++ b/hotspot/src/share/vm/oops/instanceKlass.cpp	Tue Oct 01 08:10:42 2013 -0400
@@ -1419,6 +1419,8 @@
 }
 
 // lookup a method in all the interfaces that this class implements
+// Do NOT return private or static methods, new in JDK8 which are not externally visible
+// They should only be found in the initial InterfaceMethodRef
 Method* InstanceKlass::lookup_method_in_all_interfaces(Symbol* name,
                                                          Symbol* signature) const {
   Array<Klass*>* all_ifs = transitive_interfaces();
@@ -1427,7 +1429,7 @@
   for (int i = 0; i < num_ifs; i++) {
     ik = InstanceKlass::cast(all_ifs->at(i));
     Method* m = ik->lookup_method(name, signature);
-    if (m != NULL) {
+    if (m != NULL && m->is_public() && !m->is_static()) {
       return m;
     }
   }