Bonjour,
J'ai une liste initial contenant un ensemble de nom de fichiers (supposant 20).
J'ai un ensemble de threads (supposant 3) qui traiteront les elements de liste de cette maniere :
- Chaque thread a une liste, elle contient un ensemble de la liste initial (Thread 1 contient 7, Thread 2 contient 7 et Thread 3 contient 6)
- Le traitement se fait sur chaque element de la liste du thread
En ce moment j'ai pu repartir la liste initial sur l'ensemble des listes
Quand j'esseye de parcourir la liste du thread dans le thread (methode run), j'ai cette exception :
La premiere partie de la methode run est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Exception in thread "Thread-2" java.util.ConcurrentModificationException at java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification(CopyOnWriteArrayList.java:1127) at java.util.concurrent.CopyOnWriteArrayList$COWSubList.size(CopyOnWriteArrayList.java:1167) at fr.gouv.finances.tools.sftppoller.poller.ThreadReader.run(ThreadReader.java:21)
La liste du thread OwnFiles est initialisé de cette maniere :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Iterator<String> it = getOwnFiles().iterator(); while (it.hasNext()) { if (!Poller.toStop) { logger.debug("Taille de la OwnFiles : " + getOwnFiles().size()); String fileName = it.next(); ... } ... }
Comment résoudre ce probleme ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part private List<String> ownFiles = new CopyOnWriteArrayList<String>();
Merci
Partager