diff --git a/src/main/java/net/minecraftforge/fml/relauncher/libraries/LibraryManager.java b/src/main/java/net/minecraftforge/fml/relauncher/libraries/LibraryManager.java index ef4d22916..c7e2bc3a6 100644 --- a/src/main/java/net/minecraftforge/fml/relauncher/libraries/LibraryManager.java +++ b/src/main/java/net/minecraftforge/fml/relauncher/libraries/LibraryManager.java @@ -99,8 +99,11 @@ public class LibraryManager for (ModList list : ModList.getKnownLists(minecraftHome)) { Repository repo = list.getRepository() == null ? libraries_dir : list.getRepository(); - for (Artifact artifact : list.getArtifacts()) + List artifacts = list.getArtifacts(); + // extractPacked adds artifacts to the list. As such, we can't use an Iterator to traverse it. + for (int i = 0; i < artifacts.size(); i++) { + Artifact artifact = artifacts.get(i); Artifact resolved = repo.resolve(artifact); if (resolved != null) { diff --git a/src/main/java/net/minecraftforge/fml/relauncher/libraries/ModList.java b/src/main/java/net/minecraftforge/fml/relauncher/libraries/ModList.java index 0791d4dfc..2d12d1b11 100644 --- a/src/main/java/net/minecraftforge/fml/relauncher/libraries/ModList.java +++ b/src/main/java/net/minecraftforge/fml/relauncher/libraries/ModList.java @@ -50,8 +50,7 @@ public class ModList try { String key = json.getCanonicalFile().getAbsolutePath(); - if (cache.containsKey(key)) - return cache.get(key); + return cache.computeIfAbsent(key, k -> new ModList(json, mcdir)); } catch (IOException e) {