makamys / CoreTweaks

A bunch of random bug fixes, optimizations and tweaks (1.7.10)
MIT License
46 stars 5 forks source link

FML transformer proxy classes fail to be created on JDK <8u362 #24

Closed DrParadox7 closed 1 year ago

DrParadox7 commented 1 year ago

Sometimes CoreTweaks will fail to initialize the game from failing to create proxy class for cpw.mods.fml.common.asm.transformers.SideTransformer.

Logs: (No crash logs were generated)

https://mclo.gs/nVDU41u

Configs used:

coretweaks.txt

Modpack Used:

The Lost Era Modpack

makamys commented 1 year ago

I can consistently reproduce this with no other mods if using a JDK version older than 8u362 (including the classic 8u51).

It seems that in 8u362, they made SHA-1 certificates get ignored (see JDK-8269039), which is why the issue no longer happens. Regardless, I will try to provide a fix for older versions since 8u51 is still used by a significant portion of the 1.7.10 playerbase.

DrParadox7 commented 1 year ago

Hopefully this fix will work but I would like to reiterate that this occurs in even versions above 8u362:

DrParadox7 commented 1 year ago

It still occurs on the latest release:

makamys commented 1 year ago

This is no longer a CoreTweaks issue, it's an issue with Theseus that happens even in an empty 1.7.10 Forge instance with no mods (as of v0.6.2). It just looks like CoreTweaks is responsible because it happens to be the last mod that prints something before the crash.

The issue is 1.7.10 Forge needs Guava 17, but Theseus puts both Guava 17 and Guava 15 on the classpath, and randomizes the order (not sure if intentionally or not). Whenever 15 ends up first, this error happens, since Forge is looking for a method that didn't exist yet in 15.

For comparison, MultiMC only puts Guava 17 on the classpath.