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 36f874b2..6027c63c 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 @@ public static String chompLast(@NonNull String str) { */ @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 506af23a..086cfe6d 100644 --- a/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java +++ b/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java @@ -214,6 +214,11 @@ public void testChompLastDelim() { assertEquals("dings+bums+dongs", StringUtils.chompLast("dings+bums+dongs+", "+")); } + @Test + public void testChompLastSepLongerThanStr() { + assertEquals("x", StringUtils.chompLast("x", "ab")); + } + @Test public void testChopNPE() { assertThrows(NullPointerException.class, () -> StringUtils.chop(null));