--- old/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp 2014-07-14 09:54:27.522128947 +0200 +++ new/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp 2014-07-14 09:54:27.442126608 +0200 @@ -277,9 +277,13 @@ // We now want to allow clearing of the marking bitmap to be // suspended by a collection pause. - { + // We may have aborted just before the remark. Do not bother clearing the + // bitmap then, as it has been done during mark abort. + if (!cm()->has_aborted()) { SuspendibleThreadSetJoiner sts; _cm->clearNextBitmap(); + } else { + assert(!G1VerifyBitmaps || _cm->nextMarkBitmapIsClear(), "Next mark bitmap must be clear"); } }