Ir para conteúdo
  • 0

[Dúvida] ConcurrentModificationException


zAth

Pergunta

Estou tendo esse erro, já tinha tido esse erro antes e eu comecei usando iterator, daquela vez resultou..

Agora usei iterator novamente para tentar arrumar esse erro, mas continuo obtendo o erro.

 

Código:

 

 

    static ArrayList<Cooldown> toRemove = new ArrayList<>();
    static ArrayList<Cooldown> cooldowns = new ArrayList<>();    

    static void start() {
        getServer().getScheduler().scheduleSyncRepeatingTask(this, () -> {

            checkExpireds();

            remove();

        }, 20, 600 * 20);
    }

    static void checkExpireds() {
        Iterator<Cooldown> iterator = cooldowns.iterator();
        while (iterator.hasNext()) {

            Cooldown cooldown = iterator.next();

            if (cooldown.getExpireDate() <= System.currentTimeMillis()){
                cooldowns.remove(cooldown);
                toRemove.add(cooldown);
            }

            iterator.remove();
        }
    }

    static void remove() {
        Iterator<Cooldown> iterator = toRemove.iterator();
        while (iterator.hasNext()) {
            Cooldown cooldown = iterator.next();

            getConfig().set("Kits." + cooldown.getKit().getName() + ".ActiveCooldowns." + cooldown.getPlayer(), null);
            saveConfig();

            toRemove.remove(cooldown);
            iterator.remove();
        }
    } 

 

 

 

Erro:

 

 

[12:31:42 WARN]: [SkyKits] Task #188 for SkyKits v1.0 generated an exception 
        java.util.ConcurrentModificationException
        at java.util.ArrayList$Itr.checkForComodification(Unknown Source) ~[?:1.8.0_101]
        at java.util.ArrayList$Itr.remove(Unknown Source) ~[?:1.8.0_101]
        at me.zath.skykits.controllers.ExpireTimer.checkExpireds(ExpireTimer.java:49) ~[?:?]
        at me.zath.skykits.controllers.ExpireTimer.lambda$start$0(ExpireTimer.java:21) ~[?:?]
        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59) ~[spigot.jar:UnrealBirosca]
        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:349) [spigot.jar:UnrealBirosca]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:783) [spigot.jar:UnrealBirosca]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378) [spigot.jar:UnrealBirosca]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:713) [spigot.jar:UnrealBirosca]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:616) [spigot.jar:UnrealBirosca]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
[12:33:12 WARN]: [SkyKits] Task #188 for SkyKits v1.0 generated an exception
        java.util.ConcurrentModificationException
        at java.util.ArrayList$Itr.checkForComodification(Unknown Source) ~[?:1.8.0_101]
        at java.util.ArrayList$Itr.remove(Unknown Source) ~[?:1.8.0_101]
        at me.zath.skykits.controllers.ExpireTimer.remove(ExpireTimer.java:38) ~[?:?]
        at me.zath.skykits.controllers.ExpireTimer.lambda$start$0(ExpireTimer.java:22) ~[?:?]
        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59) ~[spigot.jar:UnrealBirosca]
        at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:349) [spigot.jar:UnrealBirosca]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:783) [spigot.jar:UnrealBirosca]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378) [spigot.jar:UnrealBirosca]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:713) [spigot.jar:UnrealBirosca]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:616) [spigot.jar:UnrealBirosca]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_101] 

 

 

( linha 38 e 49: iterator.remove() )

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...