У меня ошибка ConcurrentModificationException; это цитата:Ошибка ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
at java.util.ArrayList$Itr.next(ArrayList.java:831)
at org.eclipse.om2m.IOTproject.ipu.Monitor.start(Monitor.java:31)
at org.eclipse.om2m.IOTproject.ipu.Activator$1$1.run(Activator.java:39)
Здесь есть начало нити в классе Monitor:
public void start() throws Exception {
ServerUDP server = new ServerUDP();
Thread t = new Thread(server);
t.start();
while (true) {
Iterator<Pacchetto> it = server.A.iterator();
while (it.hasNext()) {
Pacchetto o = (Pacchetto) it.next();
Utils.insertResource(o);
Этот класс вызывает поток в классе ServerUDP
public void run() {
Controllore c = new Controllore(A);
c.start();
DatagramSocket serverSocket = null;
try {
serverSocket = new DatagramSocket(4445);
//TODO chiudi pacchetto
} catch (SocketException e1) {
e1.printStackTrace();
}
byte[] receiveData = new byte[1024];
while(true){
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
try {
serverSocket.receive(receivePacket);
} catch (IOException e) {
e.printStackTrace();
}
String msg = new String(receivePacket.getData());
Date date = new Date();
Pacchetto o = new Pacchetto();
o.setIP(msg);
o.setTimestamp(date);
Iterator<Pacchetto> iterator1 = A.iterator();
boolean flag = true;
while (iterator1.hasNext()) {
Pacchetto obj = (Pacchetto) iterator1.next();
if (obj.getIP().equals(o.getIP())) {
obj.setTimestamp(o.getTimestamp());
flag = false;
break;
}
}
if (flag) {
System.out.println("Added " + o.getIP());
A.add(o);
}
System.out.println("Check -------------");
for (int i=0; i< A.size() ; i++)
{
System.out.println(A.get(i).getIP());
}
}
}
}
Pacchetto является объект, определяемым меня. Как я могу исправить эту проблему? Спасибо
Прочитайте это из [JavaDoc] (http://download.oracle.com/javase/1.4.2/docs/api/java/util/ConcurrentModificationException.html) – aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Проверить этот поток HTTP : //stackoverflow.com/questions/8104692/how-to-avoid-java-util-concurrentmodificationexception-when-iterating-through-an –
Мне нужно клонировать arraylist в классе ServerUDP? –