--- old/src/share/vm/gc/g1/g1CollectedHeap.cpp 2016-06-09 15:26:25.711525605 +0300 +++ new/src/share/vm/gc/g1/g1CollectedHeap.cpp 2016-06-09 15:26:25.599525609 +0300 @@ -3474,7 +3474,8 @@ double remove_self_forwards_start = os::elapsedTime(); remove_self_forwarding_pointers(); - _preserved_marks_set.restore(workers()); + SharedRestorePreservedMarksTaskExecutor task_executor(workers()); + _preserved_marks_set.restore(&task_executor); g1_policy()->phase_times()->record_evac_fail_remove_self_forwards((os::elapsedTime() - remove_self_forwards_start) * 1000.0); }