This is an automated email from the ASF dual-hosted git repository.

elharo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-shared-utils.git


The following commit(s) were added to refs/heads/master by this push:
     new e2ebb66  StringUtils leftPad/rightPad: handle empty delimiter without 
ArithmeticException (#409)
e2ebb66 is described below

commit e2ebb66198e4c0151147e6ab9f62ae07039f34f2
Author: Elliotte Rusty Harold <[email protected]>
AuthorDate: Wed Jul 1 19:21:24 2026 +0000

    StringUtils leftPad/rightPad: handle empty delimiter without 
ArithmeticException (#409)
    
    * StringUtils leftPad/rightPad: handle empty delimiter without 
ArithmeticException
    
    * remove @throws ArithmeticException from leftPad/rightPad javadoc
---
 src/main/java/org/apache/maven/shared/utils/StringUtils.java   |  8 ++++++--
 .../java/org/apache/maven/shared/utils/StringUtilsTest.java    | 10 ++++++++++
 2 files changed, 16 insertions(+), 2 deletions(-)

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 3e73f04..01533f1 100644
--- a/src/main/java/org/apache/maven/shared/utils/StringUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/StringUtils.java
@@ -1111,11 +1111,13 @@ public class StringUtils {
      * @param size  size to pad to
      * @param delim string to pad with
      * @return right padded String
-     * @throws ArithmeticException  if delim is the empty String
      * @throws NullPointerException if str or delim is <code>null</code>
      */
     @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);
@@ -1145,11 +1147,13 @@ public class StringUtils {
      * @param size  size to pad to
      * @param delim string to pad with
      * @return left padded String
-     * @throws ArithmeticException  if delim is the empty string
      * @throws NullPointerException if str or delim is null
      */
     @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 7c95279..68e6a54 100644
--- a/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java
+++ b/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java
@@ -859,6 +859,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() {
@@ -1273,6 +1278,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