Erreur java.util.ConcurrentModificationException

unbreakbv Messages postés 1 Date d'inscription jeudi 30 novembre 2000 Statut Membre Dernière intervention 25 octobre 2005 - 25 oct. 2005 à 11:24
chuck1300 Messages postés 6 Date d'inscription vendredi 1 janvier 2010 Statut Membre Dernière intervention 28 mars 2011 - 16 oct. 2010 à 22:22
Bonjour,
Je debut en JDOM.Je voudrais faire un element.setText("coucou") dans le boucle de l'Iterator z=courant.getDescendants();
J'ai l'erreur java.util.ConcurrentModificationException.Merci de m'aider...
Voici le code que j'ai programmé
--------------------------------------------------------------------

static void afficheAll1(Element intro,Element p) {

List listRacine = racine.getChildren();
Iterator i = listRacine.iterator();

String introTxt=intro.getName();
String courantTxt;
System.out.println(introTxt);
String pTxt=p.getName();
String chaine;
Element courant1;

while(i.hasNext()){
Element courant = (Element)i.next();
courantTxt=courant.getName();
if(courantTxt.equals(introTxt)){

for(Iterator z=courant.getDescendants();z.hasNext();){
Object node=z.next();

if(node instanceof Element){
courant1=(Element)node;
String courantNode =courant1.getName();
if(courantNode.equals(pTxt)){

chaine=courant1.getText();
chaine=traitementChaine(chaine);
courant1.setText(chaine);
}
}
}

}
}
}

3 réponses

dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
26 oct. 2005 à 09:11
Ton message est explicite, tu a recuperer la list, et tu la parcoures,

et tu essaie d'ajouter qqchose, donc tu veux modifier la liste,

ce qui n'est pas possible qd tu y accede avec un iterator.

C'est un acces concurent interdit (d'ou ton erreur de concurence).

Sort de ton iterator, liberes-le en gardant ton noeud, et modifie ton noeud ensuite.



dams
0
cs_adelos Messages postés 6 Date d'inscription samedi 15 décembre 2007 Statut Membre Dernière intervention 10 septembre 2010
26 sept. 2009 à 09:16
merci beaucoup pour la reponse !!!
c vrai que le message est explecite mais , on n'ose pas le decrypter des fois ( dans mon cas ou j'utilise des threads ) c 'est deprimant.

ta reponse m'a beaucoup aidé !
0
chuck1300 Messages postés 6 Date d'inscription vendredi 1 janvier 2010 Statut Membre Dernière intervention 28 mars 2011
16 oct. 2010 à 22:22
J'avais la même exception dans la cadre d'un parcour de map.
Je n'avais pas compris directement car je modifiais la valeur via la référénce.
Merci beaucoup pour ta réponse qui m'a éclairé sur le problème..
0
Rejoignez-nous