8032010: Attempt to resolve abstract method in concrete class fails with AbstractMethodError

Removing a check in LinkResolver::resolve_method() to conform with a change in JVMS-8 5.4.3.3. Method Resolution

Reviewed-by: coleenp, lfoltan
This commit is contained in:
Calvin Cheung 2014-02-05 15:14:47 -08:00
parent 465cfd7c01
commit a3c78aac2f
2 changed files with 182 additions and 10 deletions

View file

@ -564,16 +564,7 @@ void LinkResolver::resolve_method(methodHandle& resolved_method, KlassHandle res
}
}
// 5. check if method is concrete
if (resolved_method->is_abstract() && !resolved_klass->is_abstract()) {
ResourceMark rm(THREAD);
THROW_MSG(vmSymbols::java_lang_AbstractMethodError(),
Method::name_and_sig_as_C_string(resolved_klass(),
method_name,
method_signature));
}
// 6. access checks, access checking may be turned off when calling from within the VM.
// 5. access checks, access checking may be turned off when calling from within the VM.
if (check_access) {
assert(current_klass.not_null() , "current_klass should not be null");