From ebecae31679ebd256e31ab22a7fd1257bace3148 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Mon, 11 Jul 2016 14:15:36 -0400 Subject: [PATCH] Bug 497437 - Fix issues with null target. Avoid assert in enablement on null target. Fix order of initialization of null target in ILaunchTarget interface. Change-Id: I4c85433743bbb16c54514005b27e0414bb27c510 --- .../launchbar/core/internal/LaunchConfigProviderInfo.java | 6 +++++- .../launchbar/core/internal/target/LaunchTarget.java | 8 +------- .../org/eclipse/launchbar/core/target/ILaunchTarget.java | 7 ++++++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/LaunchConfigProviderInfo.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/LaunchConfigProviderInfo.java index 625b15eff8f..73c686f2f10 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/LaunchConfigProviderInfo.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/LaunchConfigProviderInfo.java @@ -83,8 +83,12 @@ public class LaunchConfigProviderInfo { } public boolean enabled(Object element) { - if (expression == null) + if (expression == null) { return true; + } + if (element == null) { + return true; + } try { EvaluationResult result = expression.evaluate(new EvaluationContext(null, element)); return (result == EvaluationResult.TRUE); diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTarget.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTarget.java index 5e1656d9c87..07c389b383e 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTarget.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/internal/target/LaunchTarget.java @@ -13,12 +13,6 @@ import org.eclipse.launchbar.core.target.ILaunchTargetWorkingCopy; import org.osgi.service.prefs.Preferences; public class LaunchTarget extends PlatformObject implements ILaunchTarget { - public static final ILaunchTarget NULL_TARGET = new LaunchTarget("null", "---") { - @Override - public ILaunchTargetWorkingCopy getWorkingCopy() { - throw new UnsupportedOperationException("getWorkingCopy is not supported for NULL_TARGET"); - }; - }; private final String typeId; private final String id; final Preferences attributes; @@ -27,7 +21,7 @@ public class LaunchTarget extends PlatformObject implements ILaunchTarget { * This should only be used to create the null target. There are no attributes supported on the * null target. */ - private LaunchTarget(String typeId, String id) { + public LaunchTarget(String typeId, String id) { this.typeId = typeId; this.id = id; this.attributes = null; diff --git a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTarget.java b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTarget.java index 4a4f32ff876..13bb91f2adb 100644 --- a/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTarget.java +++ b/bundles/org.eclipse.launchbar.core/src/org/eclipse/launchbar/core/target/ILaunchTarget.java @@ -26,7 +26,12 @@ public interface ILaunchTarget extends IAdaptable { /** * The null target, which is the default when no other target is available. */ - public static final ILaunchTarget NULL_TARGET = LaunchTarget.NULL_TARGET; + public static final ILaunchTarget NULL_TARGET = new LaunchTarget("null", "---") { //$NON-NLS-1$ //$NON-NLS-2$ + @Override + public ILaunchTargetWorkingCopy getWorkingCopy() { + throw new UnsupportedOperationException("getWorkingCopy is not supported for NULL_TARGET"); + }; + }; /** * The id for the target. It is unique for each type.