diff -r 6c97c830fb6f -r 328926869b15 src/share/vm/oops/methodOop.cpp --- a/src/share/vm/oops/methodOop.cpp Sat Apr 09 21:16:12 2011 -0700 +++ b/src/share/vm/oops/methodOop.cpp Sat Apr 09 22:55:25 2011 -0700 @@ -921,6 +921,10 @@ tty->cr(); } + // invariant: cp->symbol_at_put is preceded by a refcount increment (more usually a lookup) + name->increment_refcount(); + signature->increment_refcount(); + constantPoolHandle cp; { constantPoolOop cp_oop = oopFactory::new_constantPool(_imcp_limit, IsSafeConc, CHECK_(empty));