From b653e4ec15d8c163d3142e5fdb12a65d5b8ceac6 Mon Sep 17 00:00:00 2001 From: yelimkoo Date: Sat, 10 Jan 2026 12:17:35 +0900 Subject: [PATCH 1/3] [LANG-1810] Deprecate SOFT_MAX_ARRAY_LENGTH in favor of MAX_ARRAY_LENGTH --- src/main/java/org/apache/commons/lang3/ArrayUtils.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/org/apache/commons/lang3/ArrayUtils.java b/src/main/java/org/apache/commons/lang3/ArrayUtils.java index 4369d4f7e03..1d2886ce6e9 100644 --- a/src/main/java/org/apache/commons/lang3/ArrayUtils.java +++ b/src/main/java/org/apache/commons/lang3/ArrayUtils.java @@ -194,9 +194,18 @@ public class ArrayUtils { * The {@code SOFT_MAX_ARRAY_LENGTH} constant from Java's internal ArraySupport class. * * @since 3.19.0 + * @deprecated Use {@link #MAX_ARRAY_LENGTH}. */ + @Deprecated public static int SOFT_MAX_ARRAY_LENGTH = Integer.MAX_VALUE - 8; + /** + * The {@code MAX_ARRAY_LENGTH} constant from Java's internal ArraySupport class. + * + * @since 3.21.0 + */ + public static final int MAX_ARRAY_LENGTH = Integer.MAX_VALUE - 8; + /** * Copies the given array and adds the given element at the end of the new array. *

From 6f115f95060be48a519ed5e42770dd67c86494f1 Mon Sep 17 00:00:00 2001 From: yelimkoo Date: Sat, 10 Jan 2026 12:19:00 +0900 Subject: [PATCH 2/3] [LANG-1810] Add test coverage for MAX_ARRAY_LENGTH --- src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java index cb3a38eeaeb..ba080ff4097 100644 --- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java @@ -6958,4 +6958,9 @@ void testToStringDefault() { assertEquals("{}", ArrayUtils.toString(new String[]{null}, "")); assertEquals("{pink,blue}", ArrayUtils.toString(new String[]{"pink", "blue"}, "")); } + + @Test + void testMaxArrayLength() { + assertEquals(Integer.MAX_VALUE - 8, ArrayUtils.MAX_ARRAY_LENGTH); + } } From 837280d2f5104dabbf788896d5650ddfcb050f3f Mon Sep 17 00:00:00 2001 From: yelimkoo Date: Sun, 11 Jan 2026 07:17:55 +0900 Subject: [PATCH 3/3] [LANG-1810] Rename new constant to SAFE_MAX_ARRAY_LENGTH and update Javadoc --- src/main/java/org/apache/commons/lang3/ArrayUtils.java | 4 ++-- src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/commons/lang3/ArrayUtils.java b/src/main/java/org/apache/commons/lang3/ArrayUtils.java index 1d2886ce6e9..c63bd365bf9 100644 --- a/src/main/java/org/apache/commons/lang3/ArrayUtils.java +++ b/src/main/java/org/apache/commons/lang3/ArrayUtils.java @@ -194,7 +194,7 @@ public class ArrayUtils { * The {@code SOFT_MAX_ARRAY_LENGTH} constant from Java's internal ArraySupport class. * * @since 3.19.0 - * @deprecated Use {@link #MAX_ARRAY_LENGTH}. + * @deprecated This variable will be final in 4.0; to guarantee immutability now, use {@link #SAFE_MAX_ARRAY_LENGTH}. */ @Deprecated public static int SOFT_MAX_ARRAY_LENGTH = Integer.MAX_VALUE - 8; @@ -204,7 +204,7 @@ public class ArrayUtils { * * @since 3.21.0 */ - public static final int MAX_ARRAY_LENGTH = Integer.MAX_VALUE - 8; + public static final int SAFE_MAX_ARRAY_LENGTH = Integer.MAX_VALUE - 8; /** * Copies the given array and adds the given element at the end of the new array. diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java index ba080ff4097..a6ff321b9c5 100644 --- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java @@ -6961,6 +6961,6 @@ void testToStringDefault() { @Test void testMaxArrayLength() { - assertEquals(Integer.MAX_VALUE - 8, ArrayUtils.MAX_ARRAY_LENGTH); + assertEquals(Integer.MAX_VALUE - 8, ArrayUtils.SAFE_MAX_ARRAY_LENGTH); } }