[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

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



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 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 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 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 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.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]