diff -r 95134e034042 -r fdb992d83a87 src/share/vm/opto/parse3.cpp --- a/src/share/vm/opto/parse3.cpp Thu Aug 11 12:08:11 2011 -0700 +++ b/src/share/vm/opto/parse3.cpp Tue Aug 16 04:14:05 2011 -0700 @@ -100,6 +100,14 @@ } } + // Deoptimize on putfield writes to CallSite.target + if (!is_get && field->is_call_site_target()) { + uncommon_trap(Deoptimization::Reason_unhandled, + Deoptimization::Action_reinterpret, + NULL, "put to CallSite.target field"); + return; + } + assert(field->will_link(method()->holder(), bc()), "getfield: typeflow responsibility"); // Note: We do not check for an unloaded field type here any more.