8174818: bigapps/Weblogic12medrec fails with assert(check_call_consistency(jvms, cg)) failed: inconsistent info
authorvlivanov
Mon, 13 Feb 2017 23:58:00 +0300
changeset 43951 c23519aaccc1
parent 43950 5e482ff92cf5
child 43953 e7ebd1507bd7
8174818: bigapps/Weblogic12medrec fails with assert(check_call_consistency(jvms, cg)) failed: inconsistent info Reviewed-by: vlivanov Contributed-by: dmitry.chuyko@oracle.com
hotspot/src/share/vm/ci/ciMethod.cpp
--- a/hotspot/src/share/vm/ci/ciMethod.cpp	Sat Feb 11 00:17:31 2017 +0900
+++ b/hotspot/src/share/vm/ci/ciMethod.cpp	Mon Feb 13 23:58:00 2017 +0300
@@ -1428,8 +1428,12 @@
 
   if (!invoke_through_mh_intrinsic) {
     // Method name & descriptor should stay the same.
+    // Signatures may reference unloaded types and thus they may be not strictly equal.
+    ciSymbol* declared_signature = declared_method->signature()->as_symbol();
+    ciSymbol* resolved_signature = resolved_method->signature()->as_symbol();
+
     return (declared_method->name()->equals(resolved_method->name())) &&
-           (declared_method->signature()->equals(resolved_method->signature()));
+           (declared_signature->equals(resolved_signature));
   }
 
   ciMethod* linker = declared_method;