diff --git a/platform/lang-impl/src/com/intellij/tools/Tool.java b/platform/lang-impl/src/com/intellij/tools/Tool.java
index 5e7b5b7e222c..fae05cea304f 100644
--- a/platform/lang-impl/src/com/intellij/tools/Tool.java
+++ b/platform/lang-impl/src/com/intellij/tools/Tool.java
@@ -264,10 +264,6 @@ public class Tool implements SchemeElement {
return name.toString();
}
- public void execute(AnActionEvent event, DataContext dataContext, long executionId) {
- execute(event, dataContext, executionId, null);
- }
-
/**
* @return true if task has been started successfully
*/
@@ -303,8 +299,9 @@ public class Tool implements SchemeElement {
}
OSProcessHandler handler = new OSProcessHandler(commandLine.createProcess(), commandLine.getCommandLineString());
handler.addProcessListener(new ToolProcessAdapter(project, synchronizeAfterExecution(), getName()));
- if (processListener != null)
+ if (processListener != null) {
handler.addProcessListener(processListener);
+ }
handler.startNotify();
return true;
}
diff --git a/platform/lang-impl/src/com/intellij/tools/ToolBeforeRunTask.java b/platform/lang-impl/src/com/intellij/tools/ToolBeforeRunTask.java
index aef500c1a94e..632e80830f60 100644
--- a/platform/lang-impl/src/com/intellij/tools/ToolBeforeRunTask.java
+++ b/platform/lang-impl/src/com/intellij/tools/ToolBeforeRunTask.java
@@ -22,6 +22,7 @@ import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.diagnostic.Logger;
+import com.intellij.openapi.util.Ref;
import com.intellij.util.concurrency.Semaphore;
import org.jdom.Element;
import org.jetbrains.annotations.NonNls;
@@ -72,7 +73,7 @@ public class ToolBeforeRunTask extends BeforeRunTask {
public boolean execute(final DataContext context, final long executionId) {
final Semaphore targetDone = new Semaphore();
- final boolean[] result = new boolean[1];
+ final Ref result = new Ref(false);
try {
ApplicationManager.getApplication().invokeAndWait(new Runnable() {
@@ -82,12 +83,12 @@ public class ToolBeforeRunTask extends BeforeRunTask {
boolean runToolResult = ToolAction.runTool(myToolActionId, context, null, executionId, new ProcessAdapter() {
@Override
public void processTerminated(ProcessEvent event) {
- result[0] = event.getExitCode() == 0;
+ result.set(event.getExitCode() == 0);
targetDone.up();
}
});
if (!runToolResult) {
- result[0] = false;
+ result.set(false);
targetDone.up();
}
}
@@ -98,7 +99,7 @@ public class ToolBeforeRunTask extends BeforeRunTask {
return false;
}
targetDone.waitFor();
- return result[0];
+ return result.get();
}
@Nullable