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

commit 9756d0a84c7b285d734159d5915c0f0b11d7652f
Author: Gary Gregory <[email protected]>
AuthorDate: Wed Sep 9 02:44:03 2026 -0400

    Fraction.add and subtract return the reduced form when an operand is
    zero (#1787).
    
    - Test both operands being unreduced zeros
---
 src/changes/changes.xml                                       | 1 +
 src/test/java/org/apache/commons/lang3/math/FractionTest.java | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9962cce99..a6770692a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -282,6 +282,7 @@ java.lang.NullPointerException: Cannot invoke
     <action                   type="fix" dev="ggregory" due-to="Gary 
Gregory">FastDateFormat static caches grow without bound per distinct 
pattern/zone/locale, untrusted patterns pin several KB each, forever 
(f033).</action>
     <action                   type="fix" dev="ggregory" due-to="Jeff Lenamon, 
Gary Gregory">Fix Fraction.add and subtract for operands not in lowest terms 
(#1784).</action>
     <action                   type="fix" dev="ggregory" due-to="Jeff Lenamon, 
Gary Gregory">Fix MethodUtils.invokeMethod on instances of non-public classes 
(#1783).</action>
+    <action                   type="fix" dev="ggregory" due-to="Jeff Lenamon, 
Gary Gregory">Fraction.add and subtract return the reduced form when an operand 
is zero (#1787).</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/test/java/org/apache/commons/lang3/math/FractionTest.java 
b/src/test/java/org/apache/commons/lang3/math/FractionTest.java
index a3d4c9ed2..6060a926b 100644
--- a/src/test/java/org/apache/commons/lang3/math/FractionTest.java
+++ b/src/test/java/org/apache/commons/lang3/math/FractionTest.java
@@ -144,6 +144,10 @@ void testAddSubtractZeroOperand() {
 
         // Integer.MIN_VALUE/1 is in lowest terms and still cannot be negated.
         assertThrows(ArithmeticException.class, () -> 
Fraction.ZERO.subtract(Fraction.getFraction(Integer.MIN_VALUE, 1)));
+
+        // both operands being unreduced zeros
+        assertEquals(Fraction.ZERO, Fraction.getFraction(0, 
2).add(Fraction.getFraction(0, 3)));
+        assertEquals(Fraction.ZERO, Fraction.getFraction(0, 
2).subtract(Fraction.getFraction(0, 3)));
     }
 
     @Test

Reply via email to