OptiFabric

OptiFabric

9M Downloads

1.17: Error modifying Optifine-mapped.jar

aeakett opened this issue ยท 6 comments

commented

When loading in 1.17, the following message is received in the main game window:

There was an error loading OptiFabric!
Failed to load Optifine, please report this!
Error modifying C:\Users\aeakett\AppData\Roaming\.minecraft1.17\.optifine\OptiFine_1.17_HD_U_G9_pre21\Optifine-mapped.jar

C:\Users\aeakett\AppData\Roaming\.minecraft1.17\.optifine\OptiFine_1.17_HD_U_G9_pre21\ is empty, but while loading Optifine-mapped.jar and Optifine.classes.gz appear briefly before disappearing again.

Stack trace offered by error screen is as follows:

java.io.UncheckedIOException: Error modifying C:\Users\aeakett\AppData\Roaming\.minecraft1.17\.optifine\OptiFine_1.17_HD_U_G9_pre21\Optifine-mapped.jar
	at me.modmuss50.optifabric.util.ZipUtils.transformInPlace(ZipUtils.java:80)
	at me.modmuss50.optifabric.mod.OptifineSetup.generateClassCache(OptifineSetup.java:315)
	at me.modmuss50.optifabric.mod.OptifineSetup.getRuntime(OptifineSetup.java:158)
	at me.modmuss50.optifabric.mod.OptifabricSetup.run(OptifabricSetup.java:41)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at com.chocohead.mm.Plugin.getMixins(Plugin.java:340)
	at org.spongepowered.asm.mixin.transformer.PluginHandle.getMixins(PluginHandle.java:128)
	at org.spongepowered.asm.mixin.transformer.MixinConfig.postInitialise(MixinConfig.java:667)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:542)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:439)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:415)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:285)
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208)
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178)
	at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23)
	at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:157)
	at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:150)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:466)
	at net.fabricmc.loader.util.DefaultLanguageAdapter.create(DefaultLanguageAdapter.java:45)
	at net.fabricmc.loader.EntrypointStorage$NewEntry.create(EntrypointStorage.java:112)
	at net.fabricmc.loader.EntrypointStorage$NewEntry.getOrCreate(EntrypointStorage.java:99)
	at net.fabricmc.loader.EntrypointStorage.lambda$getEntrypointContainers$1(EntrypointStorage.java:184)
	at net.fabricmc.loader.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:37)
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50)
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke(EntrypointUtils.java:36)
	at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:137)
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
Caused by: org.apache.commons.io.FileExistsException: Destination 'C:\Users\aeakett\AppData\Roaming\.minecraft1.17\.optifine\OptiFine_1.17_HD_U_G9_pre21\Optifine-mapped.jar' already exists
	at org.apache.commons.io.FileUtils.moveFile(FileUtils.java:2986)
	at me.modmuss50.optifabric.util.ZipUtils.transformInPlace(ZipUtils.java:78)
	... 28 more

Likely relevant section from game output screen:

mixin
main
Error encountered during mixin config postInit step'mixins.mm.json': Failed to setup optifine
java.lang.RuntimeException: Failed to setup optifine
	at me.modmuss50.optifabric.mod.OptifabricSetup.run(OptifabricSetup.java:54)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at com.chocohead.mm.Plugin.getMixins(Plugin.java:340)
	at org.spongepowered.asm.mixin.transformer.PluginHandle.getMixins(PluginHandle.java:128)
	at org.spongepowered.asm.mixin.transformer.MixinConfig.postInitialise(MixinConfig.java:667)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:542)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:439)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:415)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:285)
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208)
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178)
	at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23)
	at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:157)
	at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:150)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:466)
	at net.fabricmc.loader.util.DefaultLanguageAdapter.create(DefaultLanguageAdapter.java:45)
	at net.fabricmc.loader.EntrypointStorage$NewEntry.create(EntrypointStorage.java:112)
	at net.fabricmc.loader.EntrypointStorage$NewEntry.getOrCreate(EntrypointStorage.java:99)
	at net.fabricmc.loader.EntrypointStorage.lambda$getEntrypointContainers$1(EntrypointStorage.java:184)
	at net.fabricmc.loader.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:37)
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50)
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke(EntrypointUtils.java:36)
	at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:137)
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
Caused by: java.io.UncheckedIOException: Error modifying C:\Users\aeakett\AppData\Roaming\.minecraft1.17\.optifine\OptiFine_1.17_HD_U_G9_pre21\Optifine-mapped.jar
	at me.modmuss50.optifabric.util.ZipUtils.transformInPlace(ZipUtils.java:80)
	at me.modmuss50.optifabric.mod.OptifineSetup.generateClassCache(OptifineSetup.java:315)
	at me.modmuss50.optifabric.mod.OptifineSetup.getRuntime(OptifineSetup.java:158)
	at me.modmuss50.optifabric.mod.OptifabricSetup.run(OptifabricSetup.java:41)
	... 25 more
Caused by: org.apache.commons.io.FileExistsException: Destination 'C:\Users\aeakett\AppData\Roaming\.minecraft1.17\.optifine\OptiFine_1.17_HD_U_G9_pre21\Optifine-mapped.jar' already exists
	at org.apache.commons.io.FileUtils.moveFile(FileUtils.java:2986)
	at me.modmuss50.optifabric.util.ZipUtils.transformInPlace(ZipUtils.java:78)
	... 28 more

Contents of /mods folder:

fabric-api-0.34.10+1.17.jar
optifabric-1.11.1.jar
OptiFine_1.17_HD_U_G9_pre21_MOD.jar

Fabric loader version: 0.11.3

commented

What Java version/distribution are you using? The file should be being automatically moved out of the way before the replacement is attempted to be moved so this is quite a strange crash

commented

According to the F3 screen...
Java: 16.0.1 64bit

commented

I've added in an extra check to v1.11.9 so hopefully this should be resolved for you

commented

Same behaviour with 1.11.9:

java.io.UncheckedIOException: Error modifying C:\Users\aeakett\AppData\Roaming\.minecraft1.17\.optifine\OptiFine_1.17_HD_U_G9_pre21\Optifine-mapped.jar
	at me.modmuss50.optifabric.util.ZipUtils.transformInPlace(ZipUtils.java:128)
	at me.modmuss50.optifabric.util.ZipUtils.filterInPlace(ZipUtils.java:93)
	at me.modmuss50.optifabric.mod.OptifineSetup.generateClassCache(OptifineSetup.java:343)
	at me.modmuss50.optifabric.mod.OptifineSetup.getRuntime(OptifineSetup.java:184)
	at me.modmuss50.optifabric.mod.OptifabricSetup.run(OptifabricSetup.java:41)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at com.chocohead.mm.Plugin.getMixins(Plugin.java:340)
	at org.spongepowered.asm.mixin.transformer.PluginHandle.getMixins(PluginHandle.java:128)
	at org.spongepowered.asm.mixin.transformer.MixinConfig.postInitialise(MixinConfig.java:667)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.prepareConfigs(MixinProcessor.java:542)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.select(MixinProcessor.java:439)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.checkSelect(MixinProcessor.java:415)
	at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:285)
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:208)
	at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:178)
	at org.spongepowered.asm.mixin.transformer.FabricMixinTransformerProxy.transformClassBytes(FabricMixinTransformerProxy.java:23)
	at net.fabricmc.loader.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:157)
	at net.fabricmc.loader.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:150)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:466)
	at net.fabricmc.loader.util.DefaultLanguageAdapter.create(DefaultLanguageAdapter.java:45)
	at net.fabricmc.loader.EntrypointStorage$NewEntry.create(EntrypointStorage.java:112)
	at net.fabricmc.loader.EntrypointStorage$NewEntry.getOrCreate(EntrypointStorage.java:99)
	at net.fabricmc.loader.EntrypointStorage.lambda$getEntrypointContainers$1(EntrypointStorage.java:184)
	at net.fabricmc.loader.entrypoint.EntrypointContainerImpl.getEntrypoint(EntrypointContainerImpl.java:37)
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke0(EntrypointUtils.java:50)
	at net.fabricmc.loader.entrypoint.minecraft.hooks.EntrypointUtils.invoke(EntrypointUtils.java:36)
	at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:137)
	at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
Caused by: org.apache.commons.io.FileExistsException: Destination 'C:\Users\aeakett\AppData\Roaming\.minecraft1.17\.optifine\OptiFine_1.17_HD_U_G9_pre21\Optifine-mapped.jar' already exists
	at org.apache.commons.io.FileUtils.moveFile(FileUtils.java:2986)
	at me.modmuss50.optifabric.util.ZipUtils.transformInPlace(ZipUtils.java:126)
	... 29 more
commented

Very curious, what about with this?

commented

Strike 2, but I think you should drop this.

I'm fairly certain this is either PEBKAC, or that there's something out of whack with my system...

When setting up MultiMC I'm getting the same error with a 1.16 instance and the exact same .JAR files I used with a stand-alone instance. It seems to me that my heat-addled brain is probably missing a step somewhere in the process, and I just don't have the resources to track my problem down right now.

Thanks for your efforts, and I'm sorry to have wasted your time.