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

ggregory 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 514f6751a Avoid NPE in MutableObject#equals() for null content
514f6751a is described below

commit 514f6751ab29dbdc6b44995555474fbec88dcd97
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sun Jul 16 16:34:20 2023 -0400

    Avoid NPE in MutableObject#equals() for null content
---
 src/changes/changes.xml                                          | 1 +
 .../java/org/apache/commons/lang3/mutable/MutableObject.java     | 2 +-
 .../java/org/apache/commons/lang3/mutable/MutableObjectTest.java | 9 ++++++---
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index da3522029..92dff9198 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -124,6 +124,7 @@ The <action> type attribute can be add,update,fix,remove.
     <action                   type="fix" dev="ggregory" due-to="Gary 
Gregory">Deprecate ExceptionUtils.ExceptionUtils().</action>
     <action issue="LANG-1697" type="fix" dev="ggregory" due-to="Jan Arne 
Sparka, Gary Gregory">TypeUtils.getRawType() throws a NullPointerException on 
Wildcard GenericArrayType.</action>
     <action                   type="fix" dev="ggregory" due-to="Gary 
Gregory">Throw IllegalArgumentException instead of InternalError in the builder 
package.</action>    
+    <action                   type="fix" dev="ggregory" due-to="Gary 
Gregory">Avoid NPE in MutableObject#equals() for null content.</action>    
     <!-- ADD -->
     <action                   type="add" dev="ggregory" due-to="Gary 
Gregory">Add GitHub coverage.yml.</action>
     <action                   type="add" dev="ggregory" due-to="Gary 
Gregory">Add EnumUtils.getEnumSystemProperty(...).</action>
diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java 
b/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java
index 7c371f783..259d007b0 100644
--- a/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java
+++ b/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java
@@ -93,7 +93,7 @@ public class MutableObject<T> implements Mutable<T>, 
Serializable {
         }
         if (this.getClass() == obj.getClass()) {
             final MutableObject<?> that = (MutableObject<?>) obj;
-            return this.value.equals(that.value);
+            return Objects.equals(this.value, that.value);
         }
         return false;
     }
diff --git 
a/src/test/java/org/apache/commons/lang3/mutable/MutableObjectTest.java 
b/src/test/java/org/apache/commons/lang3/mutable/MutableObjectTest.java
index c02d9d97e..b893ffd91 100644
--- a/src/test/java/org/apache/commons/lang3/mutable/MutableObjectTest.java
+++ b/src/test/java/org/apache/commons/lang3/mutable/MutableObjectTest.java
@@ -47,7 +47,8 @@ public class MutableObjectTest extends AbstractLangTest {
         final MutableObject<String> mutNumA = new MutableObject<>("ALPHA");
         final MutableObject<String> mutNumB = new MutableObject<>("ALPHA");
         final MutableObject<String> mutNumC = new MutableObject<>("BETA");
-        final MutableObject<String> mutNumD = new MutableObject<>(null);
+        final MutableObject<String> mutNumNull1 = new MutableObject<>(null);
+        final MutableObject<String> mutNumNull2 = new MutableObject<>(null);
 
         assertEquals(mutNumA, mutNumA);
         assertEquals(mutNumA, mutNumB);
@@ -56,8 +57,10 @@ public class MutableObjectTest extends AbstractLangTest {
         assertNotEquals(mutNumA, mutNumC);
         assertNotEquals(mutNumB, mutNumC);
         assertEquals(mutNumC, mutNumC);
-        assertNotEquals(mutNumA, mutNumD);
-        assertEquals(mutNumD, mutNumD);
+        assertNotEquals(mutNumA, mutNumNull1);
+        assertEquals(mutNumNull1, mutNumNull1);
+        assertEquals(mutNumNull1, mutNumNull2);
+        assertEquals(mutNumNull2, mutNumNull1);
 
         assertNotEquals(null, mutNumA);
         assertNotEquals(mutNumA, new Object());

Reply via email to