inconsistency between ArrayList.modCount and logic of ArrayList::addAll

Pavel Rappo pavel.rappo at oracle.com
Wed May 8 14:44:56 UTC 2019


We will certainly hear from Stuart on this very soon. Meanwhile, I have to say
that the situation you've described is not that clear-cut in my opinion.

I understand there might be a discrepancy between how the `modCount` field is
described and how it is actually used.

Incrementing `modCount` unconditionally makes more sense to me. The whole
purpose of this mechanism is to fail fast, exposing possible bugs in the client
code. I believe it should be incremented on an attempt to modify the collection,
rather than on the effective result of that attempt.

It's somewhat similar to the following question: should Collections.emptyList
(or Collections.emptySet) throw an exception on an attempt to call `clear` (or
`remove(e)` where `e` is not a member of the said collection)?

-Pavel




More information about the core-libs-dev mailing list