RFR:8060449:Proper error messages for newly obsolete command line flags.
Max Ockner
max.ockner at oracle.com
Wed Nov 12 19:43:40 UTC 2014
Lois,
Thank you for looking over this. I have reversed the order of the logic
as you recommended and I have updated the copyrights.
Max
On 11/12/2014 11:26 AM, Lois Foltan wrote:
>
> On 11/12/2014 11:24 AM, Lois Foltan wrote:
>> Hi Max,
>>
>> Overall, this looks good. A couple of comments:
>>
>> src/share/vm/runtime/arguments.cpp
>>
>> - Within the altered if statement, shouldn't the second comparison
>> of &s[1] to len actually be (strlen(&s[1] == (len-1)), since the
>> original len was calculated to take into account the character in
>> s[0]? This comment also applies to the second strncmp, shouldn't it
>> be (len-1)?
>
> Scratch this first comment all together. I misread and thought the
> strlen was calculated differently against s and not flag_status.name
> at first. Sorry about that!
> Lois
>
>>
>> - Minor coding style, if the first part of an if statement
>> logically does a "strncmp" and then a "strlen" it would be nice if
>> follow on conditions in that if statement did the same for
>> consistency. Please consider reversing the second "strlen" and
>> "strncmp". I find it a little bit more readable that way.
>>
>> test/runtime/CommandLine/ObsoleteFlagErrorMessage.java
>>
>> - looks good, please update copyright before pushing.
>>
>> Thanks,
>> Lois
>>
>> On 11/7/2014 2:13 PM, Max Ockner wrote:
>>> ID: 8060449
>>> webrev: http://cr.openjdk.java.net/~coleenp/8060449/
>>>
>>> Summary: A "newly obsolete" command line option is one which is no
>>> longer supported, but still is acknowledged. There is a list of
>>> these in arguments.cpp.
>>> It used to be that only a fixed number of characters were checked
>>> when comparing a given command line option to the list of obsolete
>>> flags (strncmp was used, where the number of characters to check is
>>> equal to the length of the flag name from the table.)
>>> As a result, an arbitrary string appended to the end of an obsolete
>>> argument goes unnoticed.
>>> This issue is fixed by comparing the lengths of the given flag and
>>> the flags from the obsolete flags table.
>>> When a misspelled flag is fuzzy-matched to an obsolete flag, an
>>> appropriate warning is given to save the user a few key strokes: (1)
>>> unrecognized option [bad option]. (2) Did you mean [option]? (3)
>>> [option] is obsolete as of [version])
>>>
>>> A new test for this feature checks for the presence of all three
>>> components of the above error message.
>>>
>>> Tested with: vm.quick.testlist
>>> hotspot jtreg tests
>>> jprt
>>>
>>> Thanks for your help!
>>> Max Ockner
>>
>
More information about the hotspot-dev
mailing list