You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/11/17 20:13:04 UTC

[commons-lang] branch master updated: LANG-1610: Fix StringUtils.unwrap throws StringIndexOutOfBoundsException (#636)

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new c6f5775  LANG-1610: Fix StringUtils.unwrap throws StringIndexOutOfBoundsException (#636)
c6f5775 is described below

commit c6f577555b2e789791fbf3c0aec9e59a2666b2e8
Author: Tony Liang <31...@users.noreply.github.com>
AuthorDate: Tue Nov 17 12:11:19 2020 -0800

    LANG-1610: Fix StringUtils.unwrap throws StringIndexOutOfBoundsException (#636)
    
    Co-authored-by: Tony Liang <sh...@zillowgroup.com>
---
 src/main/java/org/apache/commons/lang3/StringUtils.java     | 2 +-
 src/test/java/org/apache/commons/lang3/StringUtilsTest.java | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/commons/lang3/StringUtils.java b/src/main/java/org/apache/commons/lang3/StringUtils.java
index 588bf0b..c3e1a21 100644
--- a/src/main/java/org/apache/commons/lang3/StringUtils.java
+++ b/src/main/java/org/apache/commons/lang3/StringUtils.java
@@ -9342,7 +9342,7 @@ public class StringUtils {
      * @since 3.6
      */
     public static String unwrap(final String str, final String wrapToken) {
-        if (isEmpty(str) || isEmpty(wrapToken) || str.length() == 1) {
+        if (isEmpty(str) || isEmpty(wrapToken) || str.length() < 2 * wrapToken.length()) {
             return str;
         }
 
diff --git a/src/test/java/org/apache/commons/lang3/StringUtilsTest.java b/src/test/java/org/apache/commons/lang3/StringUtilsTest.java
index 99ebed7..0ecf3f0 100644
--- a/src/test/java/org/apache/commons/lang3/StringUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/StringUtilsTest.java
@@ -3174,6 +3174,7 @@ public class StringUtilsTest {
         assertEquals("abc", StringUtils.unwrap("abc", null));
         assertEquals("abc", StringUtils.unwrap("abc", ""));
         assertEquals("a", StringUtils.unwrap("a", "a"));
+        assertEquals("ababa", StringUtils.unwrap("ababa", "aba"));
         assertEquals("", StringUtils.unwrap("aa", "a"));
         assertEquals("abc", StringUtils.unwrap("\'abc\'", "\'"));
         assertEquals("abc", StringUtils.unwrap("\"abc\"", "\""));