This is an automated email from the ASF dual-hosted git repository. elharo pushed a commit to branch fix/stringutils-pad-arithmeticexception in repository https://gitbox.apache.org/repos/asf/maven-shared-utils.git
commit 8615e1b16d0443691ee3f820fb9981e1d5bf4b83 Author: Elliotte Rusty Harold <[email protected]> AuthorDate: Wed Jul 1 10:07:10 2026 -0400 StringUtils leftPad/rightPad: handle empty delimiter without ArithmeticException --- src/main/java/org/apache/maven/shared/utils/StringUtils.java | 6 ++++++ .../java/org/apache/maven/shared/utils/StringUtilsTest.java | 10 ++++++++++ 2 files changed, 16 insertions(+) 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..8d21570 100644 --- a/src/main/java/org/apache/maven/shared/utils/StringUtils.java +++ b/src/main/java/org/apache/maven/shared/utils/StringUtils.java @@ -1113,6 +1113,9 @@ public class StringUtils { */ @NonNull public static String rightPad(@NonNull String str, int size, @NonNull String delim) { + if (delim.isEmpty()) { + return str; + } size = (size - str.length()) / delim.length(); if (size > 0) { str += repeat(delim, size); @@ -1147,6 +1150,9 @@ public class StringUtils { */ @NonNull public static String leftPad(@NonNull String str, int size, @NonNull String delim) { + if (delim.isEmpty()) { + return str; + } size = (size - str.length()) / delim.length(); if (size > 0) { str = repeat(delim, size) + str; 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..3eede05 100644 --- a/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java +++ b/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java @@ -854,6 +854,11 @@ public class StringUtilsTest { assertEquals("*****dings", StringUtils.leftPad("dings", 10, "*")); } + @Test + public void testLeftPadEmptyDelim() { + assertEquals("dings", StringUtils.leftPad("dings", 10, "")); + } + @SuppressWarnings("ConstantValue") @Test public void testLowerCase() { @@ -1268,6 +1273,11 @@ public class StringUtilsTest { assertEquals("dings+++++", StringUtils.rightPad("dings", 10, "+")); } + @Test + public void testRightPadEmptyDelim() { + assertEquals("dings", StringUtils.rightPad("dings", 10, "")); + } + @Test public void testSplit1NPE() { assertThrows(NullPointerException.class, () -> StringUtils.split(null));
