StringUtils.chompLast: fix StringIndexOutOfBoundsException when sep longer than str
diff --git a/src/main/java/org/apache/maven/shared/utils/StringUtils.java b/src/main/java/org/apache/maven/shared/utils/StringUtils.java index 36f874b..6027c63 100644 --- a/src/main/java/org/apache/maven/shared/utils/StringUtils.java +++ b/src/main/java/org/apache/maven/shared/utils/StringUtils.java
@@ -851,7 +851,7 @@ */ @NonNull public static String chompLast(@NonNull String str, @NonNull String sep) { - if (str.length() == 0) { + if (str.length() == 0 || sep.length() > str.length()) { return str; } String sub = str.substring(str.length() - sep.length());
diff --git a/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java b/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java index 506af23..086cfe6 100644 --- a/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java +++ b/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java
@@ -215,6 +215,11 @@ } @Test + public void testChompLastSepLongerThanStr() { + assertEquals("x", StringUtils.chompLast("x", "ab")); + } + + @Test public void testChopNPE() { assertThrows(NullPointerException.class, () -> StringUtils.chop(null)); }