--- old/src/share/vm/gc/g1/g1CollectedHeap.cpp 2017-07-10 14:17:02.280534387 +0200 +++ new/src/share/vm/gc/g1/g1CollectedHeap.cpp 2017-07-10 14:17:02.179531254 +0200 @@ -1660,6 +1660,14 @@ return result; } +jint G1CollectedHeap::initialize_concurrent_refinement() { + _refine_cte_cl = new RefineCardTableEntryClosure(); + + jint ecode = JNI_OK; + _cg1r = ConcurrentG1Refine::create(_refine_cte_cl, &ecode); + return ecode; +} + jint G1CollectedHeap::initialize() { CollectedHeap::pre_initialize(); os::enable_vtime(); @@ -1808,11 +1816,8 @@ G1SATBProcessCompletedThreshold, Shared_SATB_Q_lock); - _refine_cte_cl = new RefineCardTableEntryClosure(); - - jint ecode = JNI_OK; - _cg1r = ConcurrentG1Refine::create(_refine_cte_cl, &ecode); - if (_cg1r == NULL) { + jint ecode = initialize_concurrent_refinement(); + if (ecode != JNI_OK) { return ecode; } @@ -1858,8 +1863,6 @@ _collection_set.initialize(max_regions()); - _g1_rem_set->initialize_periodic_summary_info(); - return JNI_OK; }