diff -r 0456e228b90d -r 536c66fc43d3 hotspot/src/share/vm/oops/constantPool.cpp --- a/hotspot/src/share/vm/oops/constantPool.cpp Tue Apr 08 11:50:01 2014 +0200 +++ b/hotspot/src/share/vm/oops/constantPool.cpp Tue Apr 08 13:58:38 2014 -0400 @@ -144,6 +144,10 @@ // CDS support. Create a new resolved_references array. void ConstantPool::restore_unshareable_info(TRAPS) { + // Only create the new resolved references array and lock if it hasn't been + // attempted before + if (resolved_references() != NULL) return; + // restore the C++ vtable from the shared archive restore_vtable();