fix try...catch segments not closing files in some cases
This commit is contained in:
parent
cffd468b68
commit
dbaba22207
4 changed files with 43 additions and 17 deletions
|
@ -64,17 +64,24 @@ public class MapJarsTiny {
|
|||
.withMappings(TinyUtils.createTinyMappingProvider(mappings, fromM, toM))
|
||||
.build();
|
||||
|
||||
OutputConsumerPath outputConsumer = null;
|
||||
try {
|
||||
OutputConsumerPath outputConsumer = new OutputConsumerPath(output);
|
||||
outputConsumer = new OutputConsumerPath(output);
|
||||
outputConsumer.addNonClassFiles(input);
|
||||
remapper.read(input);
|
||||
remapper.read(classpath);
|
||||
remapper.apply(input, outputConsumer);
|
||||
outputConsumer.finish();
|
||||
remapper.finish();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Failed to remap JAR", e);
|
||||
} finally {
|
||||
if (outputConsumer != null) {
|
||||
try {
|
||||
outputConsumer.finish();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
remapper.finish();
|
||||
throw new RuntimeException("Failed to remap minecraft to " + toM, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,11 +80,9 @@ public final class MixinRefmapHelper {
|
|||
ZipUtil.iterate(output, (stream, entry) -> {
|
||||
if (!entry.isDirectory() && entry.getName().endsWith(".json") && !entry.getName().contains("/") && !entry.getName().contains("\\")) {
|
||||
// JSON file in root directory
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(stream);
|
||||
try {
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(stream);
|
||||
JsonObject json = GSON.fromJson(inputStreamReader, JsonObject.class);
|
||||
inputStreamReader.close();
|
||||
stream.close();
|
||||
if (json != null && json.has("mixins") && json.get("mixins").isJsonArray()) {
|
||||
if (!onlyWithoutRefmap || !json.has("refmap")) {
|
||||
mixinFilename.add(entry.getName());
|
||||
|
@ -92,6 +90,9 @@ public final class MixinRefmapHelper {
|
|||
}
|
||||
} catch (Exception e) {
|
||||
// ...
|
||||
} finally {
|
||||
inputStreamReader.close();
|
||||
stream.close();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -105,16 +106,17 @@ public final class MixinRefmapHelper {
|
|||
ZipUtil.iterate(output, (stream, entry) -> {
|
||||
if (!entry.isDirectory() && entry.getName().endsWith(".json") && !entry.getName().contains("/") && !entry.getName().contains("\\")) {
|
||||
// JSON file in root directory
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(stream);
|
||||
try {
|
||||
InputStreamReader inputStreamReader = new InputStreamReader(stream);
|
||||
JsonObject json = GSON.fromJson(inputStreamReader, JsonObject.class);
|
||||
inputStreamReader.close();
|
||||
stream.close();
|
||||
if (json != null && json.has("refmap")) {
|
||||
mixinRefmapFilenames.add(json.get("refmap").getAsString());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// ...
|
||||
} finally {
|
||||
inputStreamReader.close();
|
||||
stream.close();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -99,8 +99,9 @@ public class ModProcessor {
|
|||
.withMappings(TinyUtils.createTinyMappingProvider(mappings, fromM, toM))
|
||||
.build();
|
||||
|
||||
OutputConsumerPath outputConsumer = null;
|
||||
try {
|
||||
OutputConsumerPath outputConsumer = new OutputConsumerPath(Paths.get(output.getAbsolutePath()));
|
||||
outputConsumer = new OutputConsumerPath(Paths.get(output.getAbsolutePath()));
|
||||
outputConsumer.addNonClassFiles(input.toPath());
|
||||
if (!modCompileFiles.contains(input)) {
|
||||
remapper.read(input.toPath());
|
||||
|
@ -112,9 +113,18 @@ public class ModProcessor {
|
|||
outputConsumer.finish();
|
||||
remapper.finish();
|
||||
} catch (Exception e){
|
||||
remapper.finish();
|
||||
throw new RuntimeException("Failed to remap JAR to " + toM, e);
|
||||
} finally {
|
||||
if (outputConsumer != null) {
|
||||
try {
|
||||
outputConsumer.finish();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
remapper.finish();
|
||||
}
|
||||
|
||||
if(!output.exists()){
|
||||
throw new RuntimeException("Failed to remap JAR to " + toM + " file not found: " + output.getAbsolutePath());
|
||||
}
|
||||
|
|
|
@ -79,17 +79,24 @@ public class ModRemapper {
|
|||
|
||||
TinyRemapper remapper = remapperBuilder.build();
|
||||
|
||||
OutputConsumerPath outputConsumer = null;
|
||||
try {
|
||||
OutputConsumerPath outputConsumer = new OutputConsumerPath(modJarOutputPath);
|
||||
outputConsumer = new OutputConsumerPath(modJarOutputPath);
|
||||
outputConsumer.addNonClassFiles(modJarPath);
|
||||
remapper.read(classpath);
|
||||
remapper.read(modJarPath);
|
||||
remapper.apply(modJarPath, outputConsumer);
|
||||
outputConsumer.finish();
|
||||
remapper.finish();
|
||||
} catch (Exception e){
|
||||
remapper.finish();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Failed to remap JAR", e);
|
||||
} finally {
|
||||
if (outputConsumer != null) {
|
||||
try {
|
||||
outputConsumer.finish();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
remapper.finish();
|
||||
}
|
||||
|
||||
if (!modJarOutput.exists()){
|
||||
|
|
Loading…
Reference in a new issue