diff -r 042294ceef52 -r f025738bbada hotspot/src/share/vm/gc/shared/vmGCOperations.cpp --- a/hotspot/src/share/vm/gc/shared/vmGCOperations.cpp Fri Mar 18 11:42:32 2016 +0100 +++ b/hotspot/src/share/vm/gc/shared/vmGCOperations.cpp Fri Mar 18 13:18:58 2016 +0100 @@ -271,12 +271,8 @@ return; } - // If expansion failed, do a last-ditch collection and try allocating - // again. A last-ditch collection will clear softrefs. This - // behavior is similar to the last-ditch collection done for perm - // gen when it was full and a collection for failed allocation - // did not free perm gen space. - heap->collect_as_vm_thread(GCCause::_last_ditch_collection); + // If expansion failed, do a collection clearing soft references. + heap->collect_as_vm_thread(GCCause::_metadata_GC_clear_soft_refs); _result = _loader_data->metaspace_non_null()->allocate(_size, _mdtype); if (_result != NULL) { return;