Allora, ho questo metodo che si occupa di togliere da un ArrayList di Download i download completati o cancellati. Il problema è che mi lancia una ConcurrentModificationException (dove ho messo la freccia) e non capisco perche'! Ogni Download e' un Runnable ed il download avviene quindi in parallelo.

Codice PHP:
   public void removeCompletedOrCancelledDownloads()
    {
        
Iterator<Downloaditerator downloadList.iterator();

        while (
iterator.hasNext())
        {
            
Download download iterator.next(); <------- questa riga da problemi

            System
.out.println("staus: " download.getStatus()); // per il debug

            
if (download.getStatus() == Download.COMPLETE || download.getStatus() == Download.CANCELLED)
            {
                
clearDownload(downloadList.indexOf(download));
            }
        }
    }

 public 
void clearDownload(int row)
    {        
        
downloadList.remove(row);

        
// Fire table row deletion notification to table.
        
fireTableRowsDeleted(rowrow);
    } 
Come posso risolvere? Grazie

edit: ah, l'eccezione salta fuori solo se ci sono almeno due download nell'array list (non importa se completati o meno). Con un solo download il metodo termina correttamente :|

edit2: ho provato anche a sincronizzare l'accesso all'arraylist ma niente