From 40b04cbded57764dbc3e7971e2a66944cae871d2 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Mon, 9 Oct 2023 08:36:35 -0400 Subject: [PATCH] Fix cache_upgraded_structures leaking open input streams --- .../cache_upgraded_structures/StructureManagerMixin.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/cache_upgraded_structures/StructureManagerMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/cache_upgraded_structures/StructureManagerMixin.java index fe788f7e..59088569 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/cache_upgraded_structures/StructureManagerMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/cache_upgraded_structures/StructureManagerMixin.java @@ -14,6 +14,7 @@ import org.spongepowered.asm.mixin.Shadow; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.util.Optional; @Mixin(StructureTemplateManager.class) @@ -29,8 +30,8 @@ public class StructureManagerMixin { @Overwrite private Optional loadFromResource(ResourceLocation id) { ResourceLocation arg = new ResourceLocation(id.getNamespace(), "structures/" + id.getPath() + ".nbt"); - try { - return Optional.of(CachingStructureManager.readStructure(id, this.fixerUpper, this.resourceManager.open(arg))); + try(InputStream stream = this.resourceManager.open(arg)) { + return Optional.of(CachingStructureManager.readStructure(id, this.fixerUpper, stream)); } catch(FileNotFoundException e) { return Optional.empty(); } catch(IOException e) {