mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
CIDR-debugger: escaping program parameters
This commit is contained in:
@@ -28,6 +28,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.MessageType;
|
||||
import com.intellij.openapi.wm.ToolWindowId;
|
||||
import com.intellij.openapi.wm.ToolWindowManager;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.event.HyperlinkEvent;
|
||||
@@ -47,16 +48,16 @@ public class ExecutionUtil {
|
||||
}
|
||||
|
||||
public static void handleExecutionError(@NotNull final Project project,
|
||||
@NotNull String toolWindowId,
|
||||
@NotNull final String toolWindowId,
|
||||
@NotNull String taskName,
|
||||
@NotNull ExecutionException e) {
|
||||
if (e instanceof RunCanceledByUserException) return;
|
||||
|
||||
LOG.debug(e);
|
||||
|
||||
String error = e.getMessage();
|
||||
HyperlinkListener listener = null;
|
||||
|
||||
LOG.debug(error);
|
||||
|
||||
if (error.contains("87") && e instanceof ProcessNotCreatedException) {
|
||||
final String commandLineString = ((ProcessNotCreatedException)e).getCommandLine().getCommandLineString();
|
||||
if (commandLineString.length() > 1024 * 32) {
|
||||
@@ -72,12 +73,18 @@ public class ExecutionUtil {
|
||||
};
|
||||
}
|
||||
}
|
||||
String message = ExecutionBundle.message("error.running.configuration.with.error.error.message", taskName, error);
|
||||
final String message = ExecutionBundle.message("error.running.configuration.with.error.error.message", taskName, error);
|
||||
|
||||
if (ApplicationManager.getApplication().isUnitTestMode()) {
|
||||
LOG.error(message);
|
||||
}
|
||||
|
||||
ToolWindowManager.getInstance(project).notifyByBalloon(toolWindowId, MessageType.ERROR, message, null, listener);
|
||||
final HyperlinkListener finalListener = listener;
|
||||
UIUtil.invokeLaterIfNeeded(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ToolWindowManager.getInstance(project).notifyByBalloon(toolWindowId, MessageType.ERROR, message, null, finalListener);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.intellij.xdebugger;
|
||||
|
||||
import com.intellij.execution.ExecutionException;
|
||||
import com.intellij.execution.ui.RunContentDescriptor;
|
||||
import com.intellij.execution.configurations.RunProfile;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -113,6 +114,7 @@ public interface XDebugSession extends AbstractDebuggerSession {
|
||||
void addSessionListener(@NotNull XDebugSessionListener listener);
|
||||
void removeSessionListener(@NotNull XDebugSessionListener listener);
|
||||
|
||||
void reportError(String message);
|
||||
|
||||
@NotNull
|
||||
String getSessionName();
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.execution.filters.HyperlinkInfo;
|
||||
import com.intellij.execution.filters.OpenFileHyperlinkInfo;
|
||||
import com.intellij.execution.process.ProcessHandler;
|
||||
import com.intellij.execution.runners.ExecutionEnvironment;
|
||||
import com.intellij.execution.runners.ExecutionUtil;
|
||||
import com.intellij.execution.runners.ProgramRunner;
|
||||
import com.intellij.execution.ui.ConsoleView;
|
||||
import com.intellij.execution.ui.ConsoleViewContentType;
|
||||
@@ -28,8 +29,11 @@ import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.MessageType;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.wm.ToolWindowId;
|
||||
import com.intellij.openapi.wm.ToolWindowManager;
|
||||
import com.intellij.util.EventDispatcher;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import com.intellij.xdebugger.*;
|
||||
@@ -536,6 +540,16 @@ public class XDebugSessionImpl implements XDebugSession {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reportError(final String message) {
|
||||
UIUtil.invokeLaterIfNeeded(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ToolWindowManager.getInstance(myProject).notifyByBalloon(ToolWindowId.DEBUG, MessageType.ERROR, message, null, null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private class MyBreakpointListener implements XBreakpointListener<XBreakpoint<?>> {
|
||||
public void breakpointAdded(@NotNull final XBreakpoint<?> breakpoint) {
|
||||
if (!myBreakpointsDisabled) {
|
||||
|
||||
Reference in New Issue
Block a user