-
Notifications
You must be signed in to change notification settings - Fork 148
Closed
Labels
Milestone
Description
Seen in 4.38 latest nightly, however already present in 4.34, probably earlier.
I could not reproduce it in Eclipse 4.30, so it is a regression inbetween.
TL;DR: removing breakpoint if Breakpoints view shows a tree with breakpoint groups results in one or multiple errors reported to the error log.
- The code can be anything, just a trivial "helloworld" example with a single main method.
- Open Breakpoints view, enable "Group By" by anything except "Breakpoint", so a tree is shown with few breakpoints
- Create and delete breakpoint few times by double clicking on left editor ruler
- Errors are logged...
Typically there is at least a pair of errors like:
eclipse.buildId=4.38.0.I20250908-1800
java.version=21.0.8-9
java.vendor=N/A
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments: -os linux -ws gtk -arch x86_64 -data file:/data/4x_platform_workspace/
org.eclipse.debug.ui
Error
Tue Sep 09 11:56:49 CEST 2025
Error logged from Debug UI:
java.lang.NullPointerException: Input to viewer update should not be null
at org.eclipse.debug.internal.ui.viewers.model.ViewerUpdateMonitor.<init>(ViewerUpdateMonitor.java:90)
at org.eclipse.debug.internal.ui.viewers.model.ChildrenUpdate.<init>(ChildrenUpdate.java:45)
at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.doUpdateElement(TreeModelContentProvider.java:1187)
at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.updateElement(TreeModelContentProvider.java:1759)
at org.eclipse.jface.viewers.TreeViewer.virtualLazyUpdateWidget(TreeViewer.java:1001)
at org.eclipse.jface.viewers.TreeViewer.lambda$1(TreeViewer.java:260)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5884)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1656)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1682)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1665)
at org.eclipse.swt.widgets.Tree.checkData(Tree.java:375)
at org.eclipse.swt.widgets.Tree.cellDataProc(Tree.java:307)
at org.eclipse.swt.widgets.Display.cellDataProc(Display.java:997)
at org.eclipse.swt.internal.gtk.GTK.gtk_tree_view_column_cell_set_cell_data(Native Method)
at org.eclipse.swt.widgets.Tree.calculateWidth(Tree.java:446)
at org.eclipse.swt.widgets.Tree.calculateWidth(Tree.java:521)
at org.eclipse.swt.widgets.Tree.setScrollWidth(Tree.java:3888)
at org.eclipse.swt.widgets.Tree.cellDataProc(Tree.java:356)
at org.eclipse.swt.widgets.Display.cellDataProc(Display.java:997)
at org.eclipse.swt.internal.gtk.GTK.gtk_tree_store_clear(Native Method)
at org.eclipse.swt.widgets.Tree.removeAll(Tree.java:2978)
at org.eclipse.jface.viewers.TreeViewer.removeAll(TreeViewer.java:289)
at org.eclipse.jface.viewers.AbstractTreeViewer.lambda$2(AbstractTreeViewer.java:1627)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1391)
at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:367)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1352)
at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1623)
at org.eclipse.debug.internal.ui.viewers.model.InternalTreeModelViewer.inputChanged(InternalTreeModelViewer.java:486)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:279)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1635)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView.setViewerInput(BreakpointsView.java:295)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView.viewerInputUpdateComplete(BreakpointsView.java:309)
at org.eclipse.debug.internal.ui.views.variables.VariablesView.lambda$0(VariablesView.java:297)
at org.eclipse.debug.internal.ui.viewers.model.provisional.ViewerInputService.lambda$1(ViewerInputService.java:54)
at org.eclipse.debug.internal.ui.viewers.model.ViewerInputUpdate$1.runInUIThread(ViewerInputUpdate.java:75)
at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:148)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5074)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4543)
followed by
eclipse.buildId=4.38.0.I20250908-1800
java.version=21.0.8-9
java.vendor=N/A
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments: -os linux -ws gtk -arch x86_64 -data file:/data/4x_platform_workspace/
org.eclipse.ui
Error
Tue Sep 09 11:56:49 CEST 2025
Unhandled event loop exception
java.lang.NullPointerException: Cannot invoke "Object.equals(Object)" because the return value of "org.eclipse.debug.internal.ui.viewers.model.ChildrenUpdate.getViewerInput()" is null
at org.eclipse.debug.internal.ui.viewers.model.ChildrenUpdate.doEquals(ChildrenUpdate.java:212)
at org.eclipse.debug.internal.ui.viewers.model.ViewerUpdateMonitor.equals(ViewerUpdateMonitor.java:256)
at java.base/java.util.LinkedList.remove(LinkedList.java:376)
at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.coalesce(TreeModelContentProvider.java:971)
at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.schedule(TreeModelContentProvider.java:955)
at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.doUpdateElement(TreeModelContentProvider.java:1188)
at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.updateElement(TreeModelContentProvider.java:1759)
at org.eclipse.jface.viewers.TreeViewer.virtualLazyUpdateWidget(TreeViewer.java:1001)
at org.eclipse.jface.viewers.TreeViewer.lambda$1(TreeViewer.java:260)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5884)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1656)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1682)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1665)
at org.eclipse.swt.widgets.Tree.checkData(Tree.java:375)
at org.eclipse.swt.widgets.Tree.cellDataProc(Tree.java:307)
at org.eclipse.swt.widgets.Display.cellDataProc(Display.java:997)
at org.eclipse.swt.internal.gtk.GTK.gtk_tree_view_column_cell_set_cell_data(Native Method)
at org.eclipse.swt.widgets.Tree.calculateWidth(Tree.java:446)
at org.eclipse.swt.widgets.Tree.calculateWidth(Tree.java:521)
at org.eclipse.swt.widgets.Tree.setScrollWidth(Tree.java:3888)
at org.eclipse.swt.widgets.Tree.cellDataProc(Tree.java:356)
at org.eclipse.swt.widgets.Display.cellDataProc(Display.java:997)
at org.eclipse.swt.internal.gtk.GTK.gtk_tree_store_clear(Native Method)
at org.eclipse.swt.widgets.Tree.removeAll(Tree.java:2978)
at org.eclipse.jface.viewers.TreeViewer.removeAll(TreeViewer.java:289)
at org.eclipse.jface.viewers.AbstractTreeViewer.lambda$2(AbstractTreeViewer.java:1627)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1391)
at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:367)
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1352)
at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1623)
at org.eclipse.debug.internal.ui.viewers.model.InternalTreeModelViewer.inputChanged(InternalTreeModelViewer.java:486)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:279)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1635)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView.setViewerInput(BreakpointsView.java:295)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsView.viewerInputUpdateComplete(BreakpointsView.java:309)
at org.eclipse.debug.internal.ui.views.variables.VariablesView.lambda$0(VariablesView.java:297)
at org.eclipse.debug.internal.ui.viewers.model.provisional.ViewerInputService.lambda$1(ViewerInputService.java:54)
at org.eclipse.debug.internal.ui.viewers.model.ViewerInputUpdate$1.runInUIThread(ViewerInputUpdate.java:75)
at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:148)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5074)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4543)