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:
L'errore restituito è il seguente: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); } } }
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!

Rispondi quotando