RFR: 8079136: Accessing a nested sublist leads to StackOverflowError

Ivan Gerasimov ivan.gerasimov at oracle.com
Tue May 5 07:17:57 UTC 2015


Hello!

When creating a sublist with List.subList(), it keeps a reference to its 
parent.
Then, when accessing (get(), set(), add(), remove(), etc.) the sublist, 
it recursively calls the corresponding methods of its parent.
This recursion, when deep enough, can cause StackOverflowError.

The only reason to do things recursively here, is the need to update 
modCount and size of all the parents.
So, the proposal is to update these fields in a loop.

A few cleanups were done along the way.

Would you please help review the fix?

BUGURL: https://bugs.openjdk.java.net/browse/JDK-8079136
WEBREV: http://cr.openjdk.java.net/~igerasim/8079136/0/webrev/

Sincerely yours,
Ivan



More information about the core-libs-dev mailing list