diff --git a/runtime/vm/jvminit.c b/runtime/vm/jvminit.c index 2756fa92cb4..0170ceb6a9e 100644 --- a/runtime/vm/jvminit.c +++ b/runtime/vm/jvminit.c @@ -6308,10 +6308,25 @@ parseXlogForCompatibility(J9JavaVM *vm) if ('\0' == *upToComma) { goto xlogerr; } - gclog = 0 != j9_cmdla_stricmp("off", upToComma); - if (gclog) { + /* only levels trace, debug, info, and not off, warning, error, enable the gc verbose log */ + if (0 == j9_cmdla_stricmp("off", upToComma)) { + gclog = FALSE; + } else if ((0 == j9_cmdla_stricmp("warning", upToComma)) + || (0 == j9_cmdla_stricmp("error", upToComma)) + ) { + gclog = FALSE; /* OpenJ9 doesn't understand log levels */ unrecognizedOption = TRUE; + } else if ((0 == j9_cmdla_stricmp("trace", upToComma)) + || (0 == j9_cmdla_stricmp("debug", upToComma)) + || (0 == j9_cmdla_stricmp("info", upToComma)) + ) { + gclog = TRUE; + /* OpenJ9 doesn't understand log levels */ + unrecognizedOption = TRUE; + } else { + /* unrecognized log level */ + unrecognizedOption = TRUE; } } } diff --git a/test/functional/cmdLineTests/xlogTests/xlog.xml b/test/functional/cmdLineTests/xlogTests/xlog.xml index c97fad6cfb4..6fd43aa91d9 100644 --- a/test/functional/cmdLineTests/xlogTests/xlog.xml +++ b/test/functional/cmdLineTests/xlogTests/xlog.xml @@ -91,6 +91,30 @@ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-excepti JVMJ9VM007 + + $EXE$ $ENABLEXLOG$ -Xlog:gc=trace -version + (openjdk|java|semeru) version + verbosegc + JVMJ9VM007 + JVMJ9VM085 + + + + $EXE$ $ENABLEXLOG$ -Xlog:gc=debug -version + (openjdk|java|semeru) version + verbosegc + JVMJ9VM007 + JVMJ9VM085 + + + + $EXE$ $ENABLEXLOG$ -Xlog:gc=info -version + (openjdk|java|semeru) version + verbosegc + JVMJ9VM007 + JVMJ9VM085 + + $EXE$ $ENABLEXLOG$ -Xlog:gc: -version (openjdk|java|semeru) version @@ -184,6 +208,22 @@ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-excepti JVMJ9VM085 + + $EXE$ $ENABLEXLOG$ -Xlog:gc=warning -version + (openjdk|java|semeru) version + JVMJ9VM007W + verbosegc + JVMJ9VM085 + + + + $EXE$ $ENABLEXLOG$ -Xlog:gc=error -version + (openjdk|java|semeru) version + JVMJ9VM007W + verbosegc + JVMJ9VM085 + + $EXE$ $ENABLEXLOG$ -Xlog:any+gc=off -version (openjdk|java|semeru) version