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

asf-gitbox-commits 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 60d4c9843 Add tests to ensure nulls compare correctly
60d4c9843 is described below

commit 60d4c9843891f07596d2caf52fb8689d80179344
Author: Sebb <[email protected]>
AuthorDate: Sun Jun 14 20:31:45 2026 +0100

    Add tests to ensure nulls compare correctly
---
 .../lang3/compare/ObjectToStringComparator.java    |  2 +-
 .../compare/ObjectToStringComparatorTest.java      | 24 ++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git 
a/src/main/java/org/apache/commons/lang3/compare/ObjectToStringComparator.java 
b/src/main/java/org/apache/commons/lang3/compare/ObjectToStringComparator.java
index 10bf81d0f..4eceaa39d 100644
--- 
a/src/main/java/org/apache/commons/lang3/compare/ObjectToStringComparator.java
+++ 
b/src/main/java/org/apache/commons/lang3/compare/ObjectToStringComparator.java
@@ -65,7 +65,7 @@ public int compare(final Object o1, final Object o2) {
         final String string1 = o1.toString();
         final String string2 = o2.toString();
         // No guarantee that toString() returns a non-null value, despite what 
Spotbugs thinks.
-        if (string1 == string2) {
+        if (string1 == string2) { // this is essential to ensure equality if 
both strings are null
             return 0;
         }
         if (string1 == null) {
diff --git 
a/src/test/java/org/apache/commons/lang3/compare/ObjectToStringComparatorTest.java
 
b/src/test/java/org/apache/commons/lang3/compare/ObjectToStringComparatorTest.java
index 537cf2cec..260890073 100644
--- 
a/src/test/java/org/apache/commons/lang3/compare/ObjectToStringComparatorTest.java
+++ 
b/src/test/java/org/apache/commons/lang3/compare/ObjectToStringComparatorTest.java
@@ -22,6 +22,7 @@
 import static org.junit.jupiter.api.Assertions.assertSame;
 
 import java.util.Arrays;
+import java.util.Comparator;
 import java.util.List;
 
 import org.apache.commons.lang3.AbstractLangTest;
@@ -46,6 +47,29 @@ public String toString() {
         }
     }
 
+    @Test
+    void testCompareNulls() {
+        final Comparator<Object> comp = ObjectToStringComparator.INSTANCE;
+        assertEquals(0, comp.compare(null, null));
+        final Object o1 = new Thing(null);
+        final Object o2 = new Thing(null);
+        assertEquals(0, comp.compare(o1, o1));
+        assertEquals(0, comp.compare(o1, o2));
+    }
+
+    @Test
+    void testCompareNullWithNonNull() {
+        final Comparator<Object> comp = ObjectToStringComparator.INSTANCE;
+        final Object o1 = new Thing(null);
+        final Object o2 = new Thing("");
+        assertEquals(0, comp.compare(o1, o1));
+        assertEquals(0, comp.compare(o2, o2));
+        assertEquals(1, comp.compare(o1, o2));
+        assertEquals(-1, comp.compare(o2, o1));
+        assertEquals(1, comp.compare(null, o2));
+        assertEquals(-1, comp.compare(o2, null));
+    }
+
     @Test
     void testNullLeft() {
         final Thing thing = new Thing("y");

Reply via email to