--- old/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp 2019-08-20 10:52:32.508852874 +0200 +++ new/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp 2019-08-20 10:52:32.300849668 +0200 @@ -8008,14 +8008,14 @@ // Single threaded void CMSCollector::preserve_mark_if_necessary(oop p) { markWord m = p->mark_raw(); - if (m.must_be_preserved(p)) { + if (p->mark_must_be_preserved(m)) { preserve_mark_work(p, m); } } void CMSCollector::par_preserve_mark_if_necessary(oop p) { markWord m = p->mark_raw(); - if (m.must_be_preserved(p)) { + if (p->mark_must_be_preserved(m)) { MutexLocker x(ParGCRareEvent_lock, Mutex::_no_safepoint_check_flag); // Even though we read the mark word without holding // the lock, we are assured that it will not change