From 742c1d9ee8b966d6aed68246b24279a314c55ebd Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Wed, 13 Aug 2014 14:03:55 -0400 Subject: [PATCH] LaunchBar - some checks to prevent NPE's in ui Change-Id: Iddece4d412b8d88ffba833b55950ec693a2817cc Reviewed-on: https://git.eclipse.org/r/31554 Tested-by: Hudson CI Reviewed-by: Elena Laskavaia --- .../internal/DefaultDescriptorLabelProvider.java | 16 +++++++++------- .../ui/internal/controls/ConfigSelector.java | 4 ++++ .../ui/internal/controls/ModeSelector.java | 2 ++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/DefaultDescriptorLabelProvider.java b/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/DefaultDescriptorLabelProvider.java index 20246cf6f66..bf5346c3c16 100644 --- a/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/DefaultDescriptorLabelProvider.java +++ b/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/DefaultDescriptorLabelProvider.java @@ -33,14 +33,16 @@ public class DefaultDescriptorLabelProvider extends LabelProvider { ILaunchBarManager manager = desc.getType().getManager(); ILaunchTarget target = manager.getActiveLaunchTarget(); ILaunchConfigurationType type = manager.getLaunchConfigurationType(desc, target); - ImageDescriptor imageDescriptor = DebugUITools.getDefaultImageDescriptor(type); - if (imageDescriptor != null) { - Image image = images.get(imageDescriptor); - if (image == null) { - image = imageDescriptor.createImage(); - images.put(imageDescriptor, image); + if (type != null) { + ImageDescriptor imageDescriptor = DebugUITools.getDefaultImageDescriptor(type); + if (imageDescriptor != null) { + Image image = images.get(imageDescriptor); + if (image == null) { + image = imageDescriptor.createImage(); + images.put(imageDescriptor, image); + } + return image; } - return image; } } catch (CoreException e) { Activator.log(e); diff --git a/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/controls/ConfigSelector.java b/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/controls/ConfigSelector.java index 9181202404f..7f475413ea1 100644 --- a/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/controls/ConfigSelector.java +++ b/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/controls/ConfigSelector.java @@ -168,6 +168,10 @@ public class ConfigSelector extends CSelector { return; } ILaunchConfigurationType configType = getManager().getLaunchConfigurationType(desc, target); + if (configType == null) { + MessageDialog.openError(shell, "No launch configuration type", "Cannot edit this configuration"); + return; + } ILaunchGroup group = DebugUIPlugin.getDefault().getLaunchConfigurationManager().getLaunchGroup(configType, mode.getIdentifier()); LaunchGroupExtension groupExt = DebugUIPlugin.getDefault().getLaunchConfigurationManager().getLaunchGroup(group.getIdentifier()); if (groupExt != null) { diff --git a/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/controls/ModeSelector.java b/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/controls/ModeSelector.java index c064433c4da..b5a38af0ea6 100644 --- a/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/controls/ModeSelector.java +++ b/launch/org.eclipse.cdt.launchbar.ui/src/org/eclipse/cdt/launchbar/ui/internal/controls/ModeSelector.java @@ -131,6 +131,8 @@ public class ModeSelector extends CSelector { protected ILaunchGroup getLaunchGroup(String mode) { try { ILaunchConfigurationType type = getManager().getLaunchConfigurationType(getManager().getActiveLaunchDescriptor(), getManager().getActiveLaunchTarget()); + if (type == null) + return null; return DebugUIPlugin.getDefault().getLaunchConfigurationManager().getLaunchGroup(type, mode); } catch (CoreException e) { Activator.log(e.getStatus());