RFR: JDK-8114832 it.next on ArrayList throws wrong type of Exception after remove(-1)

Fabian Lange lange.fabian at gmail.com
Mon Jul 27 12:47:00 UTC 2015

Hi Paul,

> > I'm mildly opposed to this change - I added comments to the bug.
> >
> It looks like you are not the only one. I am outnumbered :-)
> The behaviour of ArrayList.remove, and also ArrayList.removeRange, are
> outliers [*]. It?s also a rather obscure difference behaviour with likely
> minimal impact if changed (far less so than the change to Arrays.toList) .

There are other outliers too,
add and Add all use a dedicated range check method (rangeCheckForAdd) which
validates the argument > 0.

Imho, the the rangeCheck method is incorrectly used in remove(int), because
it says it is intended to be used immediately before the array access.

I personally would vote to inline the rangeCheck methods and do the
appropriate check in the former caller. as it turns out for every method a
slightly different check would make most sense


More information about the core-libs-dev mailing list