From 04b1b89032fb7c762bd3d9343ab172b596204c34 Mon Sep 17 00:00:00 2001 From: "alexey.afanasiev" Date: Mon, 18 Dec 2023 01:16:48 +0100 Subject: [PATCH] Fix non-closed readers (cherry picked from commit 67143d5d08f607959bf7bfc8bff4f9f7e6ae1db7) IJ-CR-122485 GitOrigin-RevId: cf14cb341278a6fb02690a5108ace56c34b450f9 --- .../inspectionProfile/YamlInspectionProfileImpl.kt | 5 +++-- .../inspectionProfile/YamlInspectionProfileRaw.kt | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/platform/inspect/src/com/intellij/codeInspection/inspectionProfile/YamlInspectionProfileImpl.kt b/platform/inspect/src/com/intellij/codeInspection/inspectionProfile/YamlInspectionProfileImpl.kt index aea526e56c1a..e08a98880537 100644 --- a/platform/inspect/src/com/intellij/codeInspection/inspectionProfile/YamlInspectionProfileImpl.kt +++ b/platform/inspect/src/com/intellij/codeInspection/inspectionProfile/YamlInspectionProfileImpl.kt @@ -129,8 +129,9 @@ class YamlInspectionProfileImpl private constructor(override val profileName: St } - - return loadFrom(configFile.reader(), includeProvider, toolsSupplier, profileManager) + return configFile.reader().use { reader -> + loadFrom(reader, includeProvider, toolsSupplier, profileManager) + } } private fun findBaseProfile(profileManager: InspectionProfileManager, profileName: String?): InspectionProfileImpl { diff --git a/platform/inspect/src/com/intellij/codeInspection/inspectionProfile/YamlInspectionProfileRaw.kt b/platform/inspect/src/com/intellij/codeInspection/inspectionProfile/YamlInspectionProfileRaw.kt index 59220efbaa84..4633c142a765 100644 --- a/platform/inspect/src/com/intellij/codeInspection/inspectionProfile/YamlInspectionProfileRaw.kt +++ b/platform/inspect/src/com/intellij/codeInspection/inspectionProfile/YamlInspectionProfileRaw.kt @@ -70,7 +70,9 @@ private fun readRaw(reader: Reader, includeReaders: (Path) -> Reader): Map)?.filterIsInstance(String::class.java).orEmpty().map { Paths.get(it) } return includedConfigs.fold(rawConfig) { accumulator, path -> - val includedYaml = readRaw(includeReaders.invoke(path)) { includeReaders.invoke(path.resolveSibling(it)) } + val includedYaml = includeReaders.invoke(path).use { includeReader -> + readRaw(includeReader) { includeReaders.invoke(path.resolveSibling(it)) } + } merge(accumulator, includedYaml.filterKeys { field -> field in FIELDS_TO_MERGE }) } } \ No newline at end of file