--- old/src/hotspot/share/opto/macro.cpp 2018-05-17 15:50:41.927055781 +0200 +++ new/src/hotspot/share/opto/macro.cpp 2018-05-17 15:50:41.679055784 +0200 @@ -691,13 +691,17 @@ bt = T_NARROWOOP; } value = value_from_mem(mem, ctl, bt, ft, adr_type, alloc); - assert(value != NULL, "field value should not be null"); - if (ft->isa_narrowoop()) { + if (value != NULL && ft->isa_narrowoop()) { assert(UseCompressedOops, "unexpected narrow oop"); value = transform_later(new DecodeNNode(value, value->get_ptr_type())); } } - vt->set_field_value(i, value); + if (value != NULL) { + vt->set_field_value(i, value); + } else { + // We might have reached the TrackedInitializationLimit + return NULL; + } } return vt; }