On 14 January 2014 11:17, Benedikt Ritter <brit...@apache.org> wrote:
> 2014/1/13 Gary Gregory <garydgreg...@gmail.com>
>
>> On Mon, Jan 13, 2014 at 12:45 PM, sebb <seb...@gmail.com> wrote:
>>
>> > What does the Javadoc say?
>> >
>>
>> The Javadoc describes the current behavior, which is whacky IMO. This could
>> be a case where the docs documents the code, even though it does not make
>> sense.
>>
>> It sounds dangerous to change it in a minor release.
>>
>
> There are at least two issues:
>
> 1. StringUtils.spilt:
>
>   StringUtils.split(null,<ANY>) = [ ]
>   StringUtils.split("", <ANY>) = null
>
> 2. Inconsistency bewteen containsNone and containsOnly (what I said before):
>
>   StringUtils.containsOnly("", <ANY>) = StringUtils.containsNone("", <ANY>)
> = true
> All of this is documented in JavaDoc, which doesn't mean it is wrong.
>
> 1) is just inconvinient. Changing it should not affect client code, since
> it will look like this:
>
> String[] parts = StringUtils.split(str, "abc");
> if(party != null) {
>    // iterate over parts
> }
>
> Retruning an empty array will not affect this code.

Not that specific example, no. But it would certainly affect:

String[] parts = StringUtils.split(str, "abc");
if(party == null) {
   // do something else
}

I don't think this can be changed in a minor release.

Duncan

>
> 2) is a bug imho and needs to be fixed. The empty string at the same time
> contains anything and contains nothing (the latter is right). Bugs should
> be fixed in minor releases, even if the fix changes semantics of a method
> (from wrong to right). We can make this very clear in the release notes
> with an additional subscetion about this.
>
> Benedikt
>
>
>>
>> Gary
>>
>>
>>
>> >
>> > On 13 January 2014 17:00, Benedikt Ritter <brit...@apache.org> wrote:
>> > > ping, any thought on this?
>> > >
>> > >
>> > > 2014/1/11 Benedikt Ritter <brit...@apache.org>
>> > >
>> > >> Hi,
>> > >>
>> > >> while looking through the open issues for lang, I came across
>> LANG-823:
>> > >> StringUtils.split should handle empty strings the same as other
>> content
>> > >> [1]. The request makes sense to me - the empty string should be
>> handled
>> > >> like any other content.
>> > >>
>> > >> Then I looked into StringUtils to see how other methods handle the
>> empty
>> > >> string and there are more examples of specific handling of the empty
>> > >> string. For example the following will return true:
>> > >>
>> > >>    StringUtils.containsOnly("", "abc")
>> > >>
>> > >> and it gets even more weird, since
>> > >>
>> > >>    StringUtils.containsNone("", "abc")
>> > >>
>> > >> also returns true! How can the same string a the same time _only_
>> > contain
>> > >> "abc" and contain none of "abc"?
>> > >>
>> > >> I can not see any reason for this behavior. Why is the empty string
>> > >> different from any other string content? I'd like to change the
>> > behavior of
>> > >> the affected methods, but wanted to get some feedback first.
>> > >>
>> > >> Benedikt
>> > >>
>> > >> [1] https://issues.apache.org/jira/browse/LANG-823
>> > >>
>> > >>
>> > >> --
>> > >> http://people.apache.org/~britter/
>> > >> http://www.systemoutprintln.de/
>> > >> http://twitter.com/BenediktRitter
>> > >> http://github.com/britter
>> > >>
>> > >
>> > >
>> > >
>> > > --
>> > > http://people.apache.org/~britter/
>> > > http://www.systemoutprintln.de/
>> > > http://twitter.com/BenediktRitter
>> > > http://github.com/britter
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> > For additional commands, e-mail: dev-h...@commons.apache.org
>> >
>> >
>>
>>
>> --
>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>> Java Persistence with Hibernate, Second Edition<
>> http://www.manning.com/bauer3/>
>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> Spring Batch in Action <http://www.manning.com/templier/>
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>>
>
>
>
> --
> http://people.apache.org/~britter/
> http://www.systemoutprintln.de/
> http://twitter.com/BenediktRitter
> http://github.com/britter

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

Reply via email to