diff -r 7d078d2daacc -r 8cc36fac7f3d src/hotspot/share/interpreter/linkResolver.cpp --- a/src/hotspot/share/interpreter/linkResolver.cpp Thu Jul 05 14:35:03 2018 -0700 +++ b/src/hotspot/share/interpreter/linkResolver.cpp Fri Jul 06 09:00:48 2018 -0400 @@ -1221,17 +1221,14 @@ // check if the method is not resolved_method->name() != vmSymbols::object_initializer_name()) { - // check if this is an old-style super call and do a new lookup if so - // a) check if ACC_SUPER flag is set for the current class Klass* current_klass = link_info.current_klass(); - if ((current_klass->is_super() || !AllowNonVirtualCalls) && - // b) check if the class of the resolved_klass is a superclass - // (not supertype in order to exclude interface classes) of the current class. - // This check is not performed for super.invoke for interface methods - // in super interfaces. - current_klass->is_subclass_of(resolved_klass) && - current_klass != resolved_klass - ) { + + // Check if the class of the resolved_klass is a superclass + // (not supertype in order to exclude interface classes) of the current class. + // This check is not performed for super.invoke for interface methods + // in super interfaces. + if (current_klass->is_subclass_of(resolved_klass) && + current_klass != resolved_klass) { // Lookup super method Klass* super_klass = current_klass->super(); sel_method = lookup_instance_method_in_klasses(super_klass,