diff --git a/python/src/com/jetbrains/python/packaging/PyCondaPackageManagerImpl.java b/python/src/com/jetbrains/python/packaging/PyCondaPackageManagerImpl.java index 3af564158358..4502379dab4b 100644 --- a/python/src/com/jetbrains/python/packaging/PyCondaPackageManagerImpl.java +++ b/python/src/com/jetbrains/python/packaging/PyCondaPackageManagerImpl.java @@ -91,13 +91,17 @@ public class PyCondaPackageManagerImpl extends PyPackageManagerImpl { final GeneralCommandLine commandLine = new GeneralCommandLine(parameters); final CapturingProcessHandler handler = new CapturingProcessHandler(commandLine); final ProcessOutput result = handler.runProcess(); + checkExitCode(parameters, result); + return result; + } + + private static void checkExitCode(ArrayList parameters, ProcessOutput result) throws PyExecutionException { final int exitCode = result.getExitCode(); if (exitCode != 0) { final String message = StringUtil.isEmptyOrSpaces(result.getStdout()) && StringUtil.isEmptyOrSpaces(result.getStderr()) ? "Permission denied" : "Non-zero exit code"; throw new PyExecutionException(message, "Conda", parameters, result); } - return result; } @Nullable @@ -232,12 +236,7 @@ public class PyCondaPackageManagerImpl extends PyPackageManagerImpl { if (result.isCancelled()) { throw new RunCanceledByUserException(); } - final int exitCode = result.getExitCode(); - if (exitCode != 0) { - final String message = StringUtil.isEmptyOrSpaces(result.getStdout()) && StringUtil.isEmptyOrSpaces(result.getStderr()) ? - "Permission denied" : "Non-zero exit code"; - throw new PyExecutionException(message, "Conda", parameters, result); - } + checkExitCode(parameters, result); final String binary = PythonSdkType.getPythonExecutable(destinationDir); final String binaryFallback = destinationDir + File.separator + "bin" + File.separator + "python"; return (binary != null) ? binary : binaryFallback;