--- old/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp 2015-03-11 22:04:28.567867000 +0900 +++ new/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp 2015-03-11 22:04:28.145867000 +0900 @@ -256,9 +256,9 @@ if (_gc_cause != GCCause::_gc_locker && gch->total_full_collections_completed() <= _full_gc_count_before) { // maybe we should change the condition to test _gc_cause == - // GCCause::_java_lang_system_gc, instead of + // GCCause::_java_lang_system_gc or _dcmd_gc_run, instead of // _gc_cause != GCCause::_gc_locker - assert(_gc_cause == GCCause::_java_lang_system_gc, + assert(GCCause::is_user_requested_gc(_gc_cause), "the only way to get here if this was a System.gc()-induced GC"); assert(ExplicitGCInvokesConcurrent, "Error"); // Now, wait for witnessing concurrent gc cycle to complete,