[Pki-devel] [PATCH] Fix NumberFormatException for tps-cert-find when given non integer value to size and start option

Endi Sukma Dewata edewata at redhat.com
Fri Aug 5 06:55:14 UTC 2016


Thanks!

It's pushed to master with slight modification for consistency.

-- 
Endi S. Dewata

On 7/28/2016 2:14 AM, Geetika Kapoor wrote:
> Hi Endi,
>
> I am attaching java code file as well with this patch that i have used
> for same testing on rhel7.I thought it will be helpful.I did a quick
> test similar ones and nothing looks like  breaking with new piece of code.
>
> On 07/28/2016 12:21 AM, Endi Sukma Dewata wrote:
>> Geetika,
>>
>> Yes, more info would be helpful. I have some comments below.
>>
>> On 7/27/2016 7:37 AM, Geetika Kapoor wrote:
>>> Hi,
>>>
>>> I tried to fix NumberFormatException when i did tps-cert-find with
>>> non-integer/invalid range value for size and start.I was doing testing
>>> for tps-cert and then i came across this.I thought giving some
>>> additional info to users inplace of numberformat.I have done similar
>>> fix  on rhel7  compile it and make a jar and test on rhel7 .I can share
>>> that patch if needed. Below are the test result.
>>>
>>> Before fix testing:
>>>
>>> 1. pki -h pki1.example.com -p 25080 tps-cert-find --start "gy"
>>> NumberFormatException: For input string: "gy"
>>>
>>> 2. pki -h pki1.example.com -p 25080 tps-cert-find --size "gy"
>>> NumberFormatException: For input string: "gy"
>>>
>>> 3. pki -p 25080 tps-cert-find --start
>>> 1789999999999999999999999999999999999999999999
>>> NumberFormatException: For input string:
>>> "1789999999999999999999999999999999999999999999"
>>>
>>>
>>> After fix testing:
>>>
>>> 1. [root at pki1 ~]# pki -d /opt/rhqa_pki/certdb -c Secret123 -h
>>> pki1.example.com -p 25080 tps-cert-find --start "gy"
>>> Error: Enter valid integer value for size/start option
>>> usage: tps-cert-find [FILTER] [OPTIONS...]
>>>     --help            Show help options
>>>     --size <size>     Page size
>>>     --start <start>   Page start
>>>     --token <ID>      Token ID
>>
>> I think it would be useful to show the user which the parameter has
>> the invalid value and also the invalid value itself, so something like
>> this:
>>
>> Error: Invalid value for --start parameter: gy
>
> Fixed : Now it is showing
>
> [root at pki1 ~]# pki -d /opt/rhqa_pki/certdb -c Secret123 -h
> pki1.example.com -p 25080 tps-cert-find --size tyu
> Error: Invalid value for --size parameter:tyu
> [root at pki1 ~]# pki -d /opt/rhqa_pki/certdb -c Secret123 -h
> pki1.example.com -p 25080 tps-cert-find --start  tyu
> Error: Invalid value for --start parameter:tyu
>
>>
>>> 2. [root at pki1 ~]# pki -d /opt/rhqa_pki/certdb -c Secret123 -h
>>> pki1.example.com -p 25080 tps-cert-find --size "hy"
>>> Error: Enter valid integer value for size/start option
>>> usage: tps-cert-find [FILTER] [OPTIONS...]
>>>     --help            Show help options
>>>     --size <size>     Page size
>>>     --start <start>   Page start
>>>     --token <ID>      Token ID
>>
>> Same thing here:
>>
>> Error: Invalid value for --size parameter: hy
>>
>> So you may need to create separate try-catch blocks for each parameter.
>>
>> Another thing, I'm not sure if we should display the command usage
>> after the failure. The usage could be very long and it may obscure the
>> error message. The error message itself should be sufficient to fix
>> the problem, and if needed the user can see the usage using --help
>> parameter. We probably can display something like this after the error
>> message (replace <command> with the actual command name):
>
> Removed the printhelp() each time because command typed is correct only
> values are invalid so that message we have displayed
>>
>> Try 'pki <command> --help' for more information.
>>
>> One more thing, please preserve the formatting of the existing code.
>> We use 4 spaces instead of tabs for indentation. Thanks.
> I have removed tabs.
>





More information about the Pki-devel mailing list