--- old/src/hotspot/share/gc/g1/g1ParScanThreadState.cpp 2018-03-25 12:59:21.905904857 +0200 +++ new/src/hotspot/share/gc/g1/g1ParScanThreadState.cpp 2018-03-25 12:59:21.721907347 +0200 @@ -281,15 +281,15 @@ // In this case, we have to install the mark word first, // otherwise obj looks to be forwarded (the old mark word, // which contains the forward pointer, was copied) - obj->set_mark(old_mark); + obj->set_mark_raw(old_mark); markOop new_mark = old_mark->displaced_mark_helper()->set_age(age); old_mark->set_displaced_mark_helper(new_mark); } else { - obj->set_mark(old_mark->set_age(age)); + obj->set_mark_raw(old_mark->set_age(age)); } _age_table.add(age, word_sz); } else { - obj->set_mark(old_mark); + obj->set_mark_raw(old_mark); } if (G1StringDedup::is_enabled()) {