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 73b979e  StringUtils.chopNewline(''): prevent 
StringIndexOutOfBoundsException (#380)
73b979e is described below

commit 73b979e2660b38b5c7ee3141ce6d9440b70bf08d
Author: Elliotte Rusty Harold <[email protected]>
AuthorDate: Wed Jul 1 13:56:08 2026 +0000

    StringUtils.chopNewline(''): prevent StringIndexOutOfBoundsException (#380)
---
 src/main/java/org/apache/maven/shared/utils/StringUtils.java     | 3 +++
 src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java | 5 +++++
 2 files changed, 8 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..3e73f04 100644
--- a/src/main/java/org/apache/maven/shared/utils/StringUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/StringUtils.java
@@ -963,6 +963,9 @@ public class StringUtils {
      */
     @NonNull
     public static String chopNewline(@NonNull String str) {
+        if (str.isEmpty()) {
+            return "";
+        }
         int lastIdx = str.length() - 1;
         char last = str.charAt(lastIdx);
         if (last == '\n') {
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..7c95279 100644
--- a/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java
+++ b/src/test/java/org/apache/maven/shared/utils/StringUtilsTest.java
@@ -250,6 +250,11 @@ public class StringUtilsTest {
         assertEquals("dings\n\r", StringUtils.chopNewline("dings\n\r"));
     }
 
+    @Test
+    public void testChopNewlineEmptyString() {
+        assertEquals("", StringUtils.chopNewline(""));
+    }
+
     @Test
     public void testClean() {
         assertEquals("", StringUtils.clean(null));

Reply via email to