From 170cc44681c0ec78d6aca6939aaaf1b0e3ee4d53 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Fri, 27 Sep 2002 19:25:38 +0000 Subject: [PATCH] suppress error on cancel --- .../org/eclipse/cdt/launch/AbstractCLaunchDelegate.java | 4 ++++ .../cdt/launch/internal/CoreFileLaunchDelegate.java | 9 +++++---- .../internal/LocalCLaunchConfigurationDelegate.java | 9 +++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java index 4d3193a067b..281248548f3 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java @@ -95,6 +95,10 @@ abstract public class AbstractCLaunchDelegate implements ILaunchConfigurationDel throw new CoreException(new Status(IStatus.ERROR, getPluginID(), code, newMessage, exception)); } + protected void cancel(String message, int code) throws CoreException { + throw new CoreException(new Status(IStatus.OK, getPluginID(), code, message, null)); + } + abstract protected String getPluginID(); diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CoreFileLaunchDelegate.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CoreFileLaunchDelegate.java index b420292125c..31720560c6d 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CoreFileLaunchDelegate.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CoreFileLaunchDelegate.java @@ -55,7 +55,7 @@ public class CoreFileLaunchDelegate extends AbstractCLaunchDelegate { IPath corefile = getCoreFilePath((IProject)cproject.getResource()); if ( corefile == null ) { - abort("No Corefile selected", null, ICDTLaunchConfigurationConstants.ERR_NO_COREFILE); + cancel("No Corefile selected", ICDTLaunchConfigurationConstants.ERR_NO_COREFILE); } try { dsession = debugConfig.getDebugger().createCoreSession(config, exe, corefile); @@ -80,11 +80,12 @@ public class CoreFileLaunchDelegate extends AbstractCLaunchDelegate { false); } - private IPath getCoreFilePath(final IProject project) { + private IPath getCoreFilePath(final IProject project) throws CoreException { final Shell shell = LaunchUIPlugin.getShell(); final String res[] = { null }; - if (shell == null) - return null; + if (shell == null) { + abort( "No Shell availible in Launch", null, ICDTLaunchConfigurationConstants.ERR_INTERNAL_ERROR); + } Display display = shell.getDisplay(); display.syncExec(new Runnable() { public void run() { diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/LocalCLaunchConfigurationDelegate.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/LocalCLaunchConfigurationDelegate.java index de362650e1f..35dfc235656 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/LocalCLaunchConfigurationDelegate.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/LocalCLaunchConfigurationDelegate.java @@ -80,7 +80,7 @@ public class LocalCLaunchConfigurationDelegate extends AbstractCLaunchDelegate { else if (debugMode.equals(ICDTLaunchConfigurationConstants.DEBUGGER_MODE_ATTACH)) { int pid = getProcessID(); if ( pid == -1 ) { - abort("No Process ID selected", null, ICDTLaunchConfigurationConstants.ERR_NO_PROCESSID); + cancel("No Process ID selected", ICDTLaunchConfigurationConstants.ERR_NO_PROCESSID); } dsession = debugConfig.getDebugger().createAttachSession(config, exe, pid); } @@ -117,11 +117,12 @@ public class LocalCLaunchConfigurationDelegate extends AbstractCLaunchDelegate { monitor.done(); } - private int getProcessID() { + private int getProcessID() throws CoreException { final Shell shell = LaunchUIPlugin.getShell(); final int pid[] = {-1}; - if ( shell == null ) - return -1; + if ( shell == null ) { + abort( "No Shell availible in Launch", null, ICDTLaunchConfigurationConstants.ERR_INTERNAL_ERROR); + } Display display = shell.getDisplay(); display.syncExec(new Runnable() { public void run() {