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

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-collections.git


The following commit(s) were added to refs/heads/master by this push:
     new 536020675 Return false from AbstractLinkedList addAll for an empty 
collection (#726)
536020675 is described below

commit 5360206752d001b90da66848f44bb7e98870c47f
Author: Naveed Khan <[email protected]>
AuthorDate: Mon Aug 17 03:31:11 2026 +0000

    Return false from AbstractLinkedList addAll for an empty collection (#726)
---
 .../commons/collections4/list/AbstractLinkedList.java     |  3 +++
 .../collections4/list/AbstractLinkedListJava21.java       |  3 +++
 .../commons/collections4/list/AbstractListTest.java       | 15 +++++++++++++++
 3 files changed, 21 insertions(+)

diff --git 
a/src/main/java/org/apache/commons/collections4/list/AbstractLinkedList.java 
b/src/main/java/org/apache/commons/collections4/list/AbstractLinkedList.java
index e57cf9bdf..86a7b0b72 100644
--- a/src/main/java/org/apache/commons/collections4/list/AbstractLinkedList.java
+++ b/src/main/java/org/apache/commons/collections4/list/AbstractLinkedList.java
@@ -588,6 +588,9 @@ public abstract class AbstractLinkedList<E> implements 
List<E> {
     @Override
     public boolean addAll(final int index, final Collection<? extends E> coll) 
{
         final Node<E> node = getNode(index, true);
+        if (coll.isEmpty()) {
+            return false;
+        }
         for (final E e : coll) {
             addNodeBefore(node, e);
         }
diff --git 
a/src/main/java/org/apache/commons/collections4/list/AbstractLinkedListJava21.java
 
b/src/main/java/org/apache/commons/collections4/list/AbstractLinkedListJava21.java
index 6a3e43f17..79f422e0d 100644
--- 
a/src/main/java/org/apache/commons/collections4/list/AbstractLinkedListJava21.java
+++ 
b/src/main/java/org/apache/commons/collections4/list/AbstractLinkedListJava21.java
@@ -592,6 +592,9 @@ public abstract class AbstractLinkedListJava21<E> 
implements List<E> {
     @Override
     public boolean addAll(final int index, final Collection<? extends E> coll) 
{
         final Node<E> node = getNode(index, true);
+        if (coll.isEmpty()) {
+            return false;
+        }
         for (final E e : coll) {
             addNodeBefore(node, e);
         }
diff --git 
a/src/test/java/org/apache/commons/collections4/list/AbstractListTest.java 
b/src/test/java/org/apache/commons/collections4/list/AbstractListTest.java
index 9f2f56d2e..b2eb078c6 100644
--- a/src/test/java/org/apache/commons/collections4/list/AbstractListTest.java
+++ b/src/test/java/org/apache/commons/collections4/list/AbstractListTest.java
@@ -466,6 +466,21 @@ public abstract class AbstractListTest<E> extends 
AbstractCollectionTest<E> {
         assertEquals(size, list2.size(), "Both lists are same size");
     }
 
+    /**
+     * Tests that {@link List#addAll(Collection)} and {@link List#addAll(int, 
Collection)}
+     * return false and leave the list unchanged when the collection to add is 
empty.
+     */
+    @Test
+    void testListAddAllEmptyReturnsFalse() {
+        if (!isAddSupported()) {
+            return;
+        }
+        final List<E> list = makeObject();
+        assertFalse(list.addAll(Collections.<E>emptyList()), "addAll of an 
empty collection must return false");
+        assertFalse(list.addAll(0, Collections.<E>emptyList()), "addAll(index) 
of an empty collection must return false");
+        assertTrue(list.isEmpty());
+    }
+
     /**
      * Tests {@link List#add(int,Object)}.
      */

Reply via email to