ConfigAnytime

ConfigAnytime

2M Downloads

Using `Configuration` in mixin plugin causing failed with mods mixin into `Configuration`

SettingDust opened this issue ยท 5 comments

commented

For instance https://github.com/friendlyhj/ZenUtils/blob/master/src/main/java/youyihj/zenutils/impl/mixin/vanilla/VanillaMixinPlugin.java#L47

Error:

[15:40:18] [main/ERROR] [LaunchWrapper]: Unable to launch
java.lang.ClassNotFoundException: net.minecraft.client.main.Main
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
	at java.lang.Class.forName0(Native Method) ~[?:1.8.0_60]
	at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_60]
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:131) [launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_60]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_60]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_60]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_60]
	at oolloo.jlw.Wrapper.invokeMain(Wrapper.java:110) [JavaWrapper.jar:?]
	at oolloo.jlw.Wrapper.main(Wrapper.java:103) [JavaWrapper.jar:?]
Caused by: java.lang.NoClassDefFoundError: net/minecraftforge/common/config/Configuration
	at com.cleanroommc.configanytime.ConfigAnytime.<clinit>(ConfigAnytime.java:33) ~[ConfigAnytime.class:?]
	at youyihj.zenutils.impl.core.Configuration.<clinit>(Configuration.java:15) ~[Configuration.class:?]
	at youyihj.zenutils.impl.mixin.vanilla.VanillaMixinPlugin.acceptTargets(VanillaMixinPlugin.java:47) ~[VanillaMixinPlugin.class:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:577) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:476) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:452) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:304) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:240) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:208) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.Proxy.transform(Proxy.java:71) ~[!mixinbooter-10.2.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
	... 12 more
Caused by: java.lang.ClassNotFoundException: net.minecraftforge.common.config.Configuration
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
	at com.cleanroommc.configanytime.ConfigAnytime.<clinit>(ConfigAnytime.java:33) ~[ConfigAnytime.class:?]
	at youyihj.zenutils.impl.core.Configuration.<clinit>(Configuration.java:15) ~[Configuration.class:?]
	at youyihj.zenutils.impl.mixin.vanilla.VanillaMixinPlugin.acceptTargets(VanillaMixinPlugin.java:47) ~[VanillaMixinPlugin.class:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:577) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:476) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:452) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:304) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:240) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:208) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.Proxy.transform(Proxy.java:71) ~[!mixinbooter-10.2.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
	... 12 more
Caused by: org.spongepowered.asm.mixin.transformer.throwables.ReEntrantTransformerError: Re-entrance error.
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:366) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:240) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:208) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.Proxy.transform(Proxy.java:71) ~[!mixinbooter-10.2.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60]
	at com.cleanroommc.configanytime.ConfigAnytime.<clinit>(ConfigAnytime.java:33) ~[ConfigAnytime.class:?]
	at youyihj.zenutils.impl.core.Configuration.<clinit>(Configuration.java:15) ~[Configuration.class:?]
	at youyihj.zenutils.impl.mixin.vanilla.VanillaMixinPlugin.acceptTargets(VanillaMixinPlugin.java:47) ~[VanillaMixinPlugin.class:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:577) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:476) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:452) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:304) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:240) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:208) ~[!mixinbooter-10.2.jar:?]
	at org.spongepowered.asm.mixin.transformer.Proxy.transform(Proxy.java:71) ~[!mixinbooter-10.2.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
	... 12 more
commented

What mod is applying mixins for Configuration?

commented

What mod is applying mixins for Configuration?

One of my mod

commented

I see you've posted the updated logs, I can't do anything about re-entrance errors, you must stop that from happening from your side. This will occur when calling any concurrently loaded class.

commented

In the above case, you could maybe run the ZenMixin::load method when ILateMixinLoader is queuing mixins to load.

commented

I see you've posted the updated logs, I can't do anything about re-entrance errors, you must stop that from happening from your side. This will occur when calling any concurrently loaded class.

The mixin plugin loading the class. The mixin trying to transform the Configuration since there is a mixin targeting it. But since the call site is from mixin plugin. Re-entrance happened. No relation to concurrently in my mind. Of course, concurrency can cause it.

In the above case, you could maybe run the ZenMixin::load method when ILateMixinLoader is queuing mixins to load.

ZenUtils is not my mod. My mod is the one that mixin into the Configuration