--- old/src/share/vm/runtime/deoptimization.cpp 2011-06-27 11:58:58.330402000 -0700 +++ new/src/share/vm/runtime/deoptimization.cpp 2011-06-27 11:58:58.081687000 -0700 @@ -1488,6 +1488,9 @@ // trapping two or more times, they each get the blame for // all of their traps. make_not_entrant = true; + if (per_bc_reason == Reason_unhandled) { + make_not_compilable = true; + } } // Detect repeated recompilation at the same BCI, and enforce a limit. @@ -1607,7 +1610,6 @@ bool maybe_prior_recompile = (trap_mdo->decompile_count() != 0); ProfileData* pdata = NULL; - // For reasons which are recorded per bytecode, we check per-BCI data. DeoptReason per_bc_reason = reason_recorded_per_bytecode_if_any(reason); if (per_bc_reason != Reason_none) {