ConcurentModificationException

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgenden Code:
Code:
public void fuegeAdressenhinzu(List<Adresse> list, Person personAufDB){
		if (list != null && list.size() > 0){
			for (Adresse value : list) {
				value.setPerson(personAufDB);
			}
			
			if (personAufDB.getAdressen() == null){
				personAufDB.setAdressen(new ArrayList<Adresse>());
			}
			
			personAufDB.getAdressen().addAll(list);
		}
	}

die Methode bekommt 2 Parameter übergeben:
1. eine Liste von Adressen
2. ein Objekt der Klasse Person(dieses Objekt habe ich per JPA-find-Methode geholt)

Die Methode soll folgendes machen:
Ich würde gerne alle Adressen aus der Liste in die eine Person hinzufügen. Davor tue ich in jede Adresse diese Person rein(ich brauche das, damit die Many-To-One-Beziehung nachher bei der Persistierung vollständig ist).

Person hat entsprechend die Variable personAdressen im Datenmodell:
Code:
public class Person{
...
private List<Adresse> personAdressen;
...
}

Leider führt obige Methode zu ConcurrentModificationException. Ich habe gedebuggt um zu schauen, aus welcher Stelle die Exception kommt, nämlich aus der Stelle:
Code:
personAufDB.getAdressen().addAll(list);



Ich habe daraufhin gegoogelt: viel wird gesagt, dass bei ConcurrentModificationException das Problem nämlich das Ändern von den Listenobjekten während man darauf iteriert.

Bei meiner Methode trifft dies eher nicht zu oder? Hat jemand eine Idee, wo hier das Problem ist? Vielen lieben Dank für Eure Hilfestellung.

Viele Grüße aus Rheinland,

Eure Ratna:)

PS. Ich bin mir sicher, die Exception kommt daher, da personAufDB.getAdressen() und list einfach auf das eine und gleiche Objekt referenzieren. Wie könnte ich aber dieses Problem umgehen?
 
Zuletzt bearbeitet:
Hallo Fasibio,

danke, es hat sich schon erledigt. Wie immer, es lag an meinem Programmierstill, ich musste das Programm so abändern, dass die Exception nicht aufschlägt.

Vielen Dank,

Eure Ratna
 
Zurück