From 96f035b196ced8e9352e36db760d296290e29dd9 Mon Sep 17 00:00:00 2001 From: "Ilya.Kazakevich" Date: Fri, 22 Mar 2019 02:08:57 +0300 Subject: [PATCH] PY-34764: Do not check exitCode if process is still running --- .../python/sdk/flavors/WindowsStoreService.kt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/python/src/com/jetbrains/python/sdk/flavors/WindowsStoreService.kt b/python/src/com/jetbrains/python/sdk/flavors/WindowsStoreService.kt index fe3e4847d1a1..cc96a9579598 100644 --- a/python/src/com/jetbrains/python/sdk/flavors/WindowsStoreService.kt +++ b/python/src/com/jetbrains/python/sdk/flavors/WindowsStoreService.kt @@ -26,8 +26,12 @@ fun findInstallLocationForPackage(packageName: String): VirtualFile? { val process = Runtime.getRuntime().exec(command) val result = process.waitFor(5, TimeUnit.SECONDS) if (!result) { - logger.warn("Error ${process.exitValue()} for command $command") - logger.warn(process.errorStream.bufferedReader().readText()) + reportError(command, "Process still runs after timeout", process, logger) + return null + } + val exitValue = process.exitValue() + if (exitValue != 0) { + reportError(command, "Process exited $exitValue", process, logger) return null } val line = process.inputStream.bufferedReader().lines().filter { it.isNotBlank() }.findFirst().orElse(null) ?: return null @@ -37,4 +41,11 @@ fun findInstallLocationForPackage(packageName: String): VirtualFile? { return null } return LocalFileSystem.getInstance().findFileByPath(groupValues[1]) +} + +private fun reportError(command: String, error: String, process: Process, logger: Logger) { + logger.warn(error) + logger.warn(command) + logger.warn(process.errorStream.bufferedReader().readText()) + logger.warn(process.inputStream.bufferedReader().readText()) } \ No newline at end of file