diff -r 99b604ec1af6 -r 6a7d6b6bbd78 src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Thu Jun 20 07:13:06 2019 -0400 +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Thu Jun 20 10:12:31 2019 -0400 @@ -1279,14 +1279,14 @@ Stack oop_stack; - // First, we process all GC roots. This populates the work stack with initial objects. - ShenandoahAllRootScanner rp(1, ShenandoahPhaseTimings::_num_phases); + // First, we process GC roots according to current GC cycle. This populates the work stack with initial objects. + ShenandoahHeapIterationRootScanner rp; ObjectIterateScanRootClosure oops(&_aux_bit_map, &oop_stack); if (unload_classes()) { - rp.strong_roots_do_unchecked(&oops); + rp.strong_roots_do(&oops); } else { - rp.roots_do_unchecked(&oops); + rp.roots_do(&oops); } // Work through the oop stack to traverse heap. @@ -1587,7 +1587,7 @@ class ShenandoahConcurrentRootsEvacUpdateTask : public AbstractGangTask { private: - ShenandoahJNIHandleRoots _jni_roots; + ShenandoahJNIHandleRoots _jni_roots; public: ShenandoahConcurrentRootsEvacUpdateTask() :