diff a/src/hotspot/share/classfile/verifier.hpp b/src/hotspot/share/classfile/verifier.hpp --- a/src/hotspot/share/classfile/verifier.hpp +++ b/src/hotspot/share/classfile/verifier.hpp @@ -457,12 +457,18 @@ if (name->is_Q_signature()) { // Remove the Q and ; // TBD need error msg if fundamental_name() returns NULL? Symbol* fund_name = name->fundamental_name(CHECK_(VerificationType::bogus_type())); return VerificationType::valuetype_type(fund_name); + } else if (name->is_L_signature()) { + // Remove the L and ; + // TBD need error msg if fundamental_name() returns NULL? + Symbol* fund_name = name->fundamental_name(CHECK_(VerificationType::bogus_type())); + return VerificationType::reference_type(fund_name); + } else { + return VerificationType::reference_type(name); } - return VerificationType::reference_type(name); } // Keep a list of temporary symbols created during verification because // their reference counts need to be decremented when the verifier object // goes out of scope. Since these symbols escape the scope in which they're