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

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new 58ba515e4 commit 313d877d57abefdbb1ad0c42781bf719b83d5a35 Author: Gary 
Gregory <[email protected]> 2026-05-07 08:08:51 Committer: 
GitHub <[email protected]> 2026-05-07 08:08:51 Parent: 
e63927afd575ba22f41a1d5b23b2d85745e82d24 (Annotation lookup matches unrelated 
overloads via assignable-parameter resolution (#1637)) Branches: master, 
origin/HEAD, origin/master
58ba515e4 is described below

commit 58ba515e4b083f658ef2087df36284a9cd539b31
Author: Gary Gregory <[email protected]>
AuthorDate: Thu May 7 08:10:58 2026 -0400

    commit 313d877d57abefdbb1ad0c42781bf719b83d5a35
    Author: Gary Gregory <[email protected]> 2026-05-07
    08:08:51
    Committer: GitHub <[email protected]> 2026-05-07 08:08:51
    Parent: e63927afd575ba22f41a1d5b23b2d85745e82d24 (Annotation lookup
    matches unrelated overloads via assignable-parameter resolution (#1637))
    Branches: master, origin/HEAD, origin/master
    
    Two fixes in RandomStringUtils.random(int, int, int, boolean, boolean,
    (#1638)
    
    char[], Random)
    
    - A custom chars array throws IllegalArgumentException because
    validation loops treat the loop index as a char code point instead of an
    index into the chars array.
    - random() hangs when the specified [start, end) range contains ONLY
    rejected code points (UNASSIGNED, PRIVATE_USE, SURROGATE). The loop
    increments count and retries indefinitely.
---
 src/changes/changes.xml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d31e0e4aa..fc3de2a5b 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -141,6 +141,8 @@ java.lang.NullPointerException: Cannot invoke
     <action                   type="fix" dev="ggregory" due-to="Omkhar 
Arasaratnam, Gary Gregory">NumberUtils.createNumber(String): Float shortcut can 
bypass exact decimal parsing (#1635).</action>
     <action                   type="fix" dev="ggregory" due-to="Omkhar 
Arasaratnam, Gary Gregory">StringUtils.joins() for primitive types can throw 
OOME before index check (#1636).</action>
     <action                   type="fix" dev="ggregory" due-to="Omkhar 
Arasaratnam, Gary Gregory">Annotation lookup in 
MethodUtils.getAnnotation(Method, Class, boolean, boolean) matches unrelated 
overloads via assignable-parameter resolution (#1637).</action>
+    <action                   type="fix" dev="ggregory" due-to="Omkhar 
Arasaratnam, Gary Gregory">RandomStringUtils.random(...): A custom chars array 
throws IllegalArgumentException because validation loops treat the loop index 
as a char code point instead of an index into the chars array (#1638).</action>
+    <action                   type="fix" dev="ggregory" due-to="Omkhar 
Arasaratnam, Gary Gregory">RandomStringUtils.random(...): Can hang when the 
specified [start, end) range contains ONLY rejected code points (UNASSIGNED, 
PRIVATE_USE, SURROGATE). The loop increments count and retries indefinitely 
(#1638).</action>
     <!-- ADD -->
     <action                   type="add" dev="ggregory" due-to="Gary 
Gregory">Add JavaVersion.JAVA_27.</action>
     <action                   type="add" dev="ggregory" due-to="Gary 
Gregory">Add SystemUtils.IS_JAVA_27.</action>

Reply via email to