src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/runtime/arguments.cpp	Thu Nov 10 15:32:41 2016
--- new/src/share/vm/runtime/arguments.cpp	Thu Nov 10 15:32:41 2016

*** 1313,1338 **** --- 1313,1347 ---- } #if INCLUDE_CDS void Arguments::check_unsupported_dumping_properties() { assert(DumpSharedSpaces, "this function is only used with -Xshare:dump"); - const char* unsupported_properties[5] = { "jdk.module.main", + "jdk.module.limitmods", "jdk.module.path", "jdk.module.upgrade.path", ! "jdk.module.addmods.0", "jdk.module.limitmods" }; ! const char* unsupported_options[5] = { "-m", ! "jdk.module.addmods.0" }; + const char* unsupported_options[] = { "-m", ! "--limit-modules", "--module-path", "--upgrade-module-path", ! "--add-modules", ! "--limit-modules" }; ! "--add-modules" }; ! assert(ARRAY_SIZE(unsupported_properties) == ARRAY_SIZE(unsupported_options), "must be"); + // If a vm option is found in the unsupported_options array with index less than the warning_idx, + // vm will exit with an error message. Otherwise, it will result in a warning message. + uint warning_idx = 2; SystemProperty* sp = system_properties(); while (sp != NULL) { ! for (int i = 0; i < 5; i++) { ! for (uint i = 0; i < ARRAY_SIZE(unsupported_properties); i++) { if (strcmp(sp->key(), unsupported_properties[i]) == 0) { + if (i < warning_idx) { vm_exit_during_initialization( "Cannot use the following option when dumping the shared archive", unsupported_options[i]); + } else { + warning( + "the %s option is ignored when dumping the shared archive", unsupported_options[i]); + } } } sp = sp->next(); }

src/share/vm/runtime/arguments.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File