diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/DefaultLaunchDescriptorType.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/DefaultLaunchDescriptorType.java index 38c9c0024bb..78948c9c646 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/DefaultLaunchDescriptorType.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/DefaultLaunchDescriptorType.java @@ -3,7 +3,9 @@ package org.eclipse.launchbar.core.internal; import java.util.HashMap; import java.util.Map; +import org.eclipse.core.runtime.CoreException; import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchManager; import org.eclipse.launchbar.core.ILaunchDescriptor; import org.eclipse.launchbar.core.ILaunchDescriptorType; @@ -27,12 +29,20 @@ public class DefaultLaunchDescriptorType implements ILaunchDescriptorType { public ILaunchDescriptor getDescriptor(Object element) { if (element instanceof ILaunchConfiguration) { ILaunchConfiguration config = (ILaunchConfiguration) element; - DefaultLaunchDescriptor descriptor = descriptors.get(config); - if (descriptor == null) { - descriptor = new DefaultLaunchDescriptor(this, config); - descriptors.put(config, descriptor); - } - return descriptor; + try { + if( config.getType() != null && config.getType().isPublic() + && !(config.getAttribute(ILaunchManager.ATTR_PRIVATE, false))) { + + DefaultLaunchDescriptor descriptor = descriptors.get(config); + if (descriptor == null) { + descriptor = new DefaultLaunchDescriptor(this, config); + descriptors.put(config, descriptor); + } + return descriptor; + } + } catch(CoreException ce) { + Activator.log(ce.getStatus()); + } } return null; diff --git a/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchBarManager2Test.java b/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchBarManager2Test.java index d2d0106e4e2..d02fbfaba19 100644 --- a/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchBarManager2Test.java +++ b/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchBarManager2Test.java @@ -192,6 +192,7 @@ public class LaunchBarManager2Test { protected ILaunchConfigurationType mockLCType(String id) { ILaunchConfigurationType lctype = mock(ILaunchConfigurationType.class); + doReturn(true).when(lctype).isPublic(); doReturn(id).when(lctype).getIdentifier(); doReturn(lctype).when(lman).getLaunchConfigurationType(id); return lctype; diff --git a/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchBarManagerTest.java b/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchBarManagerTest.java index babf3026a44..69dc99168fe 100644 --- a/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchBarManagerTest.java +++ b/tests/org.eclipse.launchbar.core.tests/src/org/eclipse/launchbar/core/internal/LaunchBarManagerTest.java @@ -48,6 +48,7 @@ public class LaunchBarManagerTest { // Mocking ILaunchConfigurationType launchConfigType = mock(ILaunchConfigurationType.class); ILaunchConfiguration launchConfig = mock(ILaunchConfiguration.class); + doReturn(true).when(launchConfigType).isPublic(); doReturn(launchConfigType).when(launchConfig).getType(); doReturn("dummy").when(launchConfigType).getIdentifier(); doReturn(true).when(launchConfigType).supportsMode("run");