--- old/src/hotspot/share/gc/cms/parNewGeneration.cpp 2017-09-25 13:05:57.420788247 -0400 +++ new/src/hotspot/share/gc/cms/parNewGeneration.cpp 2017-09-25 13:05:56.994688160 -0400 @@ -493,7 +493,7 @@ ParScanClosure::ParScanClosure(ParNewGeneration* g, ParScanThreadState* par_scan_state) : - OopsInKlassOrGenClosure(g), _par_scan_state(par_scan_state), _g(g) { + OopsInClassLoaderDataOrGenClosure(g), _par_scan_state(par_scan_state), _g(g) { _boundary = _g->reserved().end(); } @@ -601,11 +601,8 @@ par_scan_state.set_young_old_boundary(_young_old_boundary); - KlassScanClosure klass_scan_closure(&par_scan_state.to_space_root_closure(), - gch->rem_set()->klass_rem_set()); - CLDToKlassAndOopClosure cld_scan_closure(&klass_scan_closure, - &par_scan_state.to_space_root_closure(), - false); + CLDScanClosure cld_scan_closure(&par_scan_state.to_space_root_closure(), + gch->rem_set()->cld_rem_set()->accumulate_modified_oops()); par_scan_state.start_strong_roots(); gch->young_process_roots(_strong_roots_scope,