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