RFR: 8079136: Accessing a nested sublist leads to StackOverflowError (original) (raw)

Martin Buchholz martinrb at google.com
Wed May 6 23:23:43 UTC 2015


Hi Ivan,

I'm afraid of these changes - they are hard to review.

Can't we fix the SOE with a relatively small change to ArrayList.SubList methods that recursively invoke parent methods to use iteration instead, i.e. can't you implement updateSizeAndModCount in the existing SubList class?


I would make modCount an argument to updateSizeAndModCount.


Separate out hot and cold code in subListRangeCheck (although pre-existing code had the same problem)

fromIndex);

")");

if ((fromIndex < 0) | (toIndex > size) | (fromIndex > toIndex)) slowpath();


java style consensus has been converging on: java source files should have exactly one top-level class. It seems like you changed inner class SubList to be a top-level class - why?

+class ArraySubList extends AbstractList implements RandomAccess {

On Wed, May 6, 2015 at 1:25 PM, Ivan Gerasimov <ivan.gerasimov at oracle.com> wrote:

And here's another update:

WEBREV: http://cr.openjdk.java.net/~igerasim/8079136/2/webrev/



More information about the core-libs-dev mailing list