commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henri Yandell (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CLI-162) infinite loop in the wrapping code of HelpFormatter
Date Wed, 18 Feb 2009 05:39:01 GMT

    [ https://issues.apache.org/jira/browse/CLI-162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12674469#action_12674469
] 

Henri Yandell commented on CLI-162:
-----------------------------------


Two of the options appear to be problematic in CLI162.

The first is OPT_PASSWORD. In this the url is longer than the allowed width of the screen,
so some kind of failure needs to happen - or the url needs to be mercilessly chopped. This
is the one that goes into an infinite loop due to CLI-151. My gut feeling from the code is
that CLI-151 didn't introduce this bug, but you had to be significantly longer to hit the
bug before (ie: printTabStop longer than the width).

The second is OPT_PARAM_TYPES_INT + OPT_PARAM_TYPES_NAME, it shows the the patch for this
ticket contained a bug when the lastPos happened to equal the firstPos for completely normal
reasons. I'd missed that pos was already set to a real value when the loop was begun and not
to 0. I'm not sure why both options have to be set for this to happen. 

> infinite loop in the wrapping code of HelpFormatter
> ---------------------------------------------------
>
>                 Key: CLI-162
>                 URL: https://issues.apache.org/jira/browse/CLI-162
>             Project: Commons CLI
>          Issue Type: Bug
>          Components: Help formatter
>    Affects Versions: 1.1
>            Reporter: Emmanuel Bourg
>             Fix For: 1.2
>
>
> If there is not enough space to display a word on a single line, HelpFormatter goes into
a infinite loops until the JVM crashes with an OutOfMemoryError.
> Test case:
> {code}
> Options options = new Options();
> options.addOption("h", "help", false, "This is a looooong description");
> HelpFormatter formatter = new HelpFormatter();
> formatter.setWidth(20);
> formatter.printHelp("app", options); // hang & crash
> {code}
> An helpful exception indicating the insufficient width would be more appropriate than
an OutOfMemoryError.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message