RFR: 8146632: Add descriptive error messages for removed non-product logging flags.
Coleen Phillimore
coleen.phillimore at oracle.com
Wed Mar 16 19:20:24 UTC 2016
Okay, I didn't see your reply. I also thought that storing a version in
the table might be helpful for documentation purposes so we know in the
future when to remove the line from the table. I agree with your
implementation choice to have an additional table rather than twisting
the other table to cover this use case.
http://cr.openjdk.java.net/~mockner/8146632.02/src/share/vm/runtime/arguments.cpp.udiff.html
I think Harold's refactoring makes sense and I think the #endif // PRODUCT
}
*+ #ifndef PRODUCT*
*+ else if ((replacement =
removed_develop_logging_flag_name(stripped_argname)) != NULL){*
*+ jio_fprintf(defaultStream::error_stream(),*
*+ "%s has been removed. Please use %s instead.\n", stripped_argname,
replacement);*
*+ return false;*
*+ #endif*
*+ }*
I think this should be like this so the {} match inside of #ifndef PRODUCT:
*+ #ifndef PRODUCT*
*+ } else if ((replacement =
removed_develop_logging_flag_name(stripped_argname)) != NULL) {*
*+ jio_fprintf(defaultStream::error_stream(),*
*+ "%s has been removed. Please use %s instead.\n", stripped_argname,
replacement);*
*+ return false;*
*+ #endif*
*+ }*
Or refactor as Harold suggested.
Coleen
On 3/16/16 3:04 PM, Max Ockner wrote:
> I did, but it blended in with the rest of the text
>
> My response: "Seems appropriate to report a specific error message for
> 9 and then remove it for 10. If it would help, we can store a Version
> in the table to keep track of when each entry needs to be deleted,
> like what is done in the table of obsolete flags. "
>
>
> On 3/16/2016 2:24 PM, Coleen Phillimore wrote:
>>
>> You should also answer David's concern.
>> Coleen
>>
>> On 3/16/16 2:05 PM, Max Ockner wrote:
>>> webrev: http://cr.openjdk.java.net/~mockner/8146632.02/
>>> - Labeled #endif with // PRODUCT
>>> - refactored table lookup code to only do lookup once.
>>> - Added VerboseVerification to the table.
>>>
>>> Comments below.
>>>
>>> On 3/16/2016 1:48 AM, David Holmes wrote:
>>>> Hi Max,
>>>>
>>>> On 16/03/2016 3:45 AM, Max Ockner wrote:
>>>>> Hello again everyone!
>>>>>
>>>>> Please review this change which adds better error messages for
>>>>> non-product flags that are now converted to Unified Logging.
>>>>>
>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8146632
>>>>> webrev: http://cr.openjdk.java.net/~mockner/8146632/
>>>>>
>>>>> Since these options have been removed, we want still want the vm to
>>>>> crash here, but now with an error message giving the correct command
>>>>> line option. The new message looks like this:
>>>>>
>>>>> > TraceClassInitialization has been removed. Please use
>>>>> -Xlog:classinit
>>>>> instead."
>>>>>
>>>>> The entire output looks like this:
>>>>>
>>>>> > TraceClassInitialization has been removed. Please use
>>>>> -Xlog:classinit
>>>>> instead.
>>>>> > Error: Could not create the Java Virtual Machine.
>>>>> > Error: A fatal exception has occurred. Program will exit.
>>>>
>>>> I'm concerned that this has introduced another variant of "flag
>>>> deprecation". It begs the question as to when this new code should
>>>> be removed. Maybe we need to add "replaced" as another type of flag
>>>> change so we can report in 9 the flag has been replaced and then in
>>>> 10 just report an "unknown option" error ?
>>>>
>>>> Thanks,
>>>> David
>>>>
>>> Seems appropriate to report a specific error message for 9 and then
>>> remove it for 10. If it would help, we can store a Version in the
>>> table to keep track of when each entry needs to be deleted, like
>>> what is done in the table of obsolete flags.
>>>>> Tested with jtreg runtime tests. A new test checks for an appropriate
>>>>> error message for every develop flag that has so far been
>>>>> converted to
>>>>> logging.
>>>>>
>>>>> Thanks,
>>>>> Max
>>>>>
>>>>>
>>>
>>
>
More information about the hotspot-runtime-dev
mailing list