[jbosstools-issues] [JBoss JIRA] (JBIDE-15813) Unselecting embedded cartridge causes NPE after first try to create app failed.

Andre Dietisheim (JIRA) jira-events at lists.jboss.org
Tue Nov 12 14:30:08 EST 2013


    [ https://issues.jboss.org/browse/JBIDE-15813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922920#comment-12922920 ] 

Andre Dietisheim edited comment on JBIDE-15813 at 11/12/13 2:29 PM:
--------------------------------------------------------------------

This turns out to be a missing (overriden) DomainResource#equals which makes the binding converters fail to identify the selected domain within a refreshed list of domains. 
When you try to create a n application and fail, the job will refresh the domain and put a new list of domains into the wizard model. The selected domain is still the instance which was set initially (when the user selected the domain or the first domain was selected automatically). When the new list of domains is propagated, the bindings reinitialize the selected item in the combo (the items reflect the new list of domains). It does this via #equals and fails since new instances were fetched and #equals was not overriden to check business keys instead of instance equality..
                
      was (Author: adietish):
    This turns out to be a missing (overriden) DomainResource#equals which makes the binding converters fail to identify the selected domain. When you try to create a n application and fail, the job will refresh the domain and put a new list of domains into the wizard model. The selected domain is still the instance which was set initially. When the new list of domains is propagated, the bindings reinitialize the selected item in the combo (the items reflect the new list of domains). It does this via #equals and fails since new instances were fetched and #equals was not overriden to check business keys instead of instance equality..
                  
> Unselecting embedded cartridge causes NPE after first try to create app failed.
> -------------------------------------------------------------------------------
>
>                 Key: JBIDE-15813
>                 URL: https://issues.jboss.org/browse/JBIDE-15813
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: openshift
>    Affects Versions: 4.1.1.Beta1
>            Reporter: Marián Labuda
>            Assignee: Andre Dietisheim
>             Fix For: 4.1.1.CR1
>
>
> After attempt to create scalable app with php my admin cartridge (which should not be possible - I miss some dialog about it) and then try to modify cartridges before new attempt to create, NPE is thrown.
> 1. EXEC: create new openshift app
> 2. EXEC: type app name, confirm checkbox for php my admin and my sql, confirm checkbox for scalable app (IMPORTANT: check "Enable scaling" AFTER you added the cartridges)
> 3. EXEC: click next
> 4. EXEC: click Finish
> 5. ASSERT: Error dialog is shown - cannot create such app.
> 6. EXEC: click back
> 7. EXEC: try to clear checkbox for any of choosen cartridges
> 8. ASSERT: NPE dialog is show (check .log)
> !uncheck-and-npe.png!
> In the Eclipse log you'll spot the following:
> {code}
> java.lang.NullPointerException
> 	at org.jboss.tools.openshift.express.internal.ui.wizard.embed.EmbedCartridgeStrategyAdapter.getEmbedCartridgeStrategy(EmbedCartridgeStrategyAdapter.java:159)
> 	at org.jboss.tools.openshift.express.internal.ui.wizard.embed.EmbedCartridgeStrategyAdapter.checkStateChanged(EmbedCartridgeStrategyAdapter.java:83)
> 	at org.eclipse.jface.viewers.CheckboxTableViewer$1.run(CheckboxTableViewer.java:212)
> 	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> 	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
> 	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
> 	at org.eclipse.jface.viewers.CheckboxTableViewer.fireCheckStateChanged(CheckboxTableViewer.java:210)
> 	at org.eclipse.jface.viewers.CheckboxTableViewer.handleSelect(CheckboxTableViewer.java:306)
> 	at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1241)
> 	at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:239)
> 	at org.eclipse.jface.util.OpenStrategy.access$4(OpenStrategy.java:233)
> 	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:403)
> 	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
> 	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392)
> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3742)
> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3363)
> 	at org.eclipse.jface.window.Window.runEventLoop(Window.java:826)
> 	at org.eclipse.jface.window.Window.open(Window.java:802)
> 	at org.jboss.tools.openshift.express.internal.ui.utils.WizardUtils.openWizard(WizardUtils.java:59)
> 	at org.jboss.tools.openshift.express.internal.ui.utils.WizardUtils.openWizard(WizardUtils.java:49)
> 	at org.jboss.tools.openshift.express.internal.ui.command.NewApplicationHandler.open(NewApplicationHandler.java:46)
> 	at org.jboss.tools.openshift.express.internal.ui.command.NewApplicationHandler.execute(NewApplicationHandler.java:35)
> 	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:290)
> 	at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
> 	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:243)
> 	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:224)
> 	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
> 	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:167)
> 	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
> 	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
> 	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
> 	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:850)
> 	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:743)
> 	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$7(HandledContributionItem.java:727)
> 	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:662)
> 	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
> 	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392)
> 	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3742)
> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3363)
> 	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
> 	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
> 	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
> 	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
> 	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
> 	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
> 	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
> 	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
> 	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
> 	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
> 	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
> 	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
> 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
> 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
> 	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
> 	at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
> 	at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the jbosstools-issues mailing list