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));

Reply via email to