8069325: Pattern.splitAsStream does not return input if it is empty and there is no match

Paul Sandoz paul.sandoz at oracle.com
Tue Jan 20 16:17:47 UTC 2015


Hi,

http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8069325-Pattern-splitAsStream-emptyInput/webrev/

This patch fixes an edge case in Pattern.splitAsStream for matching against an empty input string, which deviated from the behaviour of Pattern.split. When there are no matches a stream containing the input string should be returned rather than an empty stream.

--

I have kept compatibility with Pattern.split(String ) but i noticed another an edge case.

What should the following return:

  Pattern.compile("").split("")

[] or [""]?

There is a zero-width match at the beginning and an empty remaining segment both of which should be discarded, as such i would expect the result to be [] rather than as [""], as currently produced result.

If people agree that this is an issue i suggest we log a new one independent of fixing 8069325.

Thanks,
Paul.



More information about the core-libs-dev mailing list