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