ClassNotFoundException with Fabric 0.12+
Blyrexx opened this issue ยท 3 comments
When using the Fabric Loader 0.12 or higher, this warning is printed in the log on startup:
[15:54:57] [main/WARN]: Catching java.lang.ClassNotFoundException: grondag/canvas/terrain/region/input/InputRegion
java.lang.ClassNotFoundException: grondag/canvas/terrain/region/input/InputRegion
at net.fabricmc.loader.impl.launch.knot.MixinServiceKnot.getClassBytes(MixinServiceKnot.java:65) ~[fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.launch.knot.MixinServiceKnot.getClassNode(MixinServiceKnot.java:76) ~[fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.launch.knot.MixinServiceKnot.getClassNode(MixinServiceKnot.java:71) ~[fabric-loader-0.12.0.jar:?]
at org.spongepowered.asm.mixin.transformer.ClassInfo.forName(ClassInfo.java:2022) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinInfo.getTargetClass(MixinInfo.java:1018) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinInfo.readTargetClasses(MixinInfo.java:1008) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinInfo.parseTargets(MixinInfo.java:896) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinConfig.prepareMixins(MixinConfig.java:869) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinConfig.prepare(MixinConfig.java:781) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:539) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:462) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:438) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:290) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) [sponge-mixin-0.10.2+mixin.0.8.4.jar:0.10.2+mixin.0.8.4]
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:222) [fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:133) [fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:155) [fabric-loader-0.12.0.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) [?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:467) [?:?]
at net.fabricmc.loader.impl.util.DefaultLanguageAdapter.create(DefaultLanguageAdapter.java:50) [fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.entrypoint.EntrypointStorage$NewEntry.getOrCreate(EntrypointStorage.java:117) [fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:53) [fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke0(EntrypointUtils.java:47) [fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.entrypoint.EntrypointUtils.invoke(EntrypointUtils.java:35) [fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:134) [fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:68) [fabric-loader-0.12.0.jar:?]
at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.12.0.jar:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210) [NewLaunch.jar:?]
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245) [NewLaunch.jar:?]
at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?]
at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?]
[15:54:57] [main/WARN]: Error loading class: grondag/canvas/terrain/region/input/InputRegion (java.lang.ClassNotFoundException: grondag/canvas/terrain/region/input/InputRegion)
It's just a warning so you can ignore it. For the reason why this appeared, unlike for example the BiomeRetriever class which safely checks and catches ClassNotFoundException type when a mod is not found such as in this example canvas, I guess this comes from InputRegionMixin which does not get the same treatment from Fabric side when applying the mixin. Pepper may know of a nice way to handle this though.
This is only a warning and has no effect on the functionality of the mod. Fixing this would require adding a mixin plugin which I have been holding off on for the previously stated reason, but because the warning is now around 20 lines (as opposed to just one with Fabric Loader 0.11.x), it may be worth adding said plugin.