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