Crash including Vacuum Hoppers
Eufranio opened this issue ยท 10 comments
Whenever a specific player in my server log in, the server crashes.
Description: Exception while ticking a block
java.lang.AbstractMethodError: openmods.utils.SidedInventoryAdapter.getOwner()Lorg/bukkit/inventory/InventoryHolder;
at openblocks.common.tileentity.TileEntityVacuumHopper.getOwner(TileEntityVacuumHopper.java)
at net.minecraft.block.BlockDropper.func_149941_e(BlockDropper.java:79)
at net.minecraft.block.BlockDispenser.func_149674_a(BlockDispenser.java:183)
at net.minecraft.world.WorldServer.func_72955_a(WorldServer.java:776)
at net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:283)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:963)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:432)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:841)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:693)
at java.lang.Thread.run(Thread.java:745)
Full crash-report: https://hastebin.com/vamujikoni.pl
Forge 1614, OpenBlocks 1.7.10-1.5.1, OpenModsLib-1.7.10-0.9.1
I'm using Thermos build 58, another Cauldron fork, and looks like it has the patch (because it was forked from KCauldron) as well: https://github.com/CyberdyneCC/Thermos/blob/master/patches/net/minecraft/tileentity/TileEntityHopper.java.patch
So, there's something wrong in my end? Or in Thermos itself?
Oooh, now I get it: posted patch is for hopper, but in dropper/dispatcher this code remains unchecked.
Anyway, I don't think we can fix that on our side without dropping functionality, so it's up to Bukkit/Cauldron/Thermos. Though, as I said here on first glance it should work as is...
EDIT: maybe only IInventory & TileEntity
classes are patched?
Oh, wow, haven't seen this in quite some time (duplicates of #332, #326, #323, #377, all reported in early 2014).
This bug is specific to Bukkit/Bukkit-like servers, so officially it's not supported by us. Though quick google shows stuff like this which suggests that most of the implementations are aware of this bug and patch it.
EDIT: though I'm not really sure what's the issue. I'm using this to copy methods from interface to actual implementation. Class IInventory
should be already patched at this point and return all methods. Maybe there is duplicate classloader? No idea...
Not really.
There are at least two solutions, but all on thermos/whatever side:
- Copy patch from hopper to dropper/dispatcher
- Find out why
IInventory
patcher (do they even have one or those are manual patches?) does not fixopenmods.inventory.GenericInventory
and others. Maybe they only patch TileEntities?
What about allowing forge to remove your TileEntity?
Thermos isn't even compilable at the moment, and probably never will be, since they stopped development.