Bonjour,
J'aimerais supprimer des éléments dans un document JDom.
Celà fonctionne mais lorsque je supprime l'element courant, L'iterateur me pose un probleme.
Voici mon code :La fonction lireFichier() ouvre le fichier xml et retourne le document JDom.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public void supprime(String d) { // recupere le document Document document = this.lireFichier(); // recupere racine Element racine = document.getRootElement(); // recupere la liste des preference et place dans iterateur List listRDV = racine.getChildren("rendezvous"); Iterator i = listRDV.iterator(); // parse l'iterator while(i.hasNext()) { if (courant.getAttribute("date").getValue().equals(d)) { racine.removeContent(courant); } } }
Voici l'erreur :La ligne 365 est la suivante :Exception in trhead "main" java.util.ConcurrentModificationException
at org.jdom.ContentList$FilterlistIterator.checkConcurrentModification(ContentList.java:1041)
at org.jdom.ContentList$FilterlistIterator.hasNext(ContentList.java:752)
at maClasse.supprime(maClasse.java:365)J'ai pu comprendre qu'il n'était pas d'accord que je modifie l'element courant
Code : Sélectionner tout - Visualiser dans une fenêtre à part while(i.hasNext())
Quelle solution il faut utiliser ?
A chaque foi que je supprime, reinitialise l'iterator ? Sa va pomper de la memoire car il va tester plusieurs fois le meme element...
Merci
Partager