Bonjour,
J'ai une erreur : ConcurrentModificationException j'ai cherché et trouvé les explications et des solution mais aucune ne résout mon problème. A ce que j'ai compris, cette exception est levé quand on modifie une collection dans une boucle qui la liste puisque l'iterateur ouvre la collection en lecture seule.
Donc voici mon bout de code modifié d'après les différentes solutions que j'ai trouvé ici et là :
1 2 3 4 5 6 7 8 9
|
newlistTitre_Compte.addAll(listTitre_Compte);
Iterator<Titre_Compte> iterator = listTitre_Compte.iterator();
while(iterator.hasNext()){
Titre_Compte titre = iterator.next();
ActionUtils.echo(titre);
newlistTitre_Compte = recherchePere(titre,listTitre_Compte);
} |
et
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| private List<Titre_Compte> recherchePere(Titre_Compte titre,List<Titre_Compte> listTitre_Compte){
int pere = titre.getPere();
Titre_Compte titrePere = null;
try {
titrePere = daoTitre_Compte.getTitre_CompteById(pere);
} catch (BusinessException be) {
Erreurs.Warning(be);
}
List<Titre_Compte> newlistTitre_Compte = new ArrayList<Titre_Compte>();
//si pas deja le rajouter et rechercher son pere
if (!listTitre_Compte.contains(titrePere) && titrePere.getidTic() != 0){
listTitre_Compte.add(titrePere);
ActionUtils.echo("ne contiens pas : " + titrePere);
newlistTitre_Compte = recherchePere(titrePere,listTitre_Compte);
}
return newlistTitre_Compte;
} |
Mon printstack :
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at com.domaine.ihm.ActionBanqueDepense.creePanelRapide(ActionBanqueDepense.java:669)
at com.domaine.ihm.ActionBanqueDepense.creePanelSaisie(ActionBanqueDepense.java:195)
at com.domaine.ihm.ActionBanqueDepense.actionPerformed(ActionBanqueDepense.java:117)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
La ligne 669 :
Titre_Compte titre = iterator.next();
Même en passant par une autre liste le message d'erreur est toujours là. Voila j'espère que vous avez tous les éléments...
Merci d'avance!!
Partager