Skip to main content
Early Access: MineXHost is live and still being built. Expect maintenance and occasional outages. Check live status

ConcurrentModificationException at net.minecraft.launchwrapper.Launch.launch on old Forge: the LegacyJavaFixer fix

Updated 4 min read By MineXHost

An old Forge server for Minecraft 1.6.4 or 1.7.x dies at start-up with a ConcurrentModificationException inside LaunchWrapper. It is not a mod bug and not a world problem: older Forge code and later Java 8 builds disagree about sorting a list. Forge published a tiny fix for exactly this.

What the crash looks like

The trace is short and the last line is the giveaway. A real example from Forge's forum, on Java 1.8.0_20: java.util.ConcurrentModificationException, at java.util.ArrayList$Itr.checkForComodification, at java.util.ArrayList$Itr.remove, at net.minecraft.launchwrapper.Launch.launch(Launch.java:114).

Why it happens

LaunchWrapper keeps a list of tweakers, Forge's start-up hooks, and older FML sorts that list while LaunchWrapper is walking through it. From Java 8 update 20, Java's list sorting trips its guard against a list changing mid-iteration, so the server stops before Minecraft loads anything.

Forge's fix is LegacyJavaFixer, a small coremod by LexManos published on Forge's own maven as legacyjavafixer-1.0.jar. Its README describes it as a coremod to fix older FML and Forge versions for the Java 8 update 20 change. It replaces the broken sort and needs no configuration.

How to fix it

  1. Confirm the shape: a ConcurrentModificationException with net.minecraft.launchwrapper.Launch.launch in the trace, on a Forge server for Minecraft 1.7.x or older.
  2. Download legacyjavafixer-1.0.jar from Forge's maven: maven.minecraftforge.net/net/minecraftforge/lex/legacyjavafixer/1.0/legacyjavafixer-1.0.jar.
  3. Optional check: its SHA-256 is 056720325ac2c5031691fc2dbf9bd175cb0bc95d9ab6583b23fbace5b25c564a.
  4. Put the jar in the server's mods folder. No config is needed.
  5. Restart. The log should show [LegacyJavaFixer] Replacing sort.
  6. If the crash persists with the jar present, this was not the cause; read further down the log for the next error.

Warning

The other route, running a Java 8 build older than update 20, means running a very old, unpatched Java. LegacyJavaFixer is the safer fix.

Old Minecraft versions need an old Java. Check which one your version expects.

Look up the Java version

What MineXHost's launcher does with this crash

When a Forge-family server for a Minecraft version below 1.8 stops with this exact trace, MineXEngine, our launcher, downloads LegacyJavaFixer from Forge's maven, checks it against a fixed checksum, adds it to mods/ and restarts. That adds one file to your mods folder; it does not remove or replace any of your mods.

It tries this once. If the jar was already there, or the download or the checksum fails, it does not retry; the other recovery steps run and the log says what happened. It does not change your Forge version as part of this fix.

MineXHost runs legacy Forge packs on MineXEngine. Our launcher detects the modpack, picks the right Minecraft loader and Java version, tunes the JVM for your RAM, and auto-recovers from the crashes that normally end a modded server's evening. Pick your RAM, paste the pack, and play.

See hosting plans

Frequently asked questions

Why does old Forge crash with ConcurrentModificationException at Launch.launch?

Old Forge for Minecraft 1.6.4 and 1.7.x sorts LaunchWrapper's list of start-up tweakers while that list is being iterated, and Java 8 update 20 and later builds reject that change with a ConcurrentModificationException, so the server stops before Minecraft loads anything and no mod or world is at fault. LegacyJavaFixer replaces the broken sort.

What is LegacyJavaFixer?

LegacyJavaFixer is a small coremod by LexManos, published on Forge's own maven as legacyjavafixer-1.0.jar, that makes older FML and Forge versions work on Java 8 update 20 and later by replacing FML's tweaker sorting with a safe version, and it is installed by dropping the jar into the server's mods folder. It needs no configuration and logs Replacing sort when it works.

Do I need to downgrade Java instead of using LegacyJavaFixer?

Downgrading Java is usually unnecessary, because adding LegacyJavaFixer to the mods folder lets old Forge start on later Java 8 builds, while the alternative means running a Java 8 release from before update 20, which is old and has missed years of security fixes. Use the jar, and keep the Java version your Minecraft version expects.

Does MineXHost add LegacyJavaFixer automatically?

MineXHost adds LegacyJavaFixer once, on Forge-family servers for Minecraft versions below 1.8 that stop with this exact trace: MineXEngine downloads it from Forge's maven, checks it against a fixed checksum, places it in the mods folder and restarts the server without removing anything. If the jar is already there or the download fails, it does not retry.

Still stuck?

Every ticket is answered by a real person who plays Minecraft and knows modpacks. Send the full console output, not just the last line. Customers open a ticket from the panel; anyone can ask in our Discord.

  • Live support 5PM-12AM ET on weekdays
  • Replies typically within 12 hours
  • Limited availability on weekends