Pokécube Resources

Pokécube Resources

913 Downloads

ClassNotFoundException on worldgen with Pokecube Core 5.2.10+ & Recurrent Complex or Ruins

luke-bravenboer opened this issue · 8 comments

commented

Issue Description:

Cannot generate new worlds with Pokecube Core version 5.2.10 onwards if Recurrent Complex (or Ruins, or presumably any other similar type of mod) is also installed.
Have been testing extensively to track down the source of the issue; easily replicable on all versions of Pokecube ever since June 26 (Core 5.2.10 / Revival 5.0.9 / thutcore 4.4.2).
(Version of recurrent complex doesn't seem to matter.)

Found this interesting entry in the changelog for the next available version of Pokecube Revival (5.1.0)...

Fixes some issues with mod load orders causing random class not found crashes pointed at other mods.

... and I can confirm that this update does not fix this particular issue.

Appears to affect all worldgen, not just the generation of new worlds, as I was ocassionally encountering the exception in an existing world before I tracked down the source- though creating a new world is the quickest & most reliable way to replicate the issue.

List of mods used to replicate issue: (though all the latest versions are still affected at the time of writing)

  • IvToolkit-1.3.3.jar
  • Pokecube Core-5.2.10.jar
  • Pokecube Mobs-2.4.11.b.jar
  • Pokecube Revival-5.0.9.jar
  • RecurrentComplex-1.4.4-1.11.jar
  • thutcore-4.4.2.jar

What happens:

Fatal exception during world gen- Pokecube appears to be interfering with biome decoration. Stack trace appears to be targeting recurrent complex, but disabling Pokecube fixes the issue & you can see the exact same error if you use other structure generation mods, such as 'Ruins'.
Might be a red herring, but it seems a bit suspect that it's trying to load a minecraft 'launchwrapper' jar that's versioned "1.12":

[11:53:13] [Server thread/INFO]: Preparing start region for level 0
[11:53:13] [Server thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.event.terraingen.DecorateBiomeEvent$Decorate@1c143b1e:
java.lang.NoClassDefFoundError: ivorius/reccomplex/events/StructureGenerationEventLite$Suggest
	at ivorius.reccomplex.world.gen.feature.decoration.RCBiomeDecorator.generateSurface(RCBiomeDecorator.java:141) ~[RCBiomeDecorator.class:?]
	at ivorius.reccomplex.world.gen.feature.decoration.RCBiomeDecorator.trySurface(RCBiomeDecorator.java:129) ~[RCBiomeDecorator.class:?]
	at ivorius.reccomplex.world.gen.feature.decoration.RCBiomeDecorator.doDecorate(RCBiomeDecorator.java:111) ~[RCBiomeDecorator.class:?]
	at ivorius.reccomplex.world.gen.feature.decoration.RCBiomeDecorator.doDecorate(RCBiomeDecorator.java:68) ~[RCBiomeDecorator.class:?]
	at ivorius.reccomplex.world.gen.feature.decoration.RCBiomeDecorator.decorate(RCBiomeDecorator.java:48) ~[RCBiomeDecorator.class:?]
	at ivorius.reccomplex.events.handlers.RCTerrainGenEventHandler.onDecoration(RCTerrainGenEventHandler.java:111) ~[RCTerrainGenEventHandler.class:?]
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_108_RCTerrainGenEventHandler_onDecoration_Decorate.invoke(.dynamic) ~[?:?]
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:185) [EventBus.class:?]
	at net.minecraftforge.event.terraingen.TerrainGen.decorate(TerrainGen.java:61) [TerrainGen.class:?]
	at net.minecraft.world.biome.BiomeDecorator.func_150513_a(BiomeDecorator.java:129) [aki.class:?]
	at net.minecraft.world.biome.BiomeDecorator.func_180292_a(BiomeDecorator.java:88) [aki.class:?]
	at net.minecraft.world.biome.Biome.func_180624_a(Biome.java:229) [akf.class:?]
	at net.minecraft.world.biome.BiomeForest.func_180624_a(BiomeForest.java:99) [akp.class:?]
	at net.minecraft.world.gen.ChunkProviderOverworld.func_185931_b(ChunkProviderOverworld.java:464) [avx.class:?]
	at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1001) [auo.class:?]
	at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:982) [auo.class:?]
	at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:158) [lv.class:?]
	at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:302) [MinecraftServer.class:?]
	at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:106) [cch.class:?]
	at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:120) [cch.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:442) [MinecraftServer.class:?]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
