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 7f8b51413 Fix CharRange.contains(CharRange) for negated argument
ranges (#1775).
7f8b51413 is described below
commit 7f8b51413a8cc2dfadaba137144815932e7b243f
Author: Gary Gregory <[email protected]>
AuthorDate: Sun Aug 16 22:09:38 2026 -0400
Fix CharRange.contains(CharRange) for negated argument ranges (#1775).
Reuse Character.MIN_VALUE.
---
src/changes/changes.xml | 1 +
src/main/java/org/apache/commons/lang3/CharRange.java | 11 +++++------
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4a0ef1548..7143d6d8e 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -245,6 +245,7 @@ java.lang.NullPointerException: Cannot invoke
<action type="fix" dev="ggregory" due-to="alhuda, Gary
Gregory">Keep StringUtils stripStart and stripEnd off surrogate pair boundaries
(#1773).</action>
<action type="fix" dev="ggregory"
due-to="codeAnqiang-ma, Gary Gregory">Fix the month/day example in
DurationFormatUtils.formatPeriod Javadoc (#1772).</action>
<action type="fix" dev="ggregory" due-to="gaurav kumar
pandey, Gary Gregory">Fix typos in Javadoc and example comments
(#1774).</action>
+ <action type="fix" dev="ggregory" due-to="alhuda, Gary
Gregory">Fix CharRange.contains(CharRange) for negated argument ranges
(#1775).</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>
diff --git a/src/main/java/org/apache/commons/lang3/CharRange.java
b/src/main/java/org/apache/commons/lang3/CharRange.java
index b76276631..1ea3c4a11 100644
--- a/src/main/java/org/apache/commons/lang3/CharRange.java
+++ b/src/main/java/org/apache/commons/lang3/CharRange.java
@@ -58,9 +58,8 @@ private static final class CharacterIterator implements
Iterator<Character> {
private CharacterIterator(final CharRange r) {
range = r;
hasNext = true;
-
if (range.negated) {
- if (range.start == 0) {
+ if (range.start == Character.MIN_VALUE) {
if (range.end == Character.MAX_VALUE) {
// This range is an empty set
hasNext = false;
@@ -68,7 +67,7 @@ private CharacterIterator(final CharRange r) {
current = (char) (range.end + 1);
}
} else {
- current = 0;
+ current = Character.MIN_VALUE;
}
} else {
current = range.start;
@@ -270,7 +269,7 @@ public boolean contains(final CharRange range) {
}
if (range.negated) {
// range denotes [0, range.start - 1] union [range.end + 1,
Character.MAX_VALUE]
- final boolean lowEmpty = range.start == 0;
+ final boolean lowEmpty = range.start == Character.MIN_VALUE;
final boolean highEmpty = range.end == Character.MAX_VALUE;
if (lowEmpty && highEmpty) {
return true; // range denotes the empty set
@@ -279,9 +278,9 @@ public boolean contains(final CharRange range) {
return end == Character.MAX_VALUE && start <= range.end + 1;
}
if (highEmpty) {
- return start == 0 && end + 1 >= range.start;
+ return start == Character.MIN_VALUE && end + 1 >= range.start;
}
- return start == 0 && end == Character.MAX_VALUE;
+ return start == Character.MIN_VALUE && end == Character.MAX_VALUE;
}
return start <= range.start && end >= range.end;
}