From e83deeca42f28831ef5cead8b0b5779378df8a30 Mon Sep 17 00:00:00 2001 From: Jhoan Munoz Date: Thu, 16 Nov 2023 20:31:35 +0000 Subject: [PATCH] Pivotal ID # 186496317: Too Many Open Files - Improve method signature - Close InputStream after using it --- .../commons-util/src/main/kotlin/ebi/ac/uk/io/FileUtils.kt | 7 +++++-- .../ac/uk/ebi/biostd/files/utils/MultipartFileUtils.kt | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/commons/commons-util/src/main/kotlin/ebi/ac/uk/io/FileUtils.kt b/commons/commons-util/src/main/kotlin/ebi/ac/uk/io/FileUtils.kt index aaf2d8422b..7517c190eb 100644 --- a/commons/commons-util/src/main/kotlin/ebi/ac/uk/io/FileUtils.kt +++ b/commons/commons-util/src/main/kotlin/ebi/ac/uk/io/FileUtils.kt @@ -10,6 +10,7 @@ import ebi.ac.uk.io.ext.isEmpty import ebi.ac.uk.io.ext.notExist import ebi.ac.uk.io.ext.size import org.apache.commons.codec.digest.DigestUtils +import org.springframework.core.io.InputStreamSource import java.io.File import java.io.InputStream import java.nio.file.FileAlreadyExistsException @@ -44,10 +45,12 @@ object FileUtils { } fun copyOrReplaceFile( - source: InputStream, + source: InputStreamSource, target: File, permissions: Permissions, - ) = FileUtilsHelper.copyFile(source, target.toPath(), permissions) + ) { + source.inputStream.use { FileUtilsHelper.copyFile(it, target.toPath(), permissions) } + } fun getOrCreateFolder( folder: Path, diff --git a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/files/utils/MultipartFileUtils.kt b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/files/utils/MultipartFileUtils.kt index 183de913dd..e6a4df3c98 100644 --- a/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/files/utils/MultipartFileUtils.kt +++ b/submission/submission-webapp/src/main/kotlin/ac/uk/ebi/biostd/files/utils/MultipartFileUtils.kt @@ -11,7 +11,7 @@ internal fun transferTo(basePath: Path, file: MultipartFile) { val expectedFilePath = basePath.resolve(file.originalFilename!!) FileUtils.createParentFolders(expectedFilePath, RWXRWX___) FileUtils.copyOrReplaceFile( - source = file.inputStream, + source = file, target = expectedFilePath.toFile(), permissions = Permissions(RW_RW____, RWXRWX___) )