AztechMC / Modern-Industrialization

Modern industrial mod for Minecraft.
https://www.curseforge.com/minecraft/mc-mods/modern-industrialization
MIT License
156 stars 87 forks source link

Crash on local world java.lang.NoClassDefFoundError #112

Closed Orygeunik closed 3 years ago

Orygeunik commented 3 years ago

Found crash after commit a5864abae41bfc3fd2d43c8d32af80af1b9ea281 on a single player game

Problem cause on line https://github.com/AztechMC/Modern-Industrialization/blob/master/src/main/java/aztech/modern_industrialization/misc/version/VersionEvents.java#L58

Crash log:

---- Minecraft Crash Report ----
// There are four lights!

Time: 22.08.2021, 21:48
Description: Exception in server tick loop

java.lang.NoClassDefFoundError: com/squareup/moshi/JsonDataException
    at com.therandomlabs.curseapi.forgesvc.ForgeSvcProvider.<clinit>(ForgeSvcProvider.java:72)
    at com.therandomlabs.curseapi.CurseAPI.<clinit>(CurseAPI.java:102)
    at aztech.modern_industrialization.misc.version.VersionEvents.lambda$init$0(VersionEvents.java:58)
    at me.shedaniel.cloth.api.common.events.v1.PlayerJoinCallback.lambda$null$0(PlayerJoinCallback.java:38)
    at net.minecraft.class_3324.handler$bfl001$onPlayerConnect(class_3324.java:3452)
    at net.minecraft.class_3324.method_14570(class_3324.java:276)
    at net.minecraft.class_3248.method_33800(class_3248.java:129)
    at net.minecraft.class_3248.method_14384(class_3248.java:117)
    at net.minecraft.class_3248.redirect$bof000$handlePlayerJoin(class_3248.java:563)
    at net.minecraft.class_3248.method_18785(class_3248.java:67)
    at net.minecraft.class_2535.method_10754(class_2535.java:234)
    at net.minecraft.class_3242.method_14357(class_3242.java:183)
    at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:902)
    at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:831)
    at net.minecraft.class_1132.method_3748(class_1132.java:96)
    at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:697)
    at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:270)
    at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.lang.ClassNotFoundException: com.squareup.moshi.JsonDataException
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
    at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:175)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
    ... 18 more

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

-- Head --
Thread: Server thread
Stacktrace:
    at com.therandomlabs.curseapi.forgesvc.ForgeSvcProvider.<clinit>(ForgeSvcProvider.java:72)
    at com.therandomlabs.curseapi.CurseAPI.<clinit>(CurseAPI.java:102)
    at aztech.modern_industrialization.misc.version.VersionEvents.lambda$init$0(VersionEvents.java:58)
    at me.shedaniel.cloth.api.common.events.v1.PlayerJoinCallback.lambda$null$0(PlayerJoinCallback.java:38)
    at net.minecraft.class_3324.handler$bfl001$onPlayerConnect(class_3324.java:3452)
    at net.minecraft.class_3324.method_14570(class_3324.java:276)
    at net.minecraft.class_3248.method_33800(class_3248.java:129)
    at net.minecraft.class_3248.method_14384(class_3248.java:117)
    at net.minecraft.class_3248.redirect$bof000$handlePlayerJoin(class_3248.java:563)
    at net.minecraft.class_3248.method_18785(class_3248.java:67)
    at net.minecraft.class_2535.method_10754(class_2535.java:234)
    at net.minecraft.class_3242.method_14357(class_3242.java:183)
    at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:902)

-- Patchouli Book Info --
Details:
    Patchouli open book context: n/a
Stacktrace:
    at net.minecraft.class_128.handler$bec000$fillPatchouliContext(class_128.java:521)
    at net.minecraft.class_128.<init>(class_128.java:37)
    at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:717)
    at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:270)
    at java.base/java.lang.Thread.run(Thread.java:831)

