Skip to content

Commit b8831f1

Browse files
author
Oleksandr Dzhychko
committed
fix(bulk-model-sync): close input streams after reading and writing JSON files
1 parent 7009c7c commit b8831f1

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

bulk-model-sync-lib/src/jvmMain/kotlin/org/modelix/model/sync/bulk/ModelExporter.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ actual class ModelExporter actual constructor(private val root: INode) {
3535
outputFile.parentFile.mkdirs()
3636

3737
val modelData = ModelData(root = root.asExported())
38-
Json.encodeToStream(modelData, outputFile.outputStream())
38+
outputFile.outputStream().use { outputStream ->
39+
Json.encodeToStream(modelData, outputStream)
40+
}
3941
}
4042
}

bulk-model-sync-lib/src/jvmMain/kotlin/org/modelix/model/sync/bulk/PlatformSpecific.kt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,11 @@ fun ModelImporter.import(jsonFile: File) {
4040

4141
@OptIn(ExperimentalSerializationApi::class)
4242
fun ModelImporter.importFilesAsRootChildren(files: Collection<File>) {
43-
val models: List<ModelData> = files.map {
44-
Json.decodeFromStream(it.inputStream())
43+
val models: List<ModelData> = files.map { file ->
44+
file.inputStream().use(Json::decodeFromStream)
4545
}
4646
import(mergeModelData(models))
4747
}
4848

4949
@Deprecated("use collection parameter for better performance")
50-
fun ModelImporter.importFilesAsRootChildren(vararg files: File) {
51-
val models = files.map { ModelData.fromJson(it.readText()) }
52-
import(mergeModelData(*models.toTypedArray()))
53-
}
50+
fun ModelImporter.importFilesAsRootChildren(vararg files: File) = importFilesAsRootChildren(files.asList())

0 commit comments

Comments
 (0)