Project: appceleratorstudio
Issue TISTUD-5064: No menu items appear under Run/Debug/etc when an invalid Android SDK path is set in preferences
1. Open Preferences > Studio > Platforms > Android; 2. In the Android SDK home, enter a path that exists but doesn't contain any Android SDK; Another way to get into this state is to remove the path completely, go to Dashboard to install from Android install manager, and then quit before installing a valid SDK. 3. Select an existing project with Android enabled and click on the Run icon in Project Explorer toolbar. Expected result: the proper menu items get populated. Actual result: nothing happens, and the following exception appears in the log. {code} !ENTRY org.eclipse.ui 4 0 2013-07-02 14:24:24.032 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; com.appcelerator.titanium.core.internal.mobile.MobilePlatformsRegistry$LazyMobilePlatform.configurationStatus(MobilePlatformsRegistry.java:296) com.appcelerator.titanium.core.TitaniumProjectPropertyTester.test(TitaniumProjectPropertyTester.java:104) org.eclipse.core.internal.expressions.Property.test(Property.java:58) org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:99) org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53) org.eclipse.core.internal.expressions.IterateExpression.evaluate(IterateExpression.java:150) org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53) org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:72) org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53) org.eclipse.core.internal.expressions.AndExpression.evaluate(AndExpression.java:29) org.eclipse.core.internal.expressions.ReferenceExpression.evaluate(ReferenceExpression.java:70) org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:53) org.eclipse.core.internal.expressions.EnablementExpression.evaluate(EnablementExpression.java:53) org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExtension.evalEnablementExpression(LaunchShortcutExtension.java:287) org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationManager.getLaunchShortcuts(LaunchConfigurationManager.java:717) com.appcelerator.titanium.ui.AbstractLaunchActionProvider.fillMenu(AbstractLaunchActionProvider.java:80) com.aptana.ui.actions.DefaultNavigatorActionProvider.run(DefaultNavigatorActionProvider.java:107) com.aptana.ui.actions.DefaultNavigatorContributionItem$1.widgetSelected(DefaultNavigatorContributionItem.java:57) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Display.sendEvent(Display.java:4166) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1466) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1489) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1474) org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1279) org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4012) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3651) org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997) org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138) org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) com.appcelerator.titanium.rcp.IDEApplication.start(IDEApplication.java:125) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636) org.eclipse.equinox.launcher.Main.basicRun(Main.java:591) org.eclipse.equinox.launcher.Main.run(Main.java:1450) org.eclipse.equinox.launcher.Main.main(Main.java:1426) {code}
Story points: 3