-- System Details --
Details:
    Minecraft Version: 1.17.1
    Minecraft Version ID: 1.17.1
    Operating System: Windows 10 (amd64) version 10.0
    Java Version: 16, Oracle Corporation
    Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Oracle Corporation
    Memory: 5634368288 bytes (5373 MiB) / 8187281408 bytes (7808 MiB) up to 8589934592 bytes (8192 MiB)
    CPUs: 12
    Processor Vendor: GenuineIntel
    Processor Name: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
    Identifier: Intel64 Family 6 Model 158 Stepping 10
    Microarchitecture: Coffee Lake
    Frequency (GHz): 3,70
    Number of physical packages: 1
    Number of physical CPUs: 6
    Number of logical CPUs: 12
    Graphics card #0 name: NVIDIA GeForce GTX 1660 Ti
    Graphics card #0 vendor: NVIDIA (0x10de)
    Graphics card #0 VRAM (MB): 4095,00
    Graphics card #0 deviceId: 0x2182
    Graphics card #0 versionInfo: DriverVersion=30.0.14.7168
    Memory slot #0 capacity (MB): 8192,00
    Memory slot #0 clockSpeed (GHz): 3,00
    Memory slot #0 type: DDR4
    Memory slot #1 capacity (MB): 8192,00
    Memory slot #1 clockSpeed (GHz): 3,00
    Memory slot #1 type: DDR4
    Virtual memory max (MB): 30539,02
    Virtual memory used (MB): 27364,73
    Swap memory total (MB): 14212,86
    Swap memory used (MB): 1291,09
    JVM Flags: 10 total; -Xmn128M -Xmx8192M -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
    Fabric Mods: 
        adorn: Adorn 2.1.3+1.17.1
        advanced_runtime_resource_pack: Runtime Resource Pack 0.3.10
        advancements-enlarger: Advancements Enlarger 0.2.4
        architectury: Architectury 2.3.24
        betterbeds: Better Beds 1.2.0
        betterdroppeditems: Better Dropped Items 1.3.0-1.17
        bitsandchisels: BitsAndChisels 2.5.3
        blue_endless_jankson: jankson 1.2.1
        cardinal-components-base: Cardinal Components API (base) 3.0.1
        cardinal-components-entity: Cardinal Components API (entities) 3.0.1
        cardinal-components-item: Cardinal Components API (items) 3.0.1
        clear-skies: Clear Skies 1.5.70
        cloth-armor-api-v1: Cloth Armor API v1 1.5.47
        cloth-basic-math: Cloth Basic Math 0.5.1
        cloth-common-events-v1: Cloth Common Events v1 1.5.47
        cloth-config2: Cloth Config v5 5.0.38
        com_electronwill_night-config_core: core 3.6.3
        com_electronwill_night-config_toml: toml 3.6.3
        com_github_therandomlabs_curseapi: CurseAPI master-SNAPSHOT
        consistency_plus: Consistency Plus 0.4.0
        couplings: Couplings 1.5.0+1.17
        croptopia: Croptopia 1.6.1
        extragenerators: Extra Generators 1.0.6-BETA+1.17
        fabric: Fabric API 0.38.0+1.17
        fabric-api-base: Fabric API Base 0.3.0+a02b446313
        fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.3.0+2f75c6ce18
        fabric-biome-api-v1: Fabric Biome API (v1) 3.1.12+3fe74aa118
        fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.5+a02b446318
        fabric-command-api-v1: Fabric Command API (v1) 1.1.3+5ab9934c18
        fabric-commands-v0: Fabric Commands (v0) 0.2.2+92519afa18
        fabric-containers-v0: Fabric Containers (v0) 0.1.12+a02b446318
        fabric-content-registries-v0: Fabric Content Registries (v0) 0.2.4+2e8bd82f18
        fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.5+be9da31018
        fabric-dimensions-v1: Fabric Dimensions API (v1) 2.0.11+6cefd57718
        fabric-entity-events-v1: Fabric Entity Events (v1) 1.1.0+a02b446318
        fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.9+a722d8c018
        fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.1+92519afa18
        fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.7+6cefd57718
        fabric-item-api-v1: Fabric Item API (v1) 1.2.4+a02b446318
        fabric-item-groups-v0: Fabric Item Groups (v0) 0.2.10+b7ab612118
        fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.4+a02b446318
        fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.2+36b77c3e18
        fabric-language-kotlin: Fabric Language Kotlin 1.6.2+kotlin.1.5.20
        fabric-language-scala: Fabric Language Scala 1.1.0+scala.2.13.6
        fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 1.4.4+a02b446318
        fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.4+a02b446318
        fabric-mining-levels-v0: Fabric Mining Levels (v0) 0.1.3+92519afa18
        fabric-models-v0: Fabric Models (v0) 0.3.0+a02b446318
        fabric-networking-api-v1: Fabric Networking API (v1) 1.0.13+2e8bd82f18
        fabric-networking-blockentity-v0: Fabric Networking Block Entity (v0) 0.2.11+a02b446318
        fabric-networking-v0: Fabric Networking (v0) 0.3.2+92519afa18
        fabric-object-builder-api-v1: Fabric Object Builder API (v1) 1.10.9+b7ab612118
        fabric-object-builders-v0: Fabric Object Builders (v0) 0.7.3+a02b446318
        fabric-particles-v1: Fabric Particles (v1) 0.2.4+a02b446318
        fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.7.10+e2961fee18
        fabric-renderer-api-v1: Fabric Renderer API (v1) 0.4.4+5f02c96918
        fabric-renderer-indigo: Fabric Renderer - Indigo 0.4.8+a02b446318
        fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.0+a02b446318
        fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.1.5+a02b446318
        fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 0.1.13+a02b446318
        fabric-rendering-v0: Fabric Rendering (v0) 1.1.2+92519afa18
        fabric-rendering-v1: Fabric Rendering (v1) 1.7.0+2e8bd82f18
        fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.4.8+a00e834b18
        fabric-screen-api-v1: Fabric Screen API (v1) 1.0.4+155f865c18
        fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.1.8+a02b446318
        fabric-structure-api-v1: Fabric Structure API (v1) 1.1.13+5ab9934c18
        fabric-tag-extensions-v0: Fabric Tag Extensions (v0) 1.2.0+3fe74aa118
        fabric-textures-v0: Fabric Textures (v0) 1.0.6+a02b446318
        fabric-tool-attribute-api-v1: Fabric Tool Attribute API (v1) 1.2.12+b7ab612118
        fabric-transfer-api-v1: Fabric Transfer API (v1) 1.1.0+3fe74aa118
        fabricloader: Fabric Loader 0.11.6
        fake-player-api: Fake Player API 0.2.0
        fallingleaves: Falling Leaves 1.7.3+1.17.1
        fallingtree: FallingTree 2.13.0
        fasttransferlib: Fast Transfer Lib 0.5.6
        fiber: fiber 0.23.0-2
        fluidtank: Fluid Tank 17.1.1-fabric
        glassdoor: Glass Doors 1.5.0-1.16
        imm_ptl_core: Immersive Portals Core 0.20
        immersive_portals: Immersive Portals 0.20
        indrev: Industrial Revolution 1.10.0-alpha.12
        inventorysorter: Inventory Sorter 1.7.9-1.17
        ironchests: Iron Chests for Fabric 1.4.1
        itemmodelfix: Item Model Fix 1.0.2+1.17
        jankson: Jankson 3.0.1+j1.2.0
        java: OpenJDK 64-Bit Server VM 16
        kyrptconfig: Kytpt Config 1.1.10-1.17
        lambdabettergrass: LambdaBetterGrass 1.2.0+1.17
        libblockattributes: LibBlockAttributes 0.9.0
        libblockattributes_core: LibBlockAttributes (Core) 0.9.0
        libblockattributes_fluids: LibBlockAttributes (Fluids) 0.9.0
        libblockattributes_items: LibBlockAttributes (Items) 0.9.0
        libcd: LibCapableData 3.0.3+1.16.3
        libgui: LibGui 4.1.6+1.17.1
        libninepatch: LibNinePatch 1.1.0
        lithium: Lithium 0.7.3
        magna: Magna 1.5.5-1.17-pre4
        megane: megane 5.2.0
        megane-base: megane-base 5.2.0
        megane-extra-generators: megane-extra-generators 5.2.0+1.0.5-BETA-1.17
        megane-fabric-transfer: megane-fabric-transfer 5.2.0+1.0.0-3fe3c3f518
        megane-fast-transfer-lib: megane-fast-transfer-lib 5.2.0+0.4.2
        megane-industrial-revolution: megane-industrial-revolution 5.2.0+1.10.0-alpha.4
        megane-lib-block-attributes: megane-lib-block-attributes 5.2.0+0.9.0
        megane-modern-industrialization: megane-modern-industrialization 5.2.0+0.5.6
        megane-runtime: megane-runtime 5.2.0
        megane-team-reborn-energy: megane-team-reborn-energy 5.2.0+0.1.1
        megane-tech-reborn: megane-tech-reborn 5.2.0+5.0.2-beta-build.38
        megane-vanilla: megane-vanilla 5.2.0+1.17.1
        minecraft: Minecraft 1.17.1
        modern_industrialization: Modern Industrialization git-9b81648
        modmenu: Mod Menu 2.0.5
        org_aperlambda_lambdajcommon: lambdajcommon 1.8.1
        org_jetbrains_kotlin_kotlin-reflect: kotlin-reflect 1.5.20
        org_jetbrains_kotlin_kotlin-stdlib: kotlin-stdlib 1.5.20
        org_jetbrains_kotlin_kotlin-stdlib-jdk7: kotlin-stdlib-jdk7 1.5.20
        org_jetbrains_kotlin_kotlin-stdlib-jdk8: kotlin-stdlib-jdk8 1.5.20
        org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm: kotlinx-coroutines-core-jvm 1.5.0
        org_jetbrains_kotlinx_kotlinx-coroutines-jdk8: kotlinx-coroutines-jdk8 1.5.0
        org_jetbrains_kotlinx_kotlinx-serialization-core-jvm: kotlinx-serialization-core-jvm 1.2.1
        org_jetbrains_kotlinx_kotlinx-serialization-json-jvm: kotlinx-serialization-json-jvm 1.2.1
        particlerain: Particle Rain 1.4.1
        patchouli: Patchouli 1.17-54-FABRIC
        q_misc_util: A Miscellaneous Utility Library from qouteall 0.20
        reborncore: Reborn Core 5.0.6-beta+build.94
        roughlyenoughitems: Roughly Enough Items 6.0.268-alpha
        snowundertrees: Snow Under Trees 1.0.0
        spruceui: SpruceUI 3.1.0+1.17
        stacc: Stacc 1.2.3
        step-height-entity-attribute: Step Height Entity Attribute 1.0.0
        team_reborn_energy: Energy 0.1.1
        techreborn: Tech Reborn 5.0.6-beta+build.94
        tooltipfix: ToolTip Fix 1.0.3-1.16
        waystones: Waystones 2.0.4-beta
        wthit: wthit 3.8.1
        xaeroworldmap: Xaero's World Map 1.16.1
        xp_storage: XP Storage 1.4.2+1.17.1
        xps: Xp Obelisk 0.2.0_for_1.17.x_Fabric
    Player Count: 1 / 8; [class_3222['Orygeunik'/265, l='ServerWorld minecraft:overworld Новый мир (test)', x=-5.29, y=63.00, z=35.80]]
    Data Packs: vanilla, Fabric Mods
    Type: Integrated Server (map_client.txt)
    Is Modded: Definitely; Client brand changed to 'fabric'

