-
Notifications
You must be signed in to change notification settings - Fork 220
Closed
Labels
Milestone
Description
I am running the latest from main, looking at the structure view in Eclipse, having petclinic in my workspace. The tree shows subnodes for individual repositories, for example, by showing the query methods.
However, whenever I expand the parent node (the one for the repository in this case), I can see a NPE being thrown:
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "org.springframework.tooling.boot.ls.views.StereotypeNode.id()" is null
at org.springframework.tooling.boot.ls.views.StereotypeNode.equals(StereotypeNode.java:28)
at org.eclipse.jface.viewers.StructuredViewer.equals(StructuredViewer.java:664)
at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:3123)
at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.java:796)
at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:893)
at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:870)
at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:611)
at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:817)
at org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:1599)
at org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeViewer.java:904)
at org.eclipse.jface.viewers.AbstractTreeViewer$3.treeExpanded(AbstractTreeViewer.java:1611)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:170)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4660)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1657)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1680)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1665)
at org.eclipse.swt.widgets.TreeItem.sendExpand(TreeItem.java:1029)
at org.eclipse.swt.widgets.Tree.expandItem_expandChildren(Tree.java:1323)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:6701)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:239)
at org.eclipse.swt.widgets.Widget.mouseDownSuper(Widget.java:1216)
at org.eclipse.swt.widgets.Tree.mouseDownSuper(Tree.java:2190)
at org.eclipse.swt.widgets.Widget.mouseDown(Widget.java:1208)
at org.eclipse.swt.widgets.Control.mouseDown(Control.java:2598)
at org.eclipse.swt.widgets.Tree.mouseDown(Tree.java:2157)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:6286)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:239)
at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2407)
at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2502)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:6402)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:5705)
at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5845)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:117)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4000)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:678)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:583)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:185)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:627)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1431)
at org.eclipse.equinox.launcher.Main.main(Main.java:1403)
The reason seems to be that the tree node doesn't have an ID set (it is null). Not sure whether this is correct or not, but either the language server should make sure that the ID is not null, or the view should be able to deal with that correctly.