Caused by: java.lang.ClassNotFoundException: ivorius.reccomplex.events.StructureGenerationEventLite$Suggest
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 23 more
Caused by: java.lang.NoClassDefFoundError: ivorius/reccomplex/events/StructureGenerationEventLite
	at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_121]
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:1.8.0_121]
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.8.0_121]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 23 more
Caused by: java.lang.ClassNotFoundException: ivorius.reccomplex.events.StructureGenerationEventLite
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_121]
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:1.8.0_121]
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.8.0_121]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 23 more
[11:53:13] [Server thread/ERROR] [FML]: Index: 1 Listeners:
[11:53:13] [Server thread/ERROR] [FML]: 0: NORMAL
[11:53:13] [Server thread/ERROR] [FML]: 1: ASM: ivorius.reccomplex.events.handlers.RCTerrainGenEventHandler@4c664bd4 onDecoration(Lnet/minecraftforge/event/terraingen/DecorateBiomeEvent$Decorate;)V
[11:53:13] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoClassDefFoundError: ivorius/reccomplex/events/StructureGenerationEventLite$Suggest
	at ivorius.reccomplex.world.gen.feature.decoration.RCBiomeDecorator.generateSurface(RCBiomeDecorator.java:141) ~[RCBiomeDecorator.class:?]
	at ivorius.reccomplex.world.gen.feature.decoration.RCBiomeDecorator.trySurface(RCBiomeDecorator.java:129) ~[RCBiomeDecorator.class:?]
	at ivorius.reccomplex.world.gen.feature.decoration.RCBiomeDecorator.doDecorate(RCBiomeDecorator.java:111) ~[RCBiomeDecorator.class:?]
	at ivorius.reccomplex.world.gen.feature.decoration.RCBiomeDecorator.doDecorate(RCBiomeDecorator.java:68) ~[RCBiomeDecorator.class:?]
	at ivorius.reccomplex.world.gen.feature.decoration.RCBiomeDecorator.decorate(RCBiomeDecorator.java:48) ~[RCBiomeDecorator.class:?]
	at ivorius.reccomplex.events.handlers.RCTerrainGenEventHandler.onDecoration(RCTerrainGenEventHandler.java:111) ~[RCTerrainGenEventHandler.class:?]
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_108_RCTerrainGenEventHandler_onDecoration_Decorate.invoke(.dynamic) ~[?:?]
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:185) ~[EventBus.class:?]
	at net.minecraftforge.event.terraingen.TerrainGen.decorate(TerrainGen.java:61) ~[TerrainGen.class:?]
	at net.minecraft.world.biome.BiomeDecorator.func_150513_a(BiomeDecorator.java:129) ~[aki.class:?]
	at net.minecraft.world.biome.BiomeDecorator.func_180292_a(BiomeDecorator.java:88) ~[aki.class:?]
	at net.minecraft.world.biome.Biome.func_180624_a(Biome.java:229) ~[akf.class:?]
	at net.minecraft.world.biome.BiomeForest.func_180624_a(BiomeForest.java:99) ~[akp.class:?]
	at net.minecraft.world.gen.ChunkProviderOverworld.func_185931_b(ChunkProviderOverworld.java:464) ~[avx.class:?]
	at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1001) ~[auo.class:?]
	at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:982) ~[auo.class:?]
	at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:158) ~[lv.class:?]
	at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:302) ~[MinecraftServer.class:?]
	at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:106) ~[cch.class:?]
	at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:120) ~[cch.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:442) [MinecraftServer.class:?]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
Caused by: java.lang.ClassNotFoundException: ivorius.reccomplex.events.StructureGenerationEventLite$Suggest
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 23 more
Caused by: java.lang.NoClassDefFoundError: ivorius/reccomplex/events/StructureGenerationEventLite
	at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_121]
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:1.8.0_121]
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.8.0_121]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 23 more
Caused by: java.lang.ClassNotFoundException: ivorius.reccomplex.events.StructureGenerationEventLite
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_121]
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[?:1.8.0_121]
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:1.8.0_121]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 23 more
[11:53:13] [Server thread/INFO]: Stopping server

What you expected to happen:

New worlds to actually generate.

Steps to reproduce:

  1. Install the latest versions of Pokecube, Recurrent Complex & dependencies
  2. Generate a new world
  3. The above ClassNotFoundException is thrown while the spawn area is being generated

Affected Versions:

  • Pokecube Core: 5.2.10 +
  • Pokecube Revival (if applicable): 5.0.9 +
  • Pokecube Mobs (if applicable): 2.4.11 +
  • Minecraft: 1.11.2
  • Forge: 1.11.2-13.20.0.2310
