From c2269cb4e8a5251190e6a016ca4639fe968186b7 Mon Sep 17 00:00:00 2001 From: Paint_Ninja Date: Mon, 29 Sep 2025 12:43:20 +0100 Subject: [PATCH] Close streams in MixinConfig#create --- .../spongepowered/asm/mixin/transformer/MixinConfig.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/spongepowered/asm/mixin/transformer/MixinConfig.java b/src/main/java/org/spongepowered/asm/mixin/transformer/MixinConfig.java index 285fc8b7f..17ab77a7d 100644 --- a/src/main/java/org/spongepowered/asm/mixin/transformer/MixinConfig.java +++ b/src/main/java/org/spongepowered/asm/mixin/transformer/MixinConfig.java @@ -31,6 +31,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import com.google.common.io.Closeables; import org.spongepowered.asm.logging.Level; import org.spongepowered.asm.logging.ILogger; import org.spongepowered.asm.launch.MixinInitialisationError; @@ -1381,13 +1382,15 @@ public int compareTo(MixinConfig other) { * @return new Config */ static Config create(String configFile, MixinEnvironment outer, IMixinConfigSource source) { + InputStreamReader reader = null; try { IMixinService service = MixinService.getService(); InputStream resource = service.getResourceAsStream(configFile); if (resource == null) { throw new IllegalArgumentException(String.format("The specified resource '%s' was invalid or could not be read", configFile)); } - MixinConfig config = new Gson().fromJson(new InputStreamReader(resource), MixinConfig.class); + reader = new InputStreamReader(resource); + MixinConfig config = new Gson().fromJson(reader, MixinConfig.class); if (config.onLoad(service, configFile, outer, source)) { return config.getHandle(); } @@ -1396,6 +1399,8 @@ static Config create(String configFile, MixinEnvironment outer, IMixinConfigSour throw ex; } catch (Exception ex) { throw new IllegalArgumentException(String.format("The specified resource '%s' was invalid or could not be read", configFile), ex); + } finally { + Closeables.closeQuietly(reader); } }