--- old/src/hotspot/share/interpreter/linkResolver.cpp 2017-12-15 03:44:43.702706718 -0500 +++ new/src/hotspot/share/interpreter/linkResolver.cpp 2017-12-15 03:44:41.562584648 -0500 @@ -818,9 +818,6 @@ #endif // PRODUCT } -// FIXME: update to correct version -#define VIRTUAL_PRIVATE_ACCESS_VERSION 53 - // Do linktime resolution of a method in the interface within the context of the specied bytecode. methodHandle LinkResolver::resolve_interface_method(const LinkInfo& link_info, Bytecodes::Code code, TRAPS) { @@ -885,21 +882,6 @@ THROW_MSG_NULL(vmSymbols::java_lang_IncompatibleClassChangeError(), buf); } - if (code == Bytecodes::_invokeinterface && resolved_method->is_private()) { - Klass* current_klass = link_info.current_klass(); - assert(current_klass != NULL, "current_klass should not be null for invokeinterface"); - if (InstanceKlass::cast(current_klass)->major_version() < VIRTUAL_PRIVATE_ACCESS_VERSION) { - ResourceMark rm(THREAD); - char buf[200]; - jio_snprintf(buf, sizeof(buf), "private interface method requires invokespecial, not invokeinterface: method %s, caller-class:%s", - Method::name_and_sig_as_C_string(resolved_klass, - resolved_method->name(), - resolved_method->signature()), - current_klass->internal_name()); - THROW_MSG_NULL(vmSymbols::java_lang_IncompatibleClassChangeError(), buf); - } - } - if (log_develop_is_enabled(Trace, itables)) { char buf[200]; jio_snprintf(buf, sizeof(buf), "%s resolved interface method: caller-class:",