bayard 2002/11/22 16:54:24
Modified: lang/src/java/org/apache/commons/lang StringUtils.java
Log:
Added the second fix from Mark McDowell [[EMAIL PROTECTED]] for bug #14062
Revision Changes Path
1.26 +8 -9
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.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- StringUtils.java 16 Nov 2002 10:41:03 -0000 1.25
+++ StringUtils.java 23 Nov 2002 00:54:24 -0000 1.26
@@ -487,22 +487,21 @@
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++;
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>