From 56cf2549e7862e331760755fb3e0758849368d1f Mon Sep 17 00:00:00 2001 From: Alexander Likhachev Date: Tue, 19 Oct 2021 01:49:13 +0300 Subject: [PATCH] [JS] Close file descriptors after embedding sources into source map #KT-49300 Fixed --- .../kotlin/js/sourceMap/SourceMap3Builder.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/js/js.sourcemap/src/org/jetbrains/kotlin/js/sourceMap/SourceMap3Builder.java b/js/js.sourcemap/src/org/jetbrains/kotlin/js/sourceMap/SourceMap3Builder.java index 028f425a875..2eebefe1dca 100644 --- a/js/js.sourcemap/src/org/jetbrains/kotlin/js/sourceMap/SourceMap3Builder.java +++ b/js/js.sourcemap/src/org/jetbrains/kotlin/js/sourceMap/SourceMap3Builder.java @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.js.parser.sourcemaps.*; import org.jetbrains.kotlin.js.util.TextOutput; import java.io.File; +import java.io.IOException; import java.io.Reader; import java.util.ArrayList; import java.util.List; @@ -81,8 +82,16 @@ public class SourceMap3Builder implements SourceMapBuilder { private void appendSourcesContent(JsonObject json) { JsonArray array = new JsonArray(); for (Supplier contentSupplier : orderedSourceContentSuppliers) { - Reader reader = contentSupplier.get(); - array.getElements().add(reader != null ? new JsonString(TextStreamsKt.readText(reader)) : JsonNull.INSTANCE); + try (Reader reader = contentSupplier.get()) { + array.getElements().add(reader != null ? new JsonString(TextStreamsKt.readText(reader)) : JsonNull.INSTANCE); + } + catch (IOException e) { + //noinspection UseOfSystemOutOrSystemErr + System.err.println("An exception occured during embedding sources into source map"); + //noinspection CallToPrintStackTrace + e.printStackTrace(); + // can't close the content reader or read from it + } } json.getProperties().put("sourcesContent", array); }