< prev index next >
src/hotspot/share/interpreter/interpreterRuntime.cpp
Print this page
rev 49017 : 8197405: Improve messages of AbstractMethodErrors and IncompatibleClassChangeErrors.
Reviewed-by: coleenp, dholmes
rev 49018 : [mq]: EditsDavidII.patch
*** 587,607 ****
// on some platforms the receiver still resides in a register...). Thus,
// we have no choice but print an error message not containing the receiver
// type.
IRT_ENTRY(void, InterpreterRuntime::throw_AbstractMethodErrorWithMethod(JavaThread* thread, Method* missingMethod))
ResourceMark rm(thread);
- char buf[1000];
- buf[0] = '\0';
if (missingMethod != NULL) {
methodHandle m(thread, missingMethod);
! if (!m.is_null() && m->is_abstract()) {
! jio_snprintf(buf, sizeof(buf),
! "Missing implementation of interface method %s",
! m->name_and_sig_as_C_string());
}
}
! THROW_MSG(vmSymbols::java_lang_AbstractMethodError(), buf);
IRT_END
IRT_ENTRY(void, InterpreterRuntime::throw_AbstractMethodErrorVerbose(JavaThread* thread, Klass* recvKlass,
Method* missingMethod))
ResourceMark rm(thread);
--- 587,603 ----
// on some platforms the receiver still resides in a register...). Thus,
// we have no choice but print an error message not containing the receiver
// type.
IRT_ENTRY(void, InterpreterRuntime::throw_AbstractMethodErrorWithMethod(JavaThread* thread, Method* missingMethod))
ResourceMark rm(thread);
if (missingMethod != NULL) {
methodHandle m(thread, missingMethod);
! if (m.not_null() && m->is_abstract()) {
! LinkResolver::throw_abstract_method_error(missingMethod, THREAD);
}
}
! THROW(vmSymbols::java_lang_AbstractMethodError());
IRT_END
IRT_ENTRY(void, InterpreterRuntime::throw_AbstractMethodErrorVerbose(JavaThread* thread, Klass* recvKlass,
Method* missingMethod))
ResourceMark rm(thread);
< prev index next >