--- old/src/share/vm/opto/callGenerator.cpp 2016-02-04 19:31:45.000000000 +0300 +++ new/src/share/vm/opto/callGenerator.cpp 2016-02-04 19:31:45.000000000 +0300 @@ -829,7 +829,12 @@ const int vtable_index = Method::invalid_vtable_index; CallGenerator* cg = C->call_generator(target, vtable_index, false, jvms, true, PROB_ALWAYS, NULL, true, true); assert(cg == NULL || !cg->is_late_inline() || cg->is_mh_late_inline(), "no late inline here"); - return cg; + // Don't replace MH::invokeBasic adapter call with a direct call for non-inlined case. + // It doesn't play well with LambdaForm customization. Unless the target LambdaForm + // has been already customized, an updated version won't be called until recompilation. + if (cg != NULL && cg->is_inline()) { + return cg; + } } else { const char* msg = "receiver not constant"; if (PrintInlining) C->print_inlining(callee, jvms->depth() - 1, jvms->bci(), msg);