diff -r 6cc8e6f596b2 -r 29d8bb1668f5 hotspot/src/share/vm/oops/method.cpp --- a/hotspot/src/share/vm/oops/method.cpp Wed Mar 02 15:42:03 2016 +0300 +++ b/hotspot/src/share/vm/oops/method.cpp Thu Mar 03 13:18:53 2016 +0100 @@ -383,15 +383,14 @@ MutexLocker ml(MethodData_lock, THREAD); if (method->method_data() == NULL) { ClassLoaderData* loader_data = method->method_holder()->class_loader_data(); -#if defined(COMPILER2) || INCLUDE_JVMCI MethodData* method_data = MethodData::allocate(loader_data, method, THREAD); if (HAS_PENDING_EXCEPTION) { CompileBroker::log_metaspace_failure(); ClassLoaderDataGraph::set_metaspace_oom(true); return; // return the exception (which is cleared) } + method->set_method_data(method_data); -#endif if (PrintMethodData && (Verbose || WizardMode)) { ResourceMark rm(THREAD); tty->print("build_interpreter_method_data for "); @@ -921,7 +920,7 @@ // shared class that failed to load, this->link_method() may // have already been called (before an exception happened), so // this->_method_data may not be NULL. - assert(!DumpSharedSpaces || method_data() == NULL, "unexpected method data?"); + assert(!DumpSharedSpaces || _method_data == NULL, "unexpected method data?"); set_method_data(NULL); clear_method_counters();