--- old/src/share/vm/gc/g1/g1ParScanThreadState.cpp 2015-08-06 16:02:45.902000347 +0200 +++ new/src/share/vm/gc/g1/g1ParScanThreadState.cpp 2015-08-06 16:02:45.823998021 +0200 @@ -42,7 +42,7 @@ _tenuring_threshold(g1h->g1_policy()->tenuring_threshold()), _age_table(false), _scanner(g1h, rp), _strong_roots_time(0), _term_time(0), - _no_more_space_in_old(false) + _last_gen_is_full(false) { _scanner.set_par_scan_thread_state(this); // we allocate G1YoungSurvRateNumRegions plus one entries, since @@ -189,11 +189,11 @@ } else { // We just failed to allocate in old gen. The same idea as explained above // for making survivor gen unavailable for allocation applies for old gen. - _no_more_space_in_old = plab_refill_in_old_failed; + _last_gen_is_full = plab_refill_in_old_failed; } return obj_ptr; } else { - _no_more_space_in_old = previous_plab_refill_failed; + _last_gen_is_full = previous_plab_refill_failed; assert(dest->is_old(), err_msg("Unexpected dest: " CSETSTATE_FORMAT, dest->value())); // no other space to try. return NULL; @@ -226,7 +226,7 @@ InCSetState dest_state = next_state(state, old_mark, age); // The second clause is to prevent premature evacuation failure in case there // is still space in survivor, but old gen is full. - if (_no_more_space_in_old && dest_state.is_old()) { + if (_last_gen_is_full && dest_state.is_old()) { return handle_evacuation_failure_par(old, old_mark); } HeapWord* obj_ptr = _plab_allocator->plab_allocate(dest_state, word_sz, context);