aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/configuration/mods
diff options
context:
space:
mode:
authormodmuss50 <modmuss50@gmail.com>2021-09-28 17:22:13 +0100
committermodmuss50 <modmuss50@gmail.com>2021-09-28 17:22:13 +0100
commitf33637aa3cc3504bc634d2caeec1d54d18d0fa9e (patch)
treed34ee42e1196a8e808b23bce46e430a61c329b5a /src/main/java/net/fabricmc/loom/configuration/mods
parent80ad300b97338a6243b2fe7d93e150b2aebb6ed2 (diff)
downloadarchitectury-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.java28
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();