diff --git a/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/ConfigBasedLaunchConfigurationProvider.java b/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/ConfigBasedLaunchConfigurationProvider.java index cee7f779560..ca88f6afa7c 100644 --- a/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/ConfigBasedLaunchConfigurationProvider.java +++ b/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/ConfigBasedLaunchConfigurationProvider.java @@ -14,6 +14,7 @@ import java.util.HashMap; import org.eclipse.cdt.launchbar.core.internal.Activator; import org.eclipse.core.runtime.CoreException; +import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationType; @@ -33,6 +34,8 @@ public class ConfigBasedLaunchConfigurationProvider extends AbstractLaunchConfig if (configMap.containsKey(element)) return true; return element.getType().getIdentifier().equals(typeId); + } catch (DebugException e) { + return false; // config does not exists, not point logging } catch (CoreException e) { Activator.log(e); return false; diff --git a/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/ProjectBasedLaunchDescriptorType.java b/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/ProjectBasedLaunchDescriptorType.java index 4f0e9f1a533..c1f087e36e4 100644 --- a/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/ProjectBasedLaunchDescriptorType.java +++ b/launch/org.eclipse.cdt.launchbar.core/src/org/eclipse/cdt/launchbar/core/ProjectBasedLaunchDescriptorType.java @@ -27,6 +27,10 @@ public abstract class ProjectBasedLaunchDescriptorType extends ConfigBasedLaunch return false; } + public boolean ownsConfiguration(ILaunchConfiguration element) { + return super.ownsConfiguration(element) && getProject(element) != null; + } + protected boolean ownsLaunchDescriptor(ILaunchDescriptor ld) { if (!(ld instanceof ProjectBasedLaunchDescriptorType)) return false; @@ -41,6 +45,8 @@ public abstract class ProjectBasedLaunchDescriptorType extends ConfigBasedLaunch if (element instanceof ILaunchConfiguration) { ILaunchConfiguration llc = (ILaunchConfiguration) element; IProject project = getProject(llc); + if (project == null) + return null; // TODO we need disable project based descriptor here return new ProjectBasedLaunchDescriptor(this, project, llc); } else if (element instanceof IProject) {