diff -r cc624b341ab2 -r 970dc585ab63 hotspot/src/share/vm/runtime/sweeper.cpp --- a/hotspot/src/share/vm/runtime/sweeper.cpp Thu Sep 02 11:40:02 2010 -0700 +++ b/hotspot/src/share/vm/runtime/sweeper.cpp Fri Sep 03 17:51:07 2010 -0700 @@ -368,8 +368,7 @@ disconnected++; } else if (nm->is_speculatively_disconnected()) { // This method was previously considered for preemptive unloading and was not called since then - nm->method()->invocation_counter()->decay(); - nm->method()->backedge_counter()->decay(); + CompilationPolicy::policy()->delay_compilation(nm->method()); nm->make_not_entrant(); made_not_entrant++; }