diff -r 6b5f3f5fd63c -r 1906adbef2dc src/hotspot/share/gc/g1/g1RemSet.cpp --- a/src/hotspot/share/gc/g1/g1RemSet.cpp Wed Aug 22 10:28:34 2018 -0700 +++ b/src/hotspot/share/gc/g1/g1RemSet.cpp Wed Aug 22 20:37:07 2018 +0200 @@ -132,7 +132,7 @@ virtual bool do_heap_region(HeapRegion* r) { uint hrm_index = r->hrm_index(); - if (!r->in_collection_set() && r->is_old_or_humongous()) { + if (!r->in_collection_set() && r->is_old_or_humongous_or_archive()) { _scan_top[hrm_index] = r->top(); } else { _scan_top[hrm_index] = r->bottom(); @@ -571,7 +571,7 @@ // In the normal (non-stale) case, the synchronization between the // enqueueing of the card and processing it here will have ensured // we see the up-to-date region type here. - if (!r->is_old_or_humongous()) { + if (!r->is_old_or_humongous_or_archive()) { return; } @@ -600,7 +600,7 @@ // Check whether the region formerly in the cache should be // ignored, as discussed earlier for the original card. The // region could have been freed while in the cache. - if (!r->is_old_or_humongous()) { + if (!r->is_old_or_humongous_or_archive()) { return; } } // Else we still have the original card.