diff --git a/debug/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/ContextualLaunchAction.java b/debug/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/ContextualLaunchAction.java index 5b5df03bc26..681fd428759 100644 --- a/debug/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/ContextualLaunchAction.java +++ b/debug/org.eclipse.debug.ui/ui/org/eclipse/debug/ui/actions/ContextualLaunchAction.java @@ -15,11 +15,13 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import org.eclipse.core.expressions.Expression; import org.eclipse.core.expressions.IEvaluationContext; @@ -280,9 +282,12 @@ protected void fillMenu(Menu menu) { } } // now add collected launches + Set added = new HashSet<>(); for (Entry entry : launchConfigurations.entrySet()) { for (ILaunchConfiguration configuration : entry.getValue()) { - populateMenuItem(fMode, entry.getKey(), menu, configuration, accelerator++, null); + if (added.add(configuration)) { + populateMenuItem(fMode, entry.getKey(), menu, configuration, accelerator++, null); + } } }