< 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 >