diff -r 5db166e5580b -r 802f7e5e7e6b src/hotspot/share/jvmci/jvmciCompilerToVM.cpp --- a/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp Fri Aug 10 22:38:18 2018 -0400 +++ b/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp Sat Aug 11 12:49:33 2018 -0400 @@ -382,7 +382,12 @@ err_msg("Expected interface type, got %s", klass->external_name())); } InstanceKlass* iklass = InstanceKlass::cast(klass); - JVMCIKlassHandle handle(THREAD, iklass->implementor()); + JVMCIKlassHandle handle(THREAD); + { + // Need Compile_lock around implementor() + MutexLocker locker(Compile_lock); + handle = iklass->implementor(); + } oop implementor = CompilerToVM::get_jvmci_type(handle, CHECK_NULL); return JNIHandles::make_local(THREAD, implementor); C2V_END