World to reproduce Новый мир (test).zip

Azercoco commented 3 years ago

The next commit (aab0fd2) should have fixed this issue ... Probabbly ... Please tell if this happen again.

Orygeunik commented 3 years ago

Nope, taked version from 9b81648bbc4eea4cd522c8fa476cf9b5afcb6281 and from build artifactory

this version have problem Modern-Industrialization-git-9b81648 also i manual rebuild project from commit and problem still exist

At this moment i tring to fix it

Azercoco commented 3 years ago

How did you build the mod exactly ?

Orygeunik commented 3 years ago

Actual log https://gist.github.com/Orygeunik/19b8d06e871aea48ca57fba1734a0b2e

Pay attention on line https://gist.github.com/Orygeunik/19b8d06e871aea48ca57fba1734a0b2e#file-actual-log-L291

it's version from artifactory

Orygeunik commented 3 years ago

How did you build the mod exactly ?

As well as github action: ./gradlew build (no cache, full rebuild on unix machine)

For quick communicate you can tag me directly on discord server (the same nick) or private message

Azercoco commented 3 years ago

Could you retry with the latest commit ?

Orygeunik commented 3 years ago

I have tried already with same code

catch (NoClassDefFoundError e) {
                        ModernIndustrialization.LOGGER.error(e.getMessage(), e);
                    }

image

But it's no impact

Azercoco commented 3 years ago

Oh crap ... well I will investigate this tomorrow

Orygeunik commented 3 years ago

Ok, so strange from debug in IntelliJ IDEA not throw error and code Curse API.files(405388) works perfectly, but if game run from launcher - error throws... When run at server no error, when connect to server - no error. Only with local game, from launcher, at that error throws when tried to throw JsonDataException from https://github.com/TheRandomLabs/CurseAPI/blob/cdc5d48d5e51e775163c5bb71a1c8d3e7b6421ea/src/main/java/com/therandomlabs/curseapi/forgesvc/ForgeSvcProvider.java#L72

Direct icnluding moshi and okhttp (maybe i incorrect do this, java not my profile language). All it seems like a runtime depency not loaded correct from packed jar.

Azercoco commented 3 years ago

Fixed with 02ebe1527b1c4ccf3ad91aab0468fea4cf6bf61e.

Orygeunik commented 3 years ago

Oh... so.. well it's radical... but it's fixed the problem. On local world bug not reproduced and on MP too Thanks!

Azercoco commented 3 years ago

It was quciker to reimplement it ourselves than debugging this mess.