diff --git a/src/hotspot/share/classfile/javaClasses.cpp b/src/hotspot/share/classfile/javaClasses.cpp index b6ef682ae0965..8567feaef1a36 100644 --- a/src/hotspot/share/classfile/javaClasses.cpp +++ b/src/hotspot/share/classfile/javaClasses.cpp @@ -4417,8 +4417,7 @@ oop java_lang_invoke_ResolvedMethodName::find_resolved_method(const methodHandle NoSafepointVerifier nsv; if (method->is_old()) { - method = (method->is_deleted()) ? Universe::throw_no_such_method_error() : - method->get_new_method(); + method = method->get_new_method(); } InstanceKlass* holder = method->method_holder(); diff --git a/src/hotspot/share/oops/method.hpp b/src/hotspot/share/oops/method.hpp index 905c53a4ea38b..3649b19c3b8b6 100644 --- a/src/hotspot/share/oops/method.hpp +++ b/src/hotspot/share/oops/method.hpp @@ -27,6 +27,7 @@ #include "code/compressedStream.hpp" #include "compiler/compilerDefinitions.hpp" +#include "memory/universe.hpp" #include "oops/annotations.hpp" #include "oops/constantPool.hpp" #include "oops/methodFlags.hpp" @@ -847,12 +848,11 @@ class Method : public Metadata { void release_C_heap_structures(); Method* get_new_method() const { - InstanceKlass* holder = method_holder(); - Method* new_method = holder->method_with_idnum(orig_method_idnum()); - - assert(new_method != nullptr, "method_with_idnum() should not be null"); + assert(is_old(), "must be"); + Method* new_method = method_holder()->method_with_idnum(orig_method_idnum()); assert(this != new_method, "sanity check"); - return new_method; + assert(new_method != nullptr || is_deleted(), "must be"); + return (new_method == nullptr || is_deleted()) ? Universe::throw_no_such_method_error() : new_method; } // Printing diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp index 0dd96357506f6..8c29281b24847 100644 --- a/src/hotspot/share/prims/resolvedMethodTable.cpp +++ b/src/hotspot/share/prims/resolvedMethodTable.cpp @@ -353,9 +353,7 @@ class AdjustMethodEntries : public StackObj { if (old_method->is_old()) { - Method* new_method = (old_method->is_deleted()) ? - Universe::throw_no_such_method_error() : - old_method->get_new_method(); + Method* new_method = old_method->get_new_method(); java_lang_invoke_ResolvedMethodName::set_vmtarget(mem_name, new_method); ResourceMark rm;