hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Tue Mar 12 11:00:49 2013 -0700
+++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Thu Mar 14 10:54:44 2013 +0100
@@ -6068,6 +6068,10 @@
verify_work_stacks_empty();
verify_overflow_empty();
+ if (should_unload_classes()) {
+ ClassLoaderDataGraph::purge();
+ }
+
_intra_sweep_timer.stop();
_intra_sweep_estimate.sample(_intra_sweep_timer.seconds());