1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Fehler beim AsyncPlayerChatEvent

Dieses Thema im Forum "Programmierung" wurde erstellt von Darkblader24, 6. Mai 2013.


  1. Darkblader24
    Offline

    Darkblader24

    Registriert seit:
    22. August 2012
    Beiträge:
    79
    Geschlecht:
    männlich
    Minecraft:
    Darkblader24
    Hallo

    Ich bekomme in meinem Plugin jeden Tag ein paar mal folgenden Fehler:

    Code (Text):
    1. 2013-05-06 18:24:47 [SEVERE] Could not pass event AsyncPlayerChatEvent to PPS v3.0
    2. org.bukkit.event.EventException
    3.     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
    4.     at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    5.     at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:26)
    6.     at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
    7.     at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:461)
    8.     at net.minecraft.server.v1_5_R3.PlayerConnection.chat(PlayerConnection.java:900)
    9.     at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:840)
    10.     at net.minecraft.server.v1_5_R3.Packet3Chat.handle(Packet3Chat.java:44)
    11.     at org.spigotmc.netty.NettyNetworkManager$2.run(NettyNetworkManager.java:113)
    12.     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    13.     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    14.     at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    15.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    16.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    17.     at java.lang.Thread.run(Thread.java:722)
    18. Caused by: java.util.ConcurrentModificationException
    19.     at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819)
    20.     at java.util.ArrayList$Itr.next(ArrayList.java:791)
    21.     at de.PPS.Chat.Chat.sendChatroomMessage(Chat.java:547)
    22.     at de.PPS.Chat.Chat.Chat(Chat.java:504)
    23.     at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)
    24.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    25.     at java.lang.reflect.Method.invoke(Method.java:601)
    26.     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
    27.     ... 14 more

    Daraufhin stüzt der Server ab und es werden sämtliche Spieler gekickt. Und nach ca 20 Sekunden kann man dann einfach wieder drauf joinen, als wäre nix gewesen.

    Mein Code auf Zeile 504 ist folgender

    Code (Text):
    1. sendChatroomMessage("Global", nachricht);
    In der Methode, die da aufgerufen wird, steht folgendes:

    Code (Text):
    1. public static void sendChatroomMessage(String chatraum,String nachricht){
    2.     if(chatraum.equalsIgnoreCase("Global")){
    3.         for (Player GlobaleP : GlobalChat) {
    4.             GlobaleP.sendMessage(nachricht);
    5.         }
    6.     }
    7.     if(chatraum.equalsIgnoreCase("Clan")){
    8.         for (Player ClanP : ClanChat) {
    9.             ClanP.sendMessage(nachricht);
    10.         }
    11.     }
    12. }
    Wo liegt hier der Fehler?
    Das komische ist, dass das nur manchmal passiert.

    Vielen Dank im Vorraus :)
     
  2. games6471
    Offline

    games6471

    Dein GlobalChat oder ClanChat wird während dem Iterieren verändert.

    Die nervigste Exception welche auftritt beim Arbeiten mit mehren Threads.
     
  3. Darkblader24
    Offline

    Darkblader24

    Registriert seit:
    22. August 2012
    Beiträge:
    79
    Geschlecht:
    männlich
    Minecraft:
    Darkblader24
    Stimmt! Es werden ja dauernd Leute in der Liste verändert, da ja ständig welche joinen oder quitten.
    Aber wie kann ich dann soetwas beheben?
     
    Zuletzt bearbeitet: 6. Mai 2013
  4. Crafter6432
    Offline

    Crafter6432

    Registriert seit:
    22. Dezember 2011
    Beiträge:
    681
    Zuletzt bearbeitet: 6. Mai 2013
  5. ChristianG
    Offline

    ChristianG

    Faustregel:
    Nicht auf die Bukkit API ausm Sheduler direkt zugreifen!