From 383fe78c62b3bdda5014dc036d2caa462730eaeb Mon Sep 17 00:00:00 2001 From: "Dmitriy.Panov" Date: Mon, 24 Oct 2022 19:40:50 +0200 Subject: [PATCH] IDEA-300773 process cannot access the file because it is being used by another process on Windows GitOrigin-RevId: ae6cf50053413b445bf2ec6c875e6b9496e57dca --- build/tasks/src/org/jetbrains/intellij/build/io/process.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build/tasks/src/org/jetbrains/intellij/build/io/process.kt b/build/tasks/src/org/jetbrains/intellij/build/io/process.kt index b7f26ff6f6f5..28903f702378 100644 --- a/build/tasks/src/org/jetbrains/intellij/build/io/process.kt +++ b/build/tasks/src/org/jetbrains/intellij/build/io/process.kt @@ -41,6 +41,7 @@ suspend fun runJava(mainClass: String, .useWithScope2 { span -> withContext(Dispatchers.IO) { val toDelete = ArrayList(3) + var process: Process? = null try { val classpathFile = Files.createTempFile("classpath-", ".txt").also(toDelete::add) val classPathStringBuilder = createClassPathFile(classPath, classpathFile) @@ -53,7 +54,7 @@ suspend fun runJava(mainClass: String, val errorOutputFile = Files.createTempFile("error-out-", ".txt").also(toDelete::add) val outputFile = customOutputFile?.also { customOutputFile.parent?.let { Files.createDirectories(it) } } ?: Files.createTempFile("out-", ".txt").also(toDelete::add) - val process = ProcessBuilder(processArgs) + process = ProcessBuilder(processArgs) .directory(workingDir?.toFile()) .redirectError(errorOutputFile.toFile()) .redirectOutput(outputFile.toFile()) @@ -99,6 +100,7 @@ suspend fun runJava(mainClass: String, } } finally { + process?.waitFor() toDelete.forEach(FileUtilRt::deleteRecursively) } }