SUGGESTED FIX
)$ sccs diffs -C concurrentMarkSweepGeneration.cpp
------- concurrentMarkSweepGeneration.cpp -------
*** /tmp/dpta4qU 2007-05-18 10:46:00.602205948 +0100
--- concurrentMarkSweepGeneration.cpp 2007-05-16 18:23:36.847287000 +0100
***************
*** 1776,1784 ****
break;
case Marking:
// initial marking in checkpointRootsInitialWork has been completed
! markFromRoots(true);
! assert(_collectorState == Precleaning, "Collector state should "
! "have changed");
break;
case Precleaning:
// marking from roots in markFromRoots has been completed
--- 1776,1787 ----
break;
case Marking:
// initial marking in checkpointRootsInitialWork has been completed
! if (markFromRoots(true)) { // we were successful
! assert(_collectorState == Precleaning, "Collector state should "
! "have changed");
! } else {
! assert(_foregroundGCIsActive, "Internal state inconsistency");
! }
break;
case Precleaning:
// marking from roots in markFromRoots has been completed
***************
*** 1932,1945 ****
break;
case Marking:
// initial marking in checkpointRootsInitialWork has been completed
! if (VerifyDuringGC &&
! GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
! Universe::verify(true);
! }
! markFromRoots(false);
! assert(_collectorState == FinalMarking, "Collector state should "
"have changed");
break;
case FinalMarking:
if (VerifyDuringGC &&
GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
--- 1935,1950 ----
break;
case Marking:
// initial marking in checkpointRootsInitialWork has been completed
! if (VerifyDuringGC &&
! GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
! Universe::verify(true);
! }
! {
! bool res = markFromRoots(false);
! assert(res && _collectorState == FinalMarking, "Collector state should "
"have changed");
break;
+ }
case FinalMarking:
if (VerifyDuringGC &&
GenCollectedHeap::heap()->total_collections() >= VerifyGCStartAt) {
|