< prev index next >

src/hotspot/share/classfile/systemDictionary.cpp

Print this page

        

@@ -2782,11 +2782,15 @@
     // Skip resolution for j.l.i.MethodHandle.invoke()/invokeExact().
     // They are public signature polymorphic methods, but require appendix argument
     // which MemberName resolution doesn't handle. There's special logic on JDK side to handle them
     // (see MethodHandles.linkMethodHandleConstant() and MethodHandles.findVirtualForMH()).
   } else {
-    MethodHandles::resolve_MemberName(mname, caller, CHECK_(empty));
+    Handle resolved = MethodHandles::resolve_MemberName(mname, caller, CHECK_(empty));
+    if (resolved.is_null()) {
+      // Resolution failure should already trigger an exception.
+      THROW_MSG_(vmSymbols::java_lang_InternalError(), "empty", empty);
+    }
   }
 
   // After method/field resolution succeeded, it's safe to resolve MH signature as well.
   Handle type = MethodHandles::resolve_MemberName_type(mname, caller, CHECK_(empty));
 
< prev index next >