diff options
author | modmuss50 <modmuss50@gmail.com> | 2021-09-28 17:22:13 +0100 |
---|---|---|
committer | modmuss50 <modmuss50@gmail.com> | 2021-09-28 17:22:13 +0100 |
commit | f33637aa3cc3504bc634d2caeec1d54d18d0fa9e (patch) | |
tree | d34ee42e1196a8e808b23bce46e430a61c329b5a /src/main/java/net/fabricmc/loom/configuration/mods | |
parent | 80ad300b97338a6243b2fe7d93e150b2aebb6ed2 (diff) | |
download | architectury-loom-f33637aa3cc3504bc634d2caeec1d54d18d0fa9e.tar.gz architectury-loom-f33637aa3cc3504bc634d2caeec1d54d18d0fa9e.tar.bz2 architectury-loom-f33637aa3cc3504bc634d2caeec1d54d18d0fa9e.zip |
Improve error handling around dep remapping.
Diffstat (limited to 'src/main/java/net/fabricmc/loom/configuration/mods')
-rw-r--r-- | src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java b/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java index 2cd519f9..832394b2 100644 --- a/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java +++ b/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java @@ -28,6 +28,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.HashMap; @@ -170,23 +171,24 @@ public class ModProcessor { // Apply this in a second loop as we need to ensure all the inputs are on the classpath before remapping. for (ModDependencyInfo info : remapList) { - OutputConsumerPath outputConsumer; - try { - outputConsumer = new OutputConsumerPath.Builder(info.getRemappedOutput().toPath()).build(); - } catch (Exception e) { - throw new IOException("Could not create output consumer for " + info.getRemappedOutput().getAbsolutePath()); - } + OutputConsumerPath outputConsumer = new OutputConsumerPath.Builder(info.getRemappedOutput().toPath()).build(); - outputConsumer.addNonClassFiles(info.getInputFile().toPath()); - outputConsumerMap.put(info, outputConsumer); - String accessWidener = info.getAccessWidener(); + outputConsumer.addNonClassFiles(info.getInputFile().toPath()); + outputConsumerMap.put(info, outputConsumer); + String accessWidener = info.getAccessWidener(); - if (accessWidener != null) { - accessWidenerMap.put(info, remapAccessWidener(ZipUtil.unpackEntry(info.inputFile, accessWidener), remapper.getRemapper())); - } + if (accessWidener != null) { + accessWidenerMap.put(info, remapAccessWidener(ZipUtil.unpackEntry(info.inputFile, accessWidener), remapper.getRemapper())); + } + + remapper.apply(outputConsumer, tagMap.get(info)); + } catch (Exception e) { + remapper.finish(); + Files.deleteIfExists(info.getRemappedOutput().toPath()); - remapper.apply(outputConsumer, tagMap.get(info)); + throw new RuntimeException("Failed to remap: " + info.getRemappedNotation(), e); + } } remapper.finish(); |