--- old/src/share/vm/opto/parse2.cpp 2014-12-11 13:53:39.158069873 -0500 +++ new/src/share/vm/opto/parse2.cpp 2014-12-11 13:53:38.938089357 -0500 @@ -1689,7 +1689,8 @@ a = pop(); // the array itself const TypeOopPtr* elemtype = _gvn.type(a)->is_aryptr()->elem()->make_oopptr(); const TypeAryPtr* adr_type = TypeAryPtr::OOPS; - Node* store = store_oop_to_array(control(), a, d, adr_type, c, elemtype, T_OBJECT, MemNode::release); + Node* store = store_oop_to_array(control(), a, d, adr_type, c, elemtype, T_OBJECT, + StoreNode::release_if_reference(T_OBJECT)); break; } case Bytecodes::_lastore: {