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); + } }