keepcalm / BukkitForge

The world's first __opensource__ coremod. Also a port of the Bukkit server API to MinecraftForge.
http://www.minecraftforge.net/forum/index.php/topic,3254.0.html
103 stars 60 forks source link

[WorldEdit] UnsupportedClassVersionError: MCPCPlusXNmsBlock_147 #557

Closed dequis closed 11 years ago

dequis commented 11 years ago

Well this is weird, i've never seen this error before with very similar configurations, but it's an interesting hint as to why the worldedit compatibility isn't perfect. Looks like worldedit's protection against CBO version changes is also used to support MCPC, but ignores us.

java.lang.UnsupportedClassVersionError: MCPCPlusXNmsBlock_147 : Unsupported major.minor version 51.0
     at java.lang.ClassLoader.defineClass1(Native Method)
     at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
     at java.lang.ClassLoader.defineClass(ClassLoader.java:480)
     at com.sk89q.worldedit.bukkit.BukkitWorld$NmsBlockClassLoader.loadClass(BukkitWorld.java:228)
     at com.sk89q.worldedit.bukkit.BukkitWorld.<init>(BukkitWorld.java:146)
     at com.sk89q.worldedit.bukkit.BukkitUtil.getLocalWorld(BukkitUtil.java:50)
     at com.sk89q.worldedit.bukkit.BukkitPlayer.getWorld(BukkitPlayer.java:132)
     at com.sk89q.worldedit.bukkit.WorldEditListener.onPlayerInteract(WorldEditListener.java:121)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:616)
     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:391)
     at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:66)
     at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:482)
     at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
     at keepcalm.mods.bukkit.forgeHandler.ForgeEventHandler.interactEvent(ForgeEventHandler.java:421)
     at net.minecraftforge.event.ASMEventHandler_108_ForgeEventHandler_interactEvent_PlayerInteractEvent.invoke(.dynamic)
     at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:35)
     at net.minecraftforge.event.EventBus.post(EventBus.java:103)
     at net.minecraftforge.event.ForgeEventFactory.onPlayerInteract(ForgeEventFactory.java:34)
     at ir.a(ItemInWorldManager.java:159)
     at iv.a(NetServerHandler.java:509)
     at ei.a(SourceFile:46)
     at cg.b(TcpConnection.java:458)
     at iv.d(NetServerHandler.java:136)
     at iw.b(NetworkListenThread.java:57)
     at ht.b(SourceFile:30)
     at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:703)
     at ho.r(DedicatedServer.java:269)
     at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:599)
     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:497)
     at fy.run(SourceFile:849)

Happens when left clicking a block with the wand (wooden axe). Operations still succeed, although the previous apparently harmless errors are still here (Failed to do NMS access for direct NBT data copy and Failed to do NMS safe block set, the latter mentioned in ticket #407 which was closed by the reporter without having it solved)

For completeness here's the other errors - they happen on //set whatever - the operation still falls back to a 'basic' block set that doesn't use NMS - however worldedit seems to rely on NMS to support mod blocks.

2013-03-02 20:41:29 [WARNING] [Minecraft.WorldEdit] WorldEdit: Failed to do NMS access for direct NBT data copy
java.lang.NullPointerException
        at com.sk89q.worldedit.bukkit.BukkitWorld.getBlock(BukkitWorld.java:1311)
        at com.sk89q.worldedit.EditSession.rawGetBlock(EditSession.java:407)
        at com.sk89q.worldedit.EditSession.getBlock(EditSession.java:361)
        at com.sk89q.worldedit.EditSession.setBlock(EditSession.java:258)
        at com.sk89q.worldedit.EditSession.setBlocks(EditSession.java:1151)
        at com.sk89q.worldedit.commands.RegionCommands.set(RegionCommands.java:79)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at com.sk89q.minecraft.util.commands.CommandsManager.invokeMethod(CommandsManager.java:533)
        at com.sk89q.worldedit.WorldEdit$1.invokeMethod(WorldEdit.java:257)
        at com.sk89q.worldedit.WorldEdit$1.invokeMethod(WorldEdit.java:1)
        at com.sk89q.minecraft.util.commands.CommandsManager.executeMethod(CommandsManager.java:520)
        at com.sk89q.minecraft.util.commands.CommandsManager.execute(CommandsManager.java:425)
        at com.sk89q.worldedit.WorldEdit.handleCommand(WorldEdit.java:1394)
        at com.sk89q.worldedit.bukkit.WorldEditPlugin.onCommand(WorldEditPlugin.java:247)
        at com.sk89q.bukkit.util.DynamicPluginCommand.execute(DynamicPluginCommand.java:52)
        at keepcalm.mods.bukkit.forgeHandler.commands.CommandExecutor2CommandBase.b(CommandExecutor2CommandBase.java:105)
        at keepcalm.mods.bukkit.nmsforge.CommandHandlerImpl.a(CommandHandlerImpl.java:94)
        at x.a(CommandHandler.java:14)
        at iv.d(NetServerHandler.java:768)
        at iv.a(NetServerHandler.java:734)
        at cu.a(SourceFile:44)
        at cg.b(TcpConnection.java:458)
        at iv.d(NetServerHandler.java:136)
        at iw.b(NetworkListenThread.java:57)
        at ht.b(SourceFile:30)
        at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:703)
        at ho.r(DedicatedServer.java:269)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:599)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:497)
        at fy.run(SourceFile:849)
2013-03-02 20:41:29 [WARNING] [Minecraft.WorldEdit] WorldEdit: Failed to do NMS safe block set
java.lang.NullPointerException
        at com.sk89q.worldedit.bukkit.BukkitWorld.setBlock(BukkitWorld.java:1330)
        at com.sk89q.worldedit.EditSession.rawSetBlock(EditSession.java:237)
        at com.sk89q.worldedit.EditSession.smartSetBlock(EditSession.java:340)
        at com.sk89q.worldedit.EditSession.setBlock(EditSession.java:267)
        at com.sk89q.worldedit.EditSession.setBlocks(EditSession.java:1151)
        at com.sk89q.worldedit.commands.RegionCommands.set(RegionCommands.java:79)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at com.sk89q.minecraft.util.commands.CommandsManager.invokeMethod(CommandsManager.java:533)
        at com.sk89q.worldedit.WorldEdit$1.invokeMethod(WorldEdit.java:257)
        at com.sk89q.worldedit.WorldEdit$1.invokeMethod(WorldEdit.java:1)
        at com.sk89q.minecraft.util.commands.CommandsManager.executeMethod(CommandsManager.java:520)
        at com.sk89q.minecraft.util.commands.CommandsManager.execute(CommandsManager.java:425)
        at com.sk89q.worldedit.WorldEdit.handleCommand(WorldEdit.java:1394)
        at com.sk89q.worldedit.bukkit.WorldEditPlugin.onCommand(WorldEditPlugin.java:247)
        at com.sk89q.bukkit.util.DynamicPluginCommand.execute(DynamicPluginCommand.java:52)
        at keepcalm.mods.bukkit.forgeHandler.commands.CommandExecutor2CommandBase.b(CommandExecutor2CommandBase.java:105)
        at keepcalm.mods.bukkit.nmsforge.CommandHandlerImpl.a(CommandHandlerImpl.java:94)
        at x.a(CommandHandler.java:14)
        at iv.d(NetServerHandler.java:768)
        at iv.a(NetServerHandler.java:734)
        at cu.a(SourceFile:44)
        at cg.b(TcpConnection.java:458)
        at iv.d(NetServerHandler.java:136)
        at iw.b(NetworkListenThread.java:57)
        at ht.b(SourceFile:30)
        at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:703)
        at ho.r(DedicatedServer.java:269)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:599)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:497)
        at fy.run(SourceFile:849)

Setup:

eagl3s1ght commented 11 years ago

544 may be related.

dequis commented 11 years ago

Kinda. The comments section mentions the 'NMS safe block set' issue. The first stack trace in this issue seems to be new - i just got a report from @dreadcor about the same thing (he uses tekkit lite)

dequis commented 11 years ago

Just noticed #526 which has an awful title

dequis commented 11 years ago

I'm retarded. I just realized it's complaining because it's compiled for java 7. Bye ticket.