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)}.
*/