8033150: invokestatic: IncompatibleClassChangeError trying to invoke static method from a parent in presence of conflicting defaults

A static method should be preferred during method resolution over an overpass, search the current class as well as its superclasses.

Reviewed-by: acorn, coleenp, kamg
This commit is contained in:
Lois Foltan 2014-04-14 14:27:45 -04:00
parent 5ca274e0ce
commit 8c36d0cd2b
12 changed files with 76 additions and 64 deletions

View file

@ -86,7 +86,7 @@ class ArrayKlass: public Klass {
objArrayOop allocate_arrayArray(int n, int length, TRAPS);
// Lookup operations
Method* uncached_lookup_method(Symbol* name, Symbol* signature) const;
Method* uncached_lookup_method(Symbol* name, Symbol* signature, MethodLookupMode mode) const;
// Casting from Klass*
static ArrayKlass* cast(Klass* k) {