Problème d'iterateur lors d'une suppression
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 :
Code:
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);
}
}
} |
La fonction lireFichier() ouvre le fichier xml et retourne le document JDom.
Voici l'erreur :
Citation:
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)
La ligne 365 est la suivante : J'ai pu comprendre qu'il n'était pas d'accord que je modifie l'element courant :)
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