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());