CPP-7641 Rework CMake support workflow
authorAnton Makeev <Anton.Makeev@jetbrains.com>
Thu, 29 Sep 2016 17:19:45 +0000 (19:19 +0200)
committerAnton Makeev <Anton.Makeev@jetbrains.com>
Thu, 29 Sep 2016 17:19:45 +0000 (19:19 +0200)
CPP-7481 Merge CMake Problems and Output tool windows

platform/platform-api/src/com/intellij/execution/process/CapturingProcessHandler.java
platform/platform-api/src/com/intellij/execution/process/ProcessOutput.java

index dc3245de185caa29e71e86d3bb9a24301d4a735d..26e7b83e47f40c596f65977833f344b0eb5ffb28 100644 (file)
@@ -78,7 +78,7 @@ public class CapturingProcessHandler extends OSProcessHandler {
   private void setErrorCodeIfNotYetSet() {
     // if exit code was set on processTerminated, no need to rewrite it
     // WinPtyProcess returns -2 if pty is already closed
-    if (myOutput.hasErrorExitCode()) {
+    if (!myOutput.isErrorCodeSet()) {
       myOutput.setExitCode(getProcess().exitValue());
     }
   }
index 3f7fd092494382afb8f6ea621f586cdaab36086d..b8b849e332e2f049d5b7445635f28b2ad02c7e9a 100644 (file)
@@ -26,16 +26,13 @@ import java.util.List;
  * @author yole
  */
 public class ProcessOutput {
-  private static final int ERROR_EXIT_CODE = -1;
-  
   private final StringBuilder myStdoutBuilder = new StringBuilder();
   private final StringBuilder myStderrBuilder = new StringBuilder();
-  private int myExitCode;
+  @Nullable private Integer myExitCode;
   private boolean myTimeout;
   private boolean myCancelled;
 
   public ProcessOutput() {
-    myExitCode = ERROR_EXIT_CODE; // until set explicitly, exit code denotes an error.
   }
 
   public ProcessOutput(final int exitCode) {
@@ -106,15 +103,16 @@ public class ProcessOutput {
   }
 
   public int getExitCode() {
-    return myExitCode;
+    Integer code = myExitCode;
+    return code == null ? -1 : code;
   }
 
   /**
-   * @return true if exit code wasn't set and is still set to default value (this might happen
+   * @return false if exit code wasn't set
    * for example, when our CapturingProcessHandler.runProcess() is interrupted)
    */
-  public boolean hasErrorExitCode() {
-    return getExitCode() == ERROR_EXIT_CODE;
+  public boolean isErrorCodeSet() {
+    return myExitCode != null;
   }
 
   public void setTimeout() {