Ellpeck / ActuallyAdditions

A Minecraft Mod about lots of useful gadgets and things!
http://minecraft.curseforge.com/projects/actually-additions
MIT License
212 stars 95 forks source link

IllegalAccessError crash #245

Closed mezz closed 8 years ago

mezz commented 8 years ago

I've had a couple reports like this one: https://github.com/mezz/JustEnoughItems/issues/426

---- Minecraft Crash Report ----

WARNING: coremods are present:
GenderLoadingPlugin ([1.10.2]Gender-1.2.5.jar)
NWRTweak (redstonepaste-mc1.9.4-1.7.4.jar)
DLFMLCorePlugin (DynamicLights-1.10.2.jar)
FMLPlugin (InventoryTweaks-1.61-58.jar)
Contact their authors BEFORE contacting forge

// Why is it breaking :(

Time: 9/14/16 10:21 PM
Description: JEI failed to start:

com.google.common.util.concurrent.ExecutionError: java.lang.IllegalAccessError: tried to access field net.minecraft.item.ItemStack.field_77990_d from class cofh.api.energy.ItemEnergyContainer
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199)
at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4827)
at mezz.jei.ItemFilter.(ItemFilter.java:43)
at mezz.jei.ProxyCommonClient.startJEI(ProxyCommonClient.java:185)
at mezz.jei.ProxyCommonClient.onEntityJoinedWorld(ProxyCommonClient.java:142)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_244_ProxyCommonClient_onEntityJoinedWorld_EntityJoinWorldEvent.invoke(.dynamic)
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:72)
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:168)
at net.minecraft.world.World.func_72838_d(World.java:1129)
at net.minecraft.client.multiplayer.WorldClient.func_72838_d(WorldClient.java:253)
at net.minecraft.client.Minecraft.func_71353_a(Minecraft.java:2451)
at net.minecraft.client.Minecraft.func_71403_a(Minecraft.java:2359)
at net.minecraft.client.network.NetHandlerPlayClient.func_147282_a(NetHandlerPlayClient.java:276)
at net.minecraft.network.play.server.SPacketJoinGame.func_148833_a(SourceFile:76)
at net.minecraft.network.play.server.SPacketJoinGame.func_148833_a(SourceFile:13)
at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at net.minecraft.util.Util.func_181617_a(SourceFile:45)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1045)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:371)
at net.minecraft.client.main.Main.main(SourceFile:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
Caused by: java.lang.IllegalAccessError: tried to access field net.minecraft.item.ItemStack.field_77990_d from class cofh.api.energy.ItemEnergyContainer
at cofh.api.energy.ItemEnergyContainer.getEnergyStored(ItemEnergyContainer.java:98)
at de.ellpeck.actuallyadditions.mod.items.base.ItemEnergy.func_77624_a(ItemEnergy.java:72)
at net.minecraft.item.ItemStack.func_82840_a(ItemStack.java:614)
at mezz.jei.util.ItemStackElement.(ItemStackElement.java:76)
at mezz.jei.util.ItemStackElement.create(ItemStackElement.java:44)
at mezz.jei.ItemFilter.createBaseList(ItemFilter.java:84)
at mezz.jei.ItemFilter.access$100(ItemFilter.java:30)
at mezz.jei.ItemFilter$ItemFilterCacheLoader.load(ItemFilter.java:119)
at mezz.jei.ItemFilter$ItemFilterCacheLoader.load(ItemFilter.java:109)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
... 30 more

A detailed walkthrough of the error, its code path and all known details is as follows:

-- System Details --
Details:
Minecraft Version: 1.10.2
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_25, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 994366600 bytes (948 MB) / 1968943104 bytes (1877 MB) up to 4281597952 bytes (4083 MB)
JVM Flags: 6 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx4G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP 9.32 Powered by Forge 12.18.1.2081 Optifine OptiFine_1.10.2_HD_U_C3 40 mods loaded, 40 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCHIJA mcp{9.19} Minecraft Coder Pack 
UCHIJA FML{8.0.99.99} Forge Mod Loader 
UCHIJA Forge{12.18.1.2081} Minecraft Forge 
UCHIJA gender{1.2.5} Gender 
UCHIJA bettercombatmod{1.3.5} Better Combat 
UCHIJA actuallyadditions{1.10.2-r62} Actually Additions 
UCHIJA thedragoncore{1.1.0} TheDragonCore 
UCHIJA armorplus{1.10.2-6.0.9.2} ArmorPlus 
UCHIJA backpack{3.0.1} Backpack 
UCHIJA Baubles{1.2.1.0} Baubles 
UCHIJA BiomesOPlenty{5.0.0.2085} Biomes O' Plenty 
UCHIJA bookshelf{1.4.0.291} Bookshelf 
UCHIJA ChestTransporter{2.5.2} Chest Transporter 
UCHIJA DynamicLights{1.4.3} Dynamic Lights 
UCHIJA DynamicLights_onFire{1.0.7} Dynamic Lights Burning Entity Module 
UCHIJA DynamicLights_creepers{1.0.6} Dynamic Lights Creeper Module 
UCHIJA DynamicLights_dropItems{1.1.0} Dynamic Lights EntityItem Module 
UCHIJA DynamicLights_entityClasses{1.0.1} Dynamic Lights Entity Light Module 
UCHIJA DynamicLights_mobEquipment{1.1.0} Dynamic Lights Mob Equipment Light Module 
UCHIJA DynamicLights_flameArrows{1.0.1} Dynamic Lights Fiery Arrows Light Module 
UCHIJA DynamicLights_floodLights{1.0.3} Dynamic Lights Flood Light 
UCHIJA DynamicLights_otherPlayers{1.0.9} Dynamic Lights OtherPlayers Light Module 
UCHIJA DynamicLights_thePlayer{1.1.3} Dynamic Lights Player Light Module 
UCHIJA excore{1.6.2} EXCore 
UCHIJA hopperducts{1.4.8} Hopper Ducts 
UCHIJA mantle{1.10.2-1.0.0.jenkins170} Mantle 
UCHIJA tconstruct{1.10.2-2.4.0.jenkins325} Tinkers' Construct 
UCHIJA immersiveengineering{${version}} Immersive Engineering 
UCHIJA InfernalMobs{1.7.1} Infernal Mobs 
UCHIJA InventoryPets{1.4.8.1} Inventory Pets 
UCHIJA inventorytweaks{1.61-58-a1fd884} Inventory Tweaks 
UCHIJA JEI{3.9.3.253} Just Enough Items 
UCHIJA journeymap{1.10.2-5.2.4} JourneyMap 
UCHIJA levels{r4.1.3} Levels 
UCHIJA RadixCore{1.10.2-2.1.3} RadixCore 
UCHIJA MCA{1.10.2-5.2.3} Minecraft Comes Alive 
UCHIJA progressiveautomation{1.6.51} Progressive Automation 
UCHIJA redstonepaste{1.7.4} Redstone Paste 
UCHIJA icse{1.1.0.0} I Can See Everything 
UCHIJA wawla{2.3.0.202} What Are We Looking At 
Loaded coremods (and transformers): 
GenderLoadingPlugin ([1.10.2]Gender-1.2.5.jar)
com.github.ipixeli.gender.coremod.GenderClassTransformer
NWRTweak (redstonepaste-mc1.9.4-1.7.4.jar)
net.fybertech.nwr.NWRTransformer
DLFMLCorePlugin (DynamicLights-1.10.2.jar)
atomicstryker.dynamiclights.common.DLTransformer
FMLPlugin (InventoryTweaks-1.61-58.jar)
invtweaks.forge.asm.ContainerTransformer
GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.13447 Compatibility Profile Context 16.300.2511.1001' Renderer: 'AMD Radeon R7 200 Series'
Pulsar/tconstruct loaded Pulses: 
- TinkerCommons (Enabled/Forced)
- TinkerWorld (Enabled/Not Forced)
- TinkerTools (Enabled/Not Forced)
- TinkerSmeltery (Enabled/Not Forced)
- TinkerGadgets (Enabled/Not Forced)
- TinkerOredict (Enabled/Forced)
- TinkerIntegration (Enabled/Forced)
- TinkerFluids (Enabled/Forced)
- TinkerMaterials (Enabled/Forced)

OptiFine Version: OptiFine_1.10.2_HD_U_C3
Render Distance Chunks: 20
Mipmaps: 4
Anisotropic Filtering: 1
Antialiasing: 0
Multitexture: false
Shaders: null
OpenGlVersion: 4.5.13447 Compatibility Profile Context 16.300.2511.1001
OpenGlRenderer: AMD Radeon R7 200 Series
OpenGlVendor: ATI Technologies Inc.
CpuCount: 8
Ellpeck commented 8 years ago

This isn't a problem on my side, however it is one of the byproducts of bundled APIs. An old version of the CoFH Energy API was still using the ItemStack.stackTagCompound variable here instead of the getter method, and some mod appears to have bundled that outdated API.

In the future, it'd be best to just tell the people to remove mods other than JEI and Actually Additions one by one (or in small batches) with this specific issue until it is gone to locate what mod causes it.

mezz commented 8 years ago

Thanks, will do. In the meantime you should add support for Forge's new CapabilityEnergy and we can all stop bundling RF finally (I just recently removed it from the Forestry jar).

Ellpeck commented 8 years ago

I'm not really fond of the new capability system, mainly as there isn't any documentation on if it's a push or pull system, if it actually is supposed to have the same values as RF, what it's really properly called (I'm not sticking with the laughable 'Forge Units'), and stuff like that.

I just think Tesla is the way better alternative at this point, but if more people start suggesting it and/or it gets popular, I will probably switch to it and stop using RF (but still continue to use Tesla as well).

mezz commented 8 years ago

I think it's appropriate to treat the Forge capability just like Tesla and call it whatever you like. I'm just using it as my "main" power system so that I'm not depending on RF being there any more. I still support Tesla but I don't want it to be a hard dependency.

Ellpeck commented 8 years ago

Yea, Tesla isn't a hard dependency for me either because the thought of having a seperate library mod that I didn't even create as a dependency makes me cringe :D

Maybe I'll just stop supporting RF at some point, but seeing as most people who use the mod mainly use its RF side of things together with other mods, I'm definitely not going to switch right away but rather wait a couple of weeks until the system really gets established before removing RF entirely. But I might just have a smooth transition where I implement the Forge system while still having RF in there too.

mezz commented 8 years ago

I'm definitely doing the smooth transition, some mods will take a long time to move on. I figure once EnderIO and Immersive Engineering have support for Forge's Energy then I can probably drop RF entirely, since they are the big power-transferring mods right now.

Ellpeck commented 8 years ago

Oh, so are you currently just using @Optional on everything that implements RF?

mezz commented 8 years ago

Yep exactly. I'm abusing Java 8 to implement RF using default interfaces to make it easier, you can see here if you're curious: https://github.com/ForestryMC/ForestryMC/tree/mc-1.10/src/main/java/forestry/energy/compat/rf

Ellpeck commented 8 years ago

Oh that's interesting, I will definitely take a look at that later. Thanks :)