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 :

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 premiere partie de la methode run est :

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();
                        ...
                        }
                 ...
                }
La liste du thread OwnFiles est initialisé de cette maniere :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
private List<String> ownFiles = new CopyOnWriteArrayList<String>();
Comment résoudre ce probleme ?

Merci