commented

hmm, I will look into both of them then, Ruins was working in my last tests, but I believe those were for 1.12, so it possibly could be broken in 1.11.2, It could also be a result in the new version of forge, I think my stuff for 1.11.2 is still compiling for one of the earlier "recommended" builds for it.

I will definitely try to get this looked into tomorrow.

commented

this will be fixed in the next version, seems some of the stuff needed for the registry changes in forge had messed up dependancy order, I have fixed that.

commented

Fixed in Pokecube Revival 5.1.6

commented

Seems to be an issue with the recurrent complex support, I will see if I can look into this. Ruins and Lost Cities should still be fine, as this is just an issue with the recurrent complex API which I was using.

commented

I don't think so- unless this is actually a separate error, Ruins definitely does cause the issue as well. (Been isolating all of my mods for the past couple days to figure out what was causing this error, so there's a good level of certainty haha)

Here's the stack trace I get after removing reccomplex+ivtoolkit & adding Ruins instead:

[15:00:43] [Server thread/INFO]: Preparing start region for level 0
[15:00:43] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoClassDefFoundError: atomicstryker/ruins/common/EventRuinTemplateSpawn
	at atomicstryker.ruins.common.RuinsMod.initWorldHandle(RuinsMod.java:303) ~[RuinsMod.class:?]
	at atomicstryker.ruins.common.RuinsMod.getWorldHandle(RuinsMod.java:238) ~[RuinsMod.class:?]
	at atomicstryker.ruins.common.RuinsMod.access$200(RuinsMod.java:43) ~[RuinsMod.class:?]
	at atomicstryker.ruins.common.RuinsMod$RuinsWorldGenerator.generate(RuinsMod.java:175) ~[RuinsMod$RuinsWorldGenerator.class:?]
	at net.minecraftforge.fml.common.registry.GameRegistry.generateWorld(GameRegistry.java:172) ~[GameRegistry.class:?]
	at net.minecraft.world.chunk.Chunk.func_186034_a(Chunk.java:1002) ~[auo.class:?]
	at net.minecraft.world.chunk.Chunk.func_186030_a(Chunk.java:982) ~[auo.class:?]
	at net.minecraft.world.gen.ChunkProviderServer.func_186025_d(ChunkProviderServer.java:158) ~[lv.class:?]
	at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:302) ~[MinecraftServer.class:?]
	at net.minecraft.server.integrated.IntegratedServer.func_71247_a(IntegratedServer.java:106) ~[cch.class:?]
	at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:120) ~[cch.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:442) [MinecraftServer.class:?]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
Caused by: java.lang.ClassNotFoundException: atomicstryker.ruins.common.EventRuinTemplateSpawn
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 13 more
[15:00:43] [Thread-13/INFO]: [STDERR]: java.lang.NoClassDefFoundError: atomicstryker/ruins/common/EventRuinTemplateSpawn
[15:00:43] [Thread-13/INFO]: [STDERR]: 	at atomicstryker.ruins.common.FileHandler.addRuins(FileHandler.java:343)
[15:00:43] [Thread-13/INFO]: [STDERR]: 	at atomicstryker.ruins.common.FileHandler.access$300(FileHandler.java:21)
[15:00:43] [Thread-13/INFO]: [STDERR]: 	at atomicstryker.ruins.common.FileHandler$LoaderThread.run(FileHandler.java:107)
[15:00:43] [Thread-13/INFO]: [STDERR]: Caused by: java.lang.ClassNotFoundException: atomicstryker.ruins.common.EventRuinTemplateSpawn
[15:00:43] [Thread-13/INFO]: [STDERR]: 	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101)
[15:00:43] [Thread-13/INFO]: [STDERR]: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[15:00:43] [Thread-13/INFO]: [STDERR]: 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[15:00:43] [Thread-13/INFO]: [STDERR]: 	... 3 more
[15:00:43] [Server thread/INFO]: Stopping server
commented

For completion's sake / to save you some debugging time, I've gone and tested with the latest version of The Lost Cities, which manages to generate a 'Lost Cities'-type world just fine- looks like it's only affecting Recurrent Complex & Ruins

commented

Shoot, you work fast! Tyvm for your dedication :) 👍

commented

no problem, whenever I actually get around to doing the mod stuff, I can usually get anything that actually makes a crash report fixed quite quickly, it is bugs that don't give crash reports, and that people don't have specific instructions on how to replicate that I have a hard time fixing.

If you find anymore issues, let me know, and I will try to fix them.