ZeligsoftDev / CX4CBDDS

CX4CBDDS component modeling and generation tool
Apache License 2.0
8 stars 5 forks source link

NPE when displaying Connector definition on the CX tab of the Properties View #475

Closed eposse closed 2 months ago

eposse commented 1 year ago

Issue and tracking information

Developer's time Estimated effort to fix (hours):

Developer's Actual time spent on fix (hours)

Issue reporter to provide a detailed description of the issue in the space below

An error occurs when creating or selecting a connector definition (ConnectorDef) and then viewing its properties.

Steps to reproduce

  1. Create a connector definition (right-click on a package -> Add CX -> Other... -> Connector -> Connector) or select an existing connector definition
  2. If not already open, navigate to the CX tab of the Properties view.

Expected result

The properties of the connector definition should be shown and there should not be any exceptions or side-effects.

Actual result

Exception trace

java.lang.NullPointerException
    at com.zeligsoft.domain.idl3plus.ui.providers.IDL3PlusPropertyContentProvider.getChildren(IDL3PlusPropertyContentProvider.java:101)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1429)
    at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:350)
    at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:852)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:621)
    at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:823)
    at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:604)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel(AbstractTreeViewer.java:1804)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel(AbstractTreeViewer.java:1814)
    at org.eclipse.jface.viewers.AbstractTreeViewer.expandToLevel(AbstractTreeViewer.java:1128)
    at org.eclipse.jface.viewers.AbstractTreeViewer.lambda$0(AbstractTreeViewer.java:1084)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
    at org.eclipse.jface.viewers.AbstractTreeViewer.expandToLevel(AbstractTreeViewer.java:1083)
    at org.eclipse.jface.viewers.AbstractTreeViewer.expandToLevel(AbstractTreeViewer.java:1068)
    at com.zeligsoft.cx.ui.properties.sections.AbstractDeploymentPropertiesCustomSection.createTreeArea(AbstractDeploymentPropertiesCustomSection.java:189)
    at com.zeligsoft.cx.ui.properties.sections.AbstractDeploymentPropertiesCustomSection.createSectionForProperties(AbstractDeploymentPropertiesCustomSection.java:150)
    at com.zeligsoft.cx.ui.properties.sections.AbstractDeploymentPropertiesCustomSection.createSection(AbstractDeploymentPropertiesCustomSection.java:115)
    at com.zeligsoft.domain.dds4ccm.ui.properties.DomainPropertySection.createWidgetsForProperties(DomainPropertySection.java:227)
    at com.zeligsoft.domain.dds4ccm.ui.properties.DomainPropertySection.createContents(DomainPropertySection.java:86)
    at com.zeligsoft.cx.ui.properties.sections.AbstractCXPropertySection$3.run(AbstractCXPropertySection.java:216)
    at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236)
    at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
    at org.eclipse.swt.widgets.Display.syncExec(Display.java:5795)
    at com.zeligsoft.cx.ui.properties.sections.AbstractCXPropertySection.internalRefresh(AbstractCXPropertySection.java:209)
    at com.zeligsoft.cx.ui.properties.sections.AbstractCXPropertySection.setInput(AbstractCXPropertySection.java:304)
    at org.eclipse.ui.views.properties.tabbed.TabContents$5.run(TabContents.java:184)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
    at org.eclipse.ui.views.properties.tabbed.TabContents.setInput(TabContents.java:187)
    at org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage$SelectionChangedListener.selectionChanged(TabbedPropertySheetPage.java:221)
    at org.eclipse.jface.viewers.Viewer$1.run(Viewer.java:151)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
    at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:148)
    at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:2132)
    at org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:1178)
    at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1207)
    at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:242)
    at org.eclipse.jface.util.OpenStrategy.access$4(OpenStrategy.java:237)
    at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:402)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5685)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1423)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1449)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1432)
    at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1221)
    at org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyList.select(TabbedPropertyList.java:842)
    at org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyList$ListElement$1.mouseUp(TabbedPropertyList.java:169)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:224)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5685)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1423)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4953)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4446)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1158)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1047)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:658)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1420)
eposse commented 2 months ago

@emammoser I've tested them and merged them. Since you said you have no capacity to test anytime soon, can I close this one (and the others as I fix them)?

emammoser commented 2 months ago

We can close this one, but we may want to test others in the future depending on priority and how likely the issues are to affect our users.