--- old/src/share/vm/gc/serial/markSweep.cpp 2015-10-14 13:53:58.833261501 +0200 +++ new/src/share/vm/gc/serial/markSweep.cpp 2015-10-14 13:53:58.716264330 +0200 @@ -85,6 +85,7 @@ T heap_oop = oopDesc::load_heap_oop(p); if (!oopDesc::is_null(heap_oop)) { oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); + obj = oopDesc::bs()->resolve_and_update_oop(p, obj); if (!obj->mark()->is_marked() && !is_archive_object(obj)) { mark_object(obj); @@ -182,6 +183,7 @@ T heap_oop = oopDesc::load_heap_oop(p); if (!oopDesc::is_null(heap_oop)) { oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); + obj = oopDesc::bs()->resolve_and_update_oop(p, obj); if (!obj->mark()->is_marked() && !is_archive_object(obj)) { mark_object(obj);