bayard      2002/11/22 17:06:56

  Modified:    lang/src/test/org/apache/commons/lang Tag: LANG_1_0_BRANCH
                        StringUtilsTest.java
               lang/src/java/org/apache/commons/lang Tag: LANG_1_0_BRANCH
                        StringUtils.java
  Log:
  Put in a Unit Test to check for bug #14062 and the fix.
  The fix is courtesy of Mark McDowell [[EMAIL PROTECTED]]
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.5.2.1   +7 -1      
jakarta-commons/lang/src/test/org/apache/commons/lang/StringUtilsTest.java
  
  Index: StringUtilsTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/StringUtilsTest.java,v
  retrieving revision 1.5
  retrieving revision 1.5.2.1
  diff -u -r1.5 -r1.5.2.1
  --- StringUtilsTest.java      19 Sep 2002 07:02:30 -0000      1.5
  +++ StringUtilsTest.java      23 Nov 2002 01:06:56 -0000      1.5.2.1
  @@ -183,6 +183,12 @@
               assertEquals("split(Object[], String, int) failed", expected[i],
                            result[i]);
           }
  +
  +        result = StringUtils.split("one two three four five six", null, 3);
  +        assertEquals("split(Object[], null, int)[0] failed", "one", result[0]);
  +        assertEquals("split(Object[], null, int)[1] failed", "two", result[1]);
  +        assertEquals("split(Object[], null, int)[2] failed", "three four five six", 
result[2]); 
  +
       }
   
       public void testReplaceFunctions()
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.18.2.1  +9 -10     
jakarta-commons/lang/src/java/org/apache/commons/lang/StringUtils.java
  
  Index: StringUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/StringUtils.java,v
  retrieving revision 1.18
  retrieving revision 1.18.2.1
  diff -u -r1.18 -r1.18.2.1
  --- StringUtils.java  30 Sep 2002 00:50:10 -0000      1.18
  +++ StringUtils.java  23 Nov 2002 01:06:56 -0000      1.18.2.1
  @@ -459,25 +459,24 @@
   
           String[] list = new String[listSize];
           int i = 0;
  +       int lastTokenBegin = 0;
  +        int lastTokenEnd = 0;
           while (tok.hasMoreTokens()) {
               if (max > 0 && i == listSize - 1) {
                   // In the situation where we hit the max yet have
                   // tokens left over in our input, the last list
                   // element gets all remaining text.
  -                StringBuffer buf = new StringBuffer((int) 1.2 * str.length() * 
(listSize - i) / listSize);
  -                while (tok.hasMoreTokens()) {
  -                    buf.append(tok.nextToken());
  -                    if (tok.hasMoreTokens()) {
  -                        buf.append(separator);
  -                    }
  -                }
  -                list[i] = buf.toString();
  +                String endToken = tok.nextToken();
  +                lastTokenBegin = str.indexOf(endToken, lastTokenEnd);
  +                list[i] = str.substring(lastTokenBegin);
                   break;
               } else {
                   list[i] = tok.nextToken();
  +                lastTokenBegin = str.indexOf(list[i], lastTokenEnd);
  +                lastTokenEnd = lastTokenBegin + list[i].length();
               }
               i++;
  -        }
  +        }  
           return list;
       }
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to