--- old/src/share/vm/runtime/arguments.cpp 2015-09-28 13:36:29.000000000 -0500 +++ new/src/share/vm/runtime/arguments.cpp 2015-09-28 13:36:28.000000000 -0500 @@ -841,7 +841,7 @@ JDK_Version since = JDK_Version(); - if (parse_argument(arg, origin) || ignore_unrecognized) { + if (parse_argument(arg, origin)) { return true; } @@ -877,7 +877,7 @@ Flag* found_flag = Flag::find_flag((const char*)argname, arg_len, true, true); if (found_flag != NULL) { char locked_message_buf[BUFLEN]; - found_flag->get_locked_message(locked_message_buf, BUFLEN); + Flag::MsgType msg_type = found_flag->get_locked_message(locked_message_buf, BUFLEN); if (strlen(locked_message_buf) == 0) { if (found_flag->is_bool() && !has_plus_minus) { jio_fprintf(defaultStream::error_stream(), @@ -890,9 +890,19 @@ "Improperly specified VM option '%s'\n", argname); } } else { +#ifdef PRODUCT + bool mismatched = ((msg_type == Flag::NOTPRODUCT_FLAG_BUT_PRODUCT_BUILD) || + (msg_type == Flag::DEVELOPER_FLAG_BUT_PRODUCT_BUILD)); + if (ignore_unrecognized && mismatched) { + return true; + } +#endif jio_fprintf(defaultStream::error_stream(), "%s", locked_message_buf); } } else { + if (ignore_unrecognized) { + return true; + } jio_fprintf(defaultStream::error_stream(), "Unrecognized VM option '%s'\n", argname); Flag* fuzzy_matched = Flag::fuzzy_match((const char*)argname, arg_len, true);