diff --git a/src/main/java/dan200/computercraft/core/filesystem/ResourceMount.java b/src/main/java/dan200/computercraft/core/filesystem/ResourceMount.java index e767525b6..5e9e4a067 100644 --- a/src/main/java/dan200/computercraft/core/filesystem/ResourceMount.java +++ b/src/main/java/dan200/computercraft/core/filesystem/ResourceMount.java @@ -31,7 +31,7 @@ import com.google.common.io.ByteStreams; import dan200.computercraft.ComputerCraft; import dan200.computercraft.api.filesystem.IMount; import dan200.computercraft.core.apis.handles.ArrayByteChannel; - +import dan200.computercraft.shared.util.IoUtil; import net.minecraft.resource.ReloadableResourceManager; import net.minecraft.resource.Resource; import net.minecraft.resource.ResourceManager; @@ -186,13 +186,19 @@ public final class ResourceMount implements IMount { return new ArrayByteChannel(contents); } - try (InputStream stream = this.manager.getResource(file.identifier) - .getInputStream()) { - if (stream.available() > MAX_CACHED_SIZE) { - return Channels.newChannel(stream); - } + try + { + InputStream stream = manager.getResource( file.identifier ).getInputStream(); + if( stream.available() > MAX_CACHED_SIZE ) return Channels.newChannel( stream ); - contents = ByteStreams.toByteArray(stream); + try + { + contents = ByteStreams.toByteArray( stream ); + } + finally + { + IoUtil.closeQuietly( stream ); + } CONTENTS_CACHE.put(file, contents); return new ArrayByteChannel(contents); } catch (FileNotFoundException ignored) {