From 521e06c8c19f9dcaff0b94ba0506bfa55296b128 Mon Sep 17 00:00:00 2001 From: zgu Date: Mon, 17 Dec 2012 13:14:02 -0500 Subject: [PATCH] 8004802: jcmd VM.native_memory baseline=false crashes VM Summary: NMT has to check option's value also to determine which command to execute Reviewed-by: acorn, coleenp, hseigel --- src/share/vm/services/nmtDCmd.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/share/vm/services/nmtDCmd.cpp b/src/share/vm/services/nmtDCmd.cpp index 47f460e6e..83b7d7e4b 100644 --- a/src/share/vm/services/nmtDCmd.cpp +++ b/src/share/vm/services/nmtDCmd.cpp @@ -84,28 +84,31 @@ void NMTDCmd::execute(TRAPS) { } int nopt = 0; - if(_summary.is_set()) { ++nopt; } - if(_detail.is_set()) { ++nopt; } - if(_baseline.is_set()) { ++nopt; } - if(_summary_diff.is_set()) { ++nopt; } - if(_detail_diff.is_set()) { ++nopt; } - if(_shutdown.is_set()) { ++nopt; } + if(_summary.is_set() && _summary.value()) { ++nopt; } + if(_detail.is_set() && _detail.value()) { ++nopt; } + if(_baseline.is_set() && _baseline.value()) { ++nopt; } + if(_summary_diff.is_set() && _summary_diff.value()) { ++nopt; } + if(_detail_diff.is_set() && _detail_diff.value()) { ++nopt; } + if(_shutdown.is_set() && _shutdown.value()) { ++nopt; } #ifndef PRODUCT - if(_debug.is_set()) { ++nopt; } + if(_debug.is_set() && _debug.value()) { ++nopt; } #endif if(nopt > 1) { output()->print_cr("At most one of the following option can be specified: " \ "summary, detail, baseline, summary.diff, detail.diff, shutdown" #ifndef PRODUCT - " ,debug" + ", debug" #endif ); return; - } - - if(nopt == 0) { + } else if (nopt == 0) { + if (_summary.is_set()) { + output()->print_cr("No command to execute"); + return; + } else { _summary.set_value(true); + } } #ifndef PRODUCT -- GitLab