Plugin Un bon gros bug multiverse non répertorié

Trouvez-vous ce topic bien réalisé ?

  • Oui

    Votes: 0 0.0%
  • Non

    Votes: 0 0.0%

  • Total voters
    0
  • Poll closed .

Noucho

Builder professionnel et Gérant de RegiGames
26 Février 2016
206
28
90
France
regigames.fr
Bien le bonjour/bonsoir en ce bas monde,

Je poste aujourd'hui car j'ai un bug assez énervant avec multiverse. En effet, depuis environ deux semaines, lorsque j'exécute la commande /mv reload sur mon serveur, il m'affiche une erreur interne. Dans la console, j'ai le droit à un pavé de 160 lignes d'erreur :
Code:
org.bukkit.command.CommandException: Unhandled exception executing command 'mv' in plugin Multiverse-Core v2.4-b527
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:642) ~[spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1135) [spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:970) [spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_72]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_72]
    at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:19) [spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:718) [spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:367) [spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:657) [spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:560) [spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_72]
Caused by: java.lang.StackOverflowError
    at org.bukkit.Location.clone(Location.java:552) ~[spigot-1.8.7.jar:git-Spigot-f928e7a-994b2aa]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:216) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
    at com.onarandombox.MultiverseCore.utils.SimpleBlockSafety.hasTwoBlocksofWaterBelow(SimpleBlockSafety.java:226) ~[?:?]
(La dernière ligne est répétée bien plus de fois que ça)

Après maintes et maintes recherches désespérées dans le but de trouver l'origine de ce bug, je n'ai strictement rien trouvé concernant un bug comme celui-ci. Je suis donc allé dans le répertoire de bugs multiverse, et ce bug n'est même pas répertorié.
L'erreur vient du "StackFlow" de java, mais je n'arrive pas à savoir ce que c'est.
@Detobel36 , c'est pour toi ;)

Merci d'avance pour votre aide :)

Bien cordialement,
Noucho
 
Salut,

Ok donc le soucis vient du fait qu'il y ai une boucle récursive dans le code de Multiverse.
Il cherche deux blocks d'eau consécutif (me demande par pourquoi il fait ça, je sais pas :/ ) et il ne les trouves pas...

L'erreur viendrait de ce code la:
Code:
    private boolean hasTwoBlocksofWaterBelow(Location l) {
        if (l.getBlockY() < 0) {
            return false;
        }
        Location oneBelow = l.clone();
        oneBelow.subtract(0, 1, 0);
        if (oneBelow.getBlock().getType() == Material.WATER || oneBelow.getBlock().getType() == Material.STATIONARY_WATER) {
            Location twoBelow = oneBelow.clone();
            twoBelow.subtract(0, 1, 0);
            return (oneBelow.getBlock().getType() == Material.WATER || oneBelow.getBlock().getType() == Material.STATIONARY_WATER);
        }
        if (oneBelow.getBlock().getType() != Material.AIR) {
            return false;
        }
        return hasTwoBlocksofWaterBelow(oneBelow);
    }
Je pense que tu peux ouvrir une issue/bug report pour signaler le problème :)


Cordialement,
Detobel36
 
  • J'aime
Reactions: Noucho
Merci pour vos réponses,

Il est vrai que j'ai plusieurs lignes dans mes logs me disant que les spawns ne sont pas safe.
Je vais corriger ça, et sinon je vais ouvrir une issue sur spigot :)

Bien cordialement,
Noucho