--- old/src/share/vm/runtime/arguments.cpp 2016-10-26 16:07:02.730283355 -0700 +++ new/src/share/vm/runtime/arguments.cpp 2016-10-26 16:07:02.599274116 -0700 @@ -1312,22 +1312,29 @@ #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", + const char* unsupported_properties[] = { "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"); + 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 { + tty->print_cr( + "Warning: the %s option is ignored when dumping the shared archive", unsupported_options[i]); + } } } sp = sp->next();