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\"", "\""));