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

commit c140fc8154e8c680aad63239eaaaac14d85d5683
Author: Gary D. Gregory <[email protected]>
AuthorDate: Wed Oct 8 17:52:04 2025 -0400

    Add MutablePair.ofNonNull(Map.Entry)
    
    A variation of PR #1461
---
 src/changes/changes.xml                                    |  1 +
 .../java/org/apache/commons/lang3/tuple/MutablePair.java   | 14 ++++++++++++++
 .../org/apache/commons/lang3/tuple/MutablePairTest.java    |  9 +++++++++
 3 files changed, 24 insertions(+)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c58a798b5..33c80507b 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -55,6 +55,7 @@ The <action> type attribute can be add,update,fix,remove.
     <action                   type="add" dev="ggregory" due-to="Gary 
Gregory">Add SystemProperties.getPath(String, Supplier&lt;Path&gt;).</action>
     <action                   type="add" dev="ggregory" due-to="Gary 
Gregory">Add JavaVersion.JAVA_25.</action>
     <action                   type="add" dev="ggregory" due-to="Gary 
Gregory">Add SystemUtils.IS_JAVA_25.</action>
+    <action                   type="add" dev="ggregory" due-to="jack5505, Gary 
Gregory">Add MutablePair.ofNonNull(Map.Entry).</action>
     <!-- UPDATE -->
     <action                   type="update" dev="ggregory" due-to="Gary 
Gregory">Bump org.apache.commons:commons-parent from 88 to 89.</action>
   </release>
diff --git a/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java 
b/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java
index 1940c7a85..71c022346 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java
@@ -114,6 +114,20 @@ public static <L, R> MutablePair<L, R> ofNonNull(final L 
left, final R right) {
         return of(Objects.requireNonNull(left, "left"), 
Objects.requireNonNull(right, "right"));
     }
 
+    /**
+     * Creates a mutable pair from a map entry.
+     *
+     * @param <L> the left element type
+     * @param <R> the right element type
+     * @param pair the existing map entry.
+     * @return a mutable pair formed from the map entry
+     * @throws NullPointerException if the pair is null.
+     * @since 3.20
+     */
+    public static <L, R> MutablePair<L, R> ofNonNull(final Map.Entry<L, R> 
pair) {
+        return of(Objects.requireNonNull(pair, "pair"));
+    }
+
     /** Left object. */
     public L left;
 
diff --git a/src/test/java/org/apache/commons/lang3/tuple/MutablePairTest.java 
b/src/test/java/org/apache/commons/lang3/tuple/MutablePairTest.java
index 84157dce7..b45df091f 100644
--- a/src/test/java/org/apache/commons/lang3/tuple/MutablePairTest.java
+++ b/src/test/java/org/apache/commons/lang3/tuple/MutablePairTest.java
@@ -114,6 +114,15 @@ void testOfNonNull() {
         assertEquals("y", pair.right);
     }
 
+    @Test
+    void testOfNonNullMapEntry() {
+        assertNullPointerException(() -> MutablePair.ofNonNull(null));
+        final Pair<Integer, String> pair = Pair.of(0, "foo");
+        final MutablePair<Integer, String> mutablePair = 
MutablePair.ofNonNull(pair);
+        assertEquals(pair.getLeft(), mutablePair.getLeft());
+        assertEquals(pair.getRight(), mutablePair.getRight());
+    }
+
     @Test
     void testPairOfMapEntry() {
         assertNull(MutablePair.of(null).getLeft());

Reply via email to