[ 
https://issues.apache.org/jira/browse/LANG-823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17230802#comment-17230802
 ] 

Arturo Bernal edited comment on LANG-823 at 11/12/20, 5:13 PM:
---------------------------------------------------------------

Hi [~ggregory] [~britter]

 

I thing we can close these Issues. The behavior is correct. The method return a 
empty Array with no poss

 

 

 
{code:java}
if (len == 0) {
 return ArrayUtils.EMPTY_STRING_ARRAY;
 }
{code}
 

 

The test fail cos It is trying to recover the element in position 0. But this 
does not exist

 

 
{code:java}
assertTrue(StringUtils.split("",",")[0].equals(""));
{code}
 

java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0

 

 


was (Author: arturobernalg):
Hi [~ggregory]

 

I thing we can close these Issues. The behavior is correct. The method return a 
empty Array with no poss

 

 

 
{code:java}
if (len == 0) {
 return ArrayUtils.EMPTY_STRING_ARRAY;
 }
{code}
 

 

The test fail cos It is trying to recover the element in position 0. But this 
does not exist

 

 
{code:java}
assertTrue(StringUtils.split("",",")[0].equals(""));
{code}
 

java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0

 

 

> StringUtils.split should handle empty strings the same as other content
> -----------------------------------------------------------------------
>
>                 Key: LANG-823
>                 URL: https://issues.apache.org/jira/browse/LANG-823
>             Project: Commons Lang
>          Issue Type: Improvement
>          Components: lang.*
>    Affects Versions: 2.5
>            Reporter: Mark Farnsworth
>            Assignee: Benedikt Ritter
>            Priority: Minor
>             Fix For: Review Patch, Discussion, 3.x
>
>         Attachments: LANG-823.patch, LANG-823.test.patch
>
>
> When a user issues a split with a delimiter and the string does not contain 
> the delimiter the result is normally an array with one item that contains the 
> content of the string.
> It seems strange that StringUtils does not behave consistently in the context 
> of an empty string.
> For example,
> {code}
> package maf.test;
> import junit.framework.TestCase;
> import org.apache.commons.lang.StringUtils;
> public class StringUtilsTest extends TestCase {
>       public void testStringUtils() {
>               // The following two lines work correctly  
>               assertTrue(StringUtils.split("x",",")[0].equals("x"));
>               assertTrue(StringUtils.split(" ",",")[0].equals(" "));
>               
>               // The following should also work but 
>               // in commons-lang-2.5.jar the test fails here
>               assertTrue(StringUtils.split("",",")[0].equals("")); 
>       }
> }
> {code}
> There seems to be no logic behind making split work differently in the case 
> of empty strings.  
> For the next release, I would suggest a behavior change for StringUtils this 
> will have side effects but would be more logically consistent.  
> Users who depend on the old behavior could stick with 2.5 release and/or 
> implement code in the caller to simulate the behavior.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to