PrismLauncher / meta

Prism Launcher Metadata generation scripts
Microsoft Public License
16 stars 16 forks source link

Old versions missing useLegacyMergeSort #6

Closed TheKodeToad closed 1 year ago

TheKodeToad commented 1 year ago

In many older versions, -Djava.util.Arrays.useLegacyMergeSort=true is required otherwise the game sometimes crashes.

java.lang.IllegalArgumentException: Comparison method violates its general contract!
    at java.util.TimSort.mergeHi(TimSort.java:899)
    at java.util.TimSort.mergeAt(TimSort.java:516)
    at java.util.TimSort.mergeCollapse(TimSort.java:441)
    at java.util.TimSort.sort(TimSort.java:245)
    at java.util.Arrays.sort(Arrays.java:1512)
    at java.util.ArrayList.sort(ArrayList.java:1464)
    at java.util.Collections.sort(Collections.java:177)
        (for a1.1.2_01)
    at e.a(SourceFile:926)
    at iq.c(SourceFile:342)
    at iq.b(SourceFile:284)
    at net.minecraft.client.Minecraft.run(SourceFile:608)
    at java.lang.Thread.run(Thread.java:750)
Scrumplex commented 1 year ago

Do you have any idea, which older versions need this?

TheKodeToad commented 1 year ago

I've managed to reproduce it in infdev and some of the older alpha versions. I can't find a full list of versions though, since most old version launchers just always add the flag (which isn't exactly ideal).

TheKodeToad commented 1 year ago

If there are versions I missed, someone can comment.