RFR: 8079136: Accessing a nested sublist leads to StackOverflowError

Ivan Gerasimov ivan.gerasimov at oracle.com
Fri May 8 15:02:13 UTC 2015



On 08.05.2015 1:26, Martin Buchholz wrote:
> On Thu, May 7, 2015 at 12:23 PM, Doug Lea <dl at cs.oswego.edu> wrote:
>> It would be possible (and easy) to create a specialization for the
>> java.util.Arrays.ArrayList class (i.e., the kind returned by
>> Arrays.asList(a).subList), which would also fix the SOE problem
>> in this particular case.
>
> It seems it would be a fairly clean win to no longer have Arrays.ArrayList
> subclass AbstractList, getting rid of modCount (no structural modifications
> are possible!), at the cost of more copying.  Maybe it could subclass
> AbstractCollection instead?
>
We can introduce an intermediate abstract base class for AbstractList, 
which will implement a simpler version of sublists.
This BaseAbstractList could then be used for implementing 
Arrays.ArrayList and Collections.SingletonList without paying too much 
for copying code.

I wouldn't include such a change in this fix, however, and would leave 
if for a separate enhancement.

Sincerely yours,
Ivan




More information about the core-libs-dev mailing list