Skip to content

Fix AbstractLinkedList addAll returning true for an empty collection - #726

Merged
garydgregory merged 1 commit into
apache:masterfrom
rootvector2:linkedlist-addall-empty-false
Aug 17, 2026
Merged

Fix AbstractLinkedList addAll returning true for an empty collection#726
garydgregory merged 1 commit into
apache:masterfrom
rootvector2:linkedlist-addall-empty-false

Conversation

@rootvector2

Copy link
Copy Markdown
Contributor

addAll(int, Collection) hard-codes return true, so adding an empty collection reports a change that never happened, breaking the List.addAll contract (return true only if the list changed). Spotted because the class's own LinkedSubList.addAll already returns false for an empty collection, as does TreeList.addAll. The fix returns false for an empty collection after the getNode range check, so an out-of-range index still throws IndexOutOfBoundsException. AbstractLinkedListJava21 is a copy of this class with the same defect and gets the same one-line fix. Regression test in AbstractListTest runs against every list impl; it fails before for CursorableLinkedList, NodeCachingLinkedList and the AbstractLinkedListJava21 default list, and passes after.

  • Read the contribution guidelines for this project.
  • Read the ASF Generative Tooling Guidance if you use Artificial Intelligence (AI).
  • I used AI to create any part of, or all of, this pull request. Which AI tool was used to create this pull request, and to what extent did it contribute?
  • Run a successful build using the default Maven goal with mvn; that's mvn on the command line by itself.
  • Write unit tests that match behavioral changes, where the tests fail if the changes to the runtime are not applied. This may not always be possible, but it is a best practice.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Each commit in the pull request should have a meaningful subject line and body. Note that a maintainer may squash commits during the merge process.

@garydgregory garydgregory changed the title fix AbstractLinkedList addAll returning true for an empty collection Fix AbstractLinkedList addAll returning true for an empty collection Aug 15, 2026
@garydgregory
garydgregory merged commit 5360206 into apache:master Aug 17, 2026
11 checks passed
@garydgregory

Copy link
Copy Markdown
Member

@rootvector2 Thank you for the PR, reviewed and merged 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants