--- old/src/share/vm/classfile/classFileParser.cpp 2016-08-24 11:21:08.831490817 -0400 +++ new/src/share/vm/classfile/classFileParser.cpp 2016-08-24 11:21:07.987490846 -0400 @@ -5402,6 +5402,16 @@ debug_only(ik->verify();) } +static bool relax_format_check_for(oop loader, bool boot_loader) { + bool trusted = boot_loader || SystemDictionary::is_platform_class_loader(loader); + bool need_verify = + // verifyAll + (BytecodeVerificationLocal && BytecodeVerificationRemote) || + // verifyRemote + (!BytecodeVerificationLocal && BytecodeVerificationRemote && !trusted); + return !need_verify; +} + ClassFileParser::ClassFileParser(ClassFileStream* stream, Symbol* name, ClassLoaderData* loader_data, @@ -5490,7 +5500,8 @@ // Check if verification needs to be relaxed for this class file // Do not restrict it to jdk1.0 or jdk1.1 to maintain backward compatibility (4982376) - _relax_verify = Verifier::relax_verify_for(_loader_data->class_loader()); + _relax_verify = relax_format_check_for(_loader_data->class_loader(), + _loader_data->is_the_null_class_loader_data()); parse_stream(stream, CHECK);