--- old/src/share/vm/oops/instanceKlass.cpp 2015-10-14 13:54:09.491003790 +0200 +++ new/src/share/vm/oops/instanceKlass.cpp 2015-10-14 13:54:09.368006764 +0200 @@ -471,6 +471,7 @@ void InstanceKlass::eager_initialize_impl(instanceKlassHandle this_k) { EXCEPTION_MARK; oop init_lock = this_k->init_lock(); + init_lock = oopDesc::bs()->write_barrier(init_lock); ObjectLocker ol(init_lock, THREAD, init_lock != NULL); // abort if someone beat us to the initialization @@ -617,6 +618,7 @@ // verification & rewriting { oop init_lock = this_k->init_lock(); + init_lock = oopDesc::bs()->write_barrier(init_lock); ObjectLocker ol(init_lock, THREAD, init_lock != NULL); // rewritten will have been set if loader constraint error found // on an earlier link attempt @@ -750,6 +752,7 @@ // Step 1 { oop init_lock = this_k->init_lock(); + init_lock = oopDesc::bs()->write_barrier(init_lock); ObjectLocker ol(init_lock, THREAD, init_lock != NULL); Thread *self = THREAD; // it's passed the current thread @@ -882,6 +885,7 @@ void InstanceKlass::set_initialization_state_and_notify_impl(instanceKlassHandle this_k, ClassState state, TRAPS) { oop init_lock = this_k->init_lock(); + init_lock = oopDesc::bs()->write_barrier(init_lock); ObjectLocker ol(init_lock, THREAD, init_lock != NULL); this_k->set_init_state(state); this_k->fence_and_clear_init_lock(); @@ -2254,7 +2258,7 @@ } address InstanceKlass::static_field_addr(int offset) { - return (address)(offset + InstanceMirrorKlass::offset_of_static_fields() + cast_from_oop(java_mirror())); + return (address)(offset + InstanceMirrorKlass::offset_of_static_fields() + cast_from_oop(oopDesc::bs()->write_barrier(java_mirror()))); }