| Summary: | [tests] NPE logged from SWT during JDT debug tests | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] JDT | Reporter: | Simeon Andreev <simeon.danailov.andreev> | ||||
| Component: | Debug | Assignee: | JDT-Debug-Inbox <jdt-debug-inbox> | ||||
| Status: | RESOLVED WORKSFORME | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | loskutov, sarika.sinha | ||||
| Version: | 4.9 | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | PC | ||||||
| OS: | Linux | ||||||
| See Also: |
https://bugs.eclipse.org/bugs/show_bug.cgi?id=526199 https://bugs.eclipse.org/bugs/show_bug.cgi?id=533367 https://git.eclipse.org/r/129669 https://git.eclipse.org/c/jdt/eclipse.jdt.debug.git/commit/?id=dcdd981305fff668d6f166170b6b6e06ffa3a032 https://bugs.eclipse.org/bugs/show_bug.cgi?id=561338 |
||||||
| Whiteboard: | stalebug | ||||||
| Attachments: |
|
||||||
Is it happening on all OS or only on gtk? New Gerrit change created: https://git.eclipse.org/r/129669 (In reply to Sarika Sinha from comment #1) > Is it happening on all OS or only on gtk? I don't see it when I run the tests on Windows 10. So I assume this is GTK3 only. Looks like a timing issue, I'm trying to understand the deltas which are sent during a mini-example that shows the problem:
1. org.eclipse.jdt.debug.tests.ui.DebugViewTests.testWrongSelectionBug538303()
2. org.eclipse.jdt.debug.tests.launching.LongClassPathTests.testVeryLongClasspathWithClasspathOnlyJar()
Then the NPE occurs, the test itself is in tearDown(), removing launches (to avoid muddling the Debug View for the upcoming tests):
at org.eclipse.jdt.debug.tests.TestUtil.runEventLoop(TestUtil.java:100)
at org.eclipse.jdt.debug.tests.TestUtil.cleanUp(TestUtil.java:69)
at org.eclipse.jdt.debug.tests.AbstractDebugTest.tearDown(AbstractDebugTest.java:2578)
at org.eclipse.jdt.debug.tests.launching.LongClassPathTests.tearDown(LongClassPathTests.java:94)
So far I have tried different types of waiting for jobs / processing UI events to no avail.
Gerrit change https://git.eclipse.org/r/129669 was merged to [master]. Commit: http://git.eclipse.org/c/jdt/eclipse.jdt.debug.git/commit/?id=dcdd981305fff668d6f166170b6b6e06ffa3a032 This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant. -- The automated Eclipse Genie. @Simeon, Do you still get these NPEs? (In reply to Sarika Sinha from comment #7) > @Simeon, > Do you still get these NPEs? I ran DebugViewTests locally a few times, I don't see logged NPEs. I assume this bug can be closed. |
Created attachment 275883 [details] Logs from a green build with many occurrences of the NPE in SWT. Seen with current master or with: Eclipse SDK Version: 2018-12 (4.10) Build id: I20180914-0620 NPE is logged as follows: !ENTRY org.eclipse.ui 4 0 2018-06-22 10:06:05.834 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.core.runtime.AssertionFailedException: null argument: at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:85) at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:73) at org.eclipse.jface.viewers.AbstractTreeViewer.getTreePathFromItem(AbstractTreeViewer.java:2949) at org.eclipse.debug.internal.ui.viewers.model.InternalTreeModelViewer.getTreePathFromItem(InternalTreeModelViewer.java:1205) at org.eclipse.jface.viewers.TreeViewer.virtualLazyUpdateWidget(TreeViewer.java:982) at org.eclipse.jface.viewers.TreeViewer.lambda$1(TreeViewer.java:255) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5686) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1370) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1396) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1379) at org.eclipse.swt.widgets.Tree.checkData(Tree.java:337) at org.eclipse.swt.widgets.Tree.cellDataProc(Tree.java:260) at org.eclipse.swt.widgets.Display.cellDataProc(Display.java:865) at org.eclipse.swt.internal.gtk.GTK._gtk_tree_view_column_cell_set_cell_data(Native Method) at org.eclipse.swt.internal.gtk.GTK.gtk_tree_view_column_cell_set_cell_data(GTK.java:7813) at org.eclipse.swt.widgets.Tree.calculateWidth(Tree.java:415) at org.eclipse.swt.widgets.Tree.calculateWidth(Tree.java:463) at org.eclipse.swt.widgets.Tree.setScrollWidth(Tree.java:3753) at org.eclipse.swt.widgets.Tree.cellDataProc(Tree.java:319) at org.eclipse.swt.widgets.Display.cellDataProc(Display.java:865) at org.eclipse.swt.internal.gtk.GTK._gtk_tree_store_set(Native Method) at org.eclipse.swt.internal.gtk.GTK.gtk_tree_store_set(GTK.java:7657) at org.eclipse.swt.widgets.TreeItem.setText(TreeItem.java:1741) at org.eclipse.swt.widgets.TreeItem.setText(TreeItem.java:1749) at org.eclipse.jface.viewers.TreeViewer.disassociate(TreeViewer.java:1055) at org.eclipse.jface.viewers.AbstractTreeViewer.disassociateChildren(AbstractTreeViewer.java:867) at org.eclipse.jface.viewers.AbstractTreeViewer.disassociate(AbstractTreeViewer.java:852) at org.eclipse.jface.viewers.TreeViewer.disassociate(TreeViewer.java:1057) at org.eclipse.jface.viewers.TreeViewer.lambda$4(TreeViewer.java:815) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1446) at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:360) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1407) at org.eclipse.jface.viewers.TreeViewer.remove(TreeViewer.java:807) at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.handleRemove(TreeModelContentProvider.java:1554) at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.updateNodes(TreeModelContentProvider.java:1274) at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.updateNodes(TreeModelContentProvider.java:1307) at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.updateModel(TreeModelContentProvider.java:559) at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.doModelChanged(TreeModelContentProvider.java:527) at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider.access$0(TreeModelContentProvider.java:521) at org.eclipse.debug.internal.ui.viewers.model.TreeModelContentProvider$DelayedDoModelChangedJob.runInUIThread(TreeModelContentProvider.java:433) at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4915) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4521) at org.eclipse.jdt.debug.tests.DebugSuite.run(DebugSuite.java:71) at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:367) at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:202) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:155) at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:81) at org.eclipse.tycho.surefire.osgibooter.OsgiSurefireBooter.run(OsgiSurefireBooter.java:107) at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication$1.run(AbstractUITestApplication.java:35) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4915) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4521) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1170) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1059) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:625) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:560) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:31) at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:120) at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:37) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:656) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:592) at org.eclipse.equinox.launcher.Main.run(Main.java:1498) at org.eclipse.equinox.launcher.Main.main(Main.java:1471)