GitTextHandler: use OSProcessHandler instead of ColoredProcessHandler
authorKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Tue, 15 Mar 2011 12:09:31 +0000 (15:09 +0300)
committerKirill Likhodedov <kirill.likhodedov@jetbrains.com>
Tue, 15 Mar 2011 12:13:29 +0000 (15:13 +0300)
plugins/git4idea/src/git4idea/commands/GitTextHandler.java

index 1a7690f96abfd53328a39e2678475660535f14c1..eccf539284b6b23f54e839571c412fd5f7814581 100644 (file)
@@ -18,6 +18,7 @@ package git4idea.commands;
 import com.intellij.execution.ExecutionException;
 import com.intellij.execution.configurations.GeneralCommandLine;
 import com.intellij.execution.process.*;
+import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.util.Key;
 import com.intellij.openapi.vfs.VirtualFile;
@@ -36,6 +37,7 @@ public abstract class GitTextHandler extends GitHandler {
   @SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized"}) private OSProcessHandler myHandler;
   private volatile boolean myIsDestroyed;
   private final Object myProcessStateLock = new Object();
+  private static final Logger LOG = Logger.getInstance(GitTextHandler.class.getName());
 
   protected GitTextHandler(@NotNull Project project, @NotNull File directory, @NotNull GitCommand command) {
     super(project, directory, command);
@@ -53,7 +55,7 @@ public abstract class GitTextHandler extends GitHandler {
         return null;
       }
       final ProcessHandler processHandler = new MyRunnerMediator().createProcess(myCommandLine);
-      myHandler = (MyOSProcessHandler)processHandler;
+      myHandler = (OSProcessHandler)processHandler;
       return myHandler.getProcess();
     }
   }
@@ -141,11 +143,11 @@ public abstract class GitTextHandler extends GitHandler {
     }
   }
 
-  private static class MyOSProcessHandler extends RunnerMediator.CustomDestroyProcessHandler {
+  private static class MyOSProcessHandler extends OSProcessHandler {
     private final Charset myCharset;
 
     public MyOSProcessHandler(Process process, GeneralCommandLine commandLine, Charset charset) {
-      super(process, commandLine);
+      super(process, commandLine.getCommandLineString());
       myCharset = charset;
     }
 
@@ -154,5 +156,13 @@ public abstract class GitTextHandler extends GitHandler {
       Charset charset = myCharset;
       return charset == null ? super.getCharset() : charset;
     }
+
+    @Override
+    protected void destroyProcessImpl() {
+      if (!RunnerMediator.destroyProcess(getProcess())) {
+        super.destroyProcessImpl();
+      }
+    }
   }
+
 }