commons-issues mailing list archives

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


Henri Yandell updated CLI-162:

    Attachment: CLI-162-take2.patch

Attaching patch that rolls back the previous RuntimeException throwing. The if statement in
that patch was testing the wrong condition. This patch adds the correct condition, and rather
than throwing an exception the text is simply outputted irregardless of the fact it is over
the width. What should happen is debatable here - due to a side-effect of CLI-151, we can't
do anything aggressive here because things were printing out happily if they were under width
+ printTabStop. Our options are either to just print, or to forcibly break the text. 

The test code no longer expects to get a RuntimeException.

> infinite loop in the wrapping code of HelpFormatter
> ---------------------------------------------------
>                 Key: CLI-162
>                 URL:
>             Project: Commons CLI
>          Issue Type: Bug
>          Components: Help formatter
>    Affects Versions: 1.1
>            Reporter: Emmanuel Bourg
>             Fix For: 1.2
>         Attachments: CLI-162-take2.patch
> 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.

View raw message