Du bist nicht angemeldet.

1

Mittwoch, 2. November 2011, 14:51

Exception in thread "Thread-3" java.util.ConcurrentModificationException

Hallo Bcler :D

Derzeit versuche ich mich an der /mychannel-Funktion. Nun habe ich ein Problem hierbei:

Java-Quelltext

1
2
3
4
5
Channel mychannelclient = Server.get().getChannel(client.getMyChannel());  // client.getMyChannel() enthält zb /Testchannel
  for (Client eNick : mychannelclient.getClients()) {
  if (!eNick.getName().equals(Server.get().getButler().getName())) { // kp ob man das wirklich braucht
  eNick.logout("Channel wurde gelöscht.");
  }}


Hiermit möchte ich die Nicks ausloggen, wenn der MyChannel in dem sie sich befinden gelöscht wird. Wenn ich nun den MyChannel lösche erscheint in der Konsole folgendes:

Java-Quelltext

1
2
3
4
Exception in thread "Thread-3" java.util.ConcurrentModificationException
....
 at handler.MyChannelHandler.handle(MyChannelHandler.java:168)
....


Die Zeile 168 ist bei mir folgendes:

Java-Quelltext

1
for (Client eNick : mychannelclient.getClients()) {


Ich habe zwar den Verdacht, dass es daran liegen könnte, weil sich getClients() ändert, aber wie ich das Problem lösen kann habe ich nicht herausgefunden.

Vllt kann mir ja jmd helfen. Danke ;>
Meine Grafikseite: http://chatsmileys.senzious.de/

2

Mittwoch, 2. November 2011, 15:44

Okay, habs nun doch dank Google gelöst, daher bestimmt weitere iwann diesen Fehler haben können, schreibe ich mal hier meine Lösung:

Java-Quelltext

1
2
3
4
5
6
7
8
  Channel mychannelclient = Server.get().getChannel(client.getMyChannel()); 
  List<Client> params2 = mychannelclient.getClients();
  int online = mychannelclient.getClients().size();
  for(int i = 0; i < online; i++) {
  Client eNick = params2.get(i);
  if (!eNick.getName().equals(Server.get().getButler().getName())) {
  eNick.logout("Channel wurde gelöscht.");
  }}


So tritt der Fehler nicht mehr auf.
Meine Grafikseite: http://chatsmileys.senzious.de/

Localhost

Ehemaliger Supporter

Beiträge: 345

Wohnort: 127.0.0.1

  • Private Nachricht senden

3

Mittwoch, 2. November 2011, 15:50

Da das Problem gelöst wurde, hier geschlossen.
No support via message.

"Der gute Programmierer ist nicht der, der keine Fehler macht, sondern der, der seine Fehler rasch findet und behebt."