When add a collection to itself, this endless loop results from increasing of collection due to adding elements. Other collections that implements set or map interface will only have sole element. Thus adding self will not change the size.
Therefore, only collections implements List or Queue may possibly results in such failure. Till now, I don't find any other class that fails on this. On Fri, Apr 10, 2009 at 5:30 PM, Regis <[email protected]> wrote: > Kevin Zhou wrote: > >> Hi, >> I have investigated this defect. >> This problem happens on two methods [1][2] of java.lang.LinkedList class. >> Initialize a LinkedList and add element at the last position. Then adding >> this linkedList to itself will trigger a endless loop. >> >> The root cause is that the implementation of the above addAll methods adds >> elements directly from linkList itself which will also change the added >> linkList. >> It should transfer the added collection into an array, then add elements >> from that array rather than directly from the linkList itself. >> >> [1] public boolean addAll(Collection<? extends E> c) >> [2] public boolean addAll(int index, Collection<? extends E> c) >> >> > Does the endless loop happen in other collection's addAll() methods? > > -- > Best Regards, > Regis. >
