On Thu, Mar 12, 2009 at 4:12 PM, Jörg Schaible <joerg.schai...@gmx.de> wrote:
> Henri Yandell wrote:
>
>> One more try :)
>>
>> Stating that the Java version is 1.4 on the website will be done
>> post-release (I'm going to split the CLI and CLI2 websites).
>
> Actually I could not let go this failing test with IBM JDK running on Maven
> without any reason. And finally I found out the problem. Looking at the
> failing test, it was clear that something must have been left in the
> OptionBuilder from a previous test. Therefore I've added some code to
> OptionBuilder.create that printed out the last method on the stack that was
> not from OptionBuilder. I found out that the last test before the failing
> HelpFormatterTest.printOptionGroupUsage that made usage of the
> OptionBuilder was OptionBuilderTest.testCreateIncompleteOption. In this
> method an argument is added and then create fails throwing an IAE and the
> OptionBuilder.reset method is therefore not called. A lot of unit tests
> later the HelpFormatterTest.printOptionGroupUsage is the first test that
> makes usage of the OptionBuilder again ... and "inherits" that old
> argument. The problem appears only because the sequence of the tests are
> different for the IBM JDK 6 in Maven.
>
> The question is: What should a user expect from the OptionBuilder? If
> OptionBuilder.create() throws IAE (or he forgets to call create), the next
> usage of the builder will "inherit" the old settings. OTOH both situations
> are programming errors. This might be viewed as minor problem though, since
> the OptionBuilder is normally used in an early stage of the application
> flow only. At least something should be in the JavaDoc that this class is
> not thread safe and that create() must be called to reset the builder for
> the next usage.
>
> Therefore we may either ensure that a call to create will always reset the
> builder in case of an IAE (CLI-177) or we can simply fix the tests that use
> the builder by calling reset manually in the setUp (actually we must create
> a simple option, since reset is private). Shall I commit this?

I think fixing the tests and adding javadoc is best right now. We can
evaluate CLI-177 after that, but I don't want to hold up a release and
this is the kind of fix that would be nice to have sitting in trunk
for a while being picked up by people before baking it in.

Let me know when you've done that and I'll spin another RC out.

Many thanks,

Hen

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to