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.

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

Reply via email to