You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/07/16 20:34:25 UTC
[commons-lang] branch master updated: Avoid NPE in MutableObject#equals() for null content
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 <ga...@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());