Repository: commons-lang
Updated Branches:
  refs/heads/master 8c1a0d2ee -> a08ec31db


Fixes LANG-1292: WordUtils.wrap throws StringIndexOutOfBoundsException

Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/a08ec31d
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/a08ec31d
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/a08ec31d

Branch: refs/heads/master
Commit: a08ec31dbf212a033953dc6916a743dccbb93e37
Parents: 8c1a0d2
Author: duncan <dun...@wortharead.com>
Authored: Thu Dec 1 19:28:28 2016 +0000
Committer: duncan <dun...@wortharead.com>
Committed: Thu Dec 1 19:28:28 2016 +0000

----------------------------------------------------------------------
 src/changes/changes.xml                                |  1 +
 .../java/org/apache/commons/lang3/text/WordUtils.java  |  2 +-
 .../org/apache/commons/lang3/text/WordUtilsTest.java   | 13 +++++++++----
 3 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/a08ec31d/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 834ec7f..994ad1b 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -46,6 +46,7 @@ The <action> type attribute can be add,update,fix,remove.
   <body>
 
   <release version="3.6" date="2016-MM-DD" description="TBD">
+    <action issue="LANG-1292" type="fix" dev="djones">WordUtils.wrap throws 
StringIndexOutOfBoundsException</action>
     <action issue="LANG-1287" type="fix" dev="pschumacher" due-to="Ivan 
Morozov">RandomStringUtils#random can enter infinite loop if end parameter is 
to small</action>
     <action issue="LANG-1285" type="fix" dev="pschumacher" due-to="Francesco 
Chicchiriccò">NullPointerException in FastDateParser$TimeZoneStrategy</action>
     <action issue="LANG-1281" type="fix" dev="pschumacher" due-to="Andreas 
Lundblad">Javadoc of StringUtils.ordinalIndexOf is contradictory.</action>

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/a08ec31d/src/main/java/org/apache/commons/lang3/text/WordUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/text/WordUtils.java 
b/src/main/java/org/apache/commons/lang3/text/WordUtils.java
index 3bc2297..43da4cd 100644
--- a/src/main/java/org/apache/commons/lang3/text/WordUtils.java
+++ b/src/main/java/org/apache/commons/lang3/text/WordUtils.java
@@ -291,7 +291,7 @@ public class WordUtils {
                     offset += matcher.end();
                     continue;
                 }else {
-                    spaceToWrapAt = matcher.start();
+                    spaceToWrapAt = matcher.start() + offset;
                 }
             }
 

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/a08ec31d/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
index 8275768..05d3b8a 100644
--- a/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
@@ -16,10 +16,7 @@
  */
 package org.apache.commons.lang3.text;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Modifier;
@@ -417,5 +414,13 @@ public class WordUtilsTest {
         final String expect = "tHIS sTRING CONTAINS A tITLEcASE CHARACTER: 
\u01C9";
         assertEquals(expect, WordUtils.swapCase(test));
     }
+    
+    @Test
+    public void testLANG1292() throws Exception {
+        // Prior to fix, this was throwing StringIndexOutOfBoundsException
+        WordUtils.wrap("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "
+                + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "
+                + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",70);
+    }
 
 }

Reply via email to