<div dir="ltr">Apparently, my memory's been swapped out. I meant to use _promotion_failed field.<div><br><div><div>diff -r a184ee1d7172 src/share/vm/gc_implementation/parNew/parNewGeneration.cpp</div><div>--- a/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp<span class="" style="white-space:pre">  </span>Thu Jan 08 12:08:22 2015 -0800</div><div>+++ b/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp<span class="" style="white-space:pre">     </span>Thu Jan 15 09:00:05 2015 -0800</div><div>@@ -1194,8 +1194,10 @@</div><div>         return real_forwardee(old);</div><div>     }</div><div> </div><div>-    new_obj = _next_gen->par_promote(par_scan_state->thread_num(),</div><div>-                                       old, m, sz);</div><div>+    if (!_promotion_failed) {</div><div>+      new_obj = _next_gen->par_promote(par_scan_state->thread_num(),</div><div>+                                        old, m, sz);</div><div>+    }</div><div> </div><div>     if (new_obj == NULL) {</div><div>       // promotion failed, forward to self</div></div><div><br></div></div></div>