--- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Thu Aug 21 23:38:19 2008 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Fri Aug 22 11:48:25 2008 -0700
@@ -50,6 +50,10 @@
allocate_stacks();
+ // We should save the marks of the currently locked biased monitors.
+ // The marking doesn't preserve the marks of biased objects.
+ BiasedLocking::preserve_marks();
+
mark_sweep_phase1(marked_for_unloading, clear_all_softrefs);
if (G1VerifyConcMark) {
@@ -67,7 +71,7 @@
mark_sweep_phase4();
GenMarkSweep::restore_marks();
-
+ BiasedLocking::restore_marks();
GenMarkSweep::deallocate_stacks();
// We must invalidate the perm-gen rs, so that it gets rebuilt.