Salve ragazzi!! sto progettando un client che ogni tot secondi richiama delle specifiche funzioni su una lista, non appena però incontra la funzione che cancella gli elementi della lista mi viene restituito un errore (java.util.ConcurrentModificationException).
Vi riporto di seguito il codice:
codice:
public class MyTimerClass extends java.util.TimerTask{
private LinkedList <String> listaComandi;
public MyTimerClass(){
listaComandi=new LinkedList <String>();
}
public void run() {
leggiComandi();
inviaComandi();
cancellaListaComandi();
}
//--------------------------------------------------------------------------------------------------------------------------
public synchronized void cancellaListaComandi(){
for(String el:listaComandi){
listaComandi.remove(el);
}
}
}
L'errore restituito è il seguente:
codice:
Exception in thread "Timer-0" java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:953)
at java.util.LinkedList$ListItr.next(LinkedList.java:886)
at MyTimerClass.cancellaListaComandi(MyTimerClass.java:46)
at MyTimerClass.run(MyTimerClass.java:38)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
Ho provato ad utilizzare una programmazione concorrente, ho provato utilizzando i metodi wait(),notify() e quant altro ma non sono riuscita a trovare una soluzione. Vi ringrazio anticipatamente!