| Summary: | LogViewer still throws null argument exceptions | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] PDE | Reporter: | Marco Maccaferri <macca> | ||||||||
| Component: | UI | Assignee: | Taras Lungol <bulick> | ||||||||
| Status: | VERIFIED FIXED | QA Contact: | |||||||||
| Severity: | normal | ||||||||||
| Priority: | P3 | CC: | bulick, curtis.windatt.public, remy.suen, Vikas.Chandra | ||||||||
| Version: | 3.6.2 | ||||||||||
| Target Milestone: | 4.8 M7 | ||||||||||
| Hardware: | PC | ||||||||||
| OS: | Windows XP | ||||||||||
| See Also: |
https://git.eclipse.org/r/114792 https://git.eclipse.org/c/pde/eclipse.pde.ui.git/commit/?id=3c034de6a922487d58a9d01715159443a7898b88 |
||||||||||
| Whiteboard: | |||||||||||
| Attachments: |
|
||||||||||
|
Description
Marco Maccaferri
Just got this on I20110601-2202, a 4.1 build. Multiple users got the same exceptions: org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.core.runtime.AssertionFailedException: null argument:) at org.eclipse.swt.SWT.error(SWT.java:4533) at org.eclipse.swt.SWT.error(SWT.java:4448) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4528) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4146) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:687) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:604) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at ...Application.start(Application.java:163) 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:673) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) at org.eclipse.equinox.launcher.Main.run(Main.java:1519) at org.eclipse.equinox.launcher.Main.main(Main.java:1492) Caused by: 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.StructuredViewer.assertElementsNotNull(StructuredViewer.java:586) at org.eclipse.jface.viewers.StructuredViewer.getRawChildren(StructuredViewer.java:1002) at org.eclipse.jface.viewers.ColumnViewer.getRawChildren(ColumnViewer.java:701) at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1349) at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:341) at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:907) at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:621) at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2635) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1913) at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:669) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1888) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1845) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1831) at org.eclipse.jface.viewers.StructuredViewer.lambda$0(StructuredViewer.java:1519) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1458) at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:354) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1419) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1519) at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:523) at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:1240) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1478) at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:1228) at org.eclipse.ui.internal.views.log.LogView$25.run(LogView.java:1105) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) ... 24 more Created attachment 272062 [details]
stack1
Created attachment 272063 [details]
stack2
Created attachment 272064 [details]
scr3
This problem caused by multithreding access to LogView. Write to log from one thread and refresh/read another thread. If limit of log entries enabled - possible situation when during limitation, element, that out of limit become NULL(please see scr3.jpg), but array size is not updeted yet - Meanwhile other thread perform refresh of LogView and copy this array with oversize and has Nulled element. Please see attached stacktraces: stack1 - log something; stack2 refresh LogView. Solution: Synchronize methods that removes elements. Please see my solution https://git.eclipse.org/r/114792 Gerrit change https://git.eclipse.org/r/114792 was merged to [master]. Commit: http://git.eclipse.org/c/pde/eclipse.pde.ui.git/commit/?id=3c034de6a922487d58a9d01715159443a7898b88 Thanks Taras. Please verify in March 14 build or later if this works for you. Difficult to verify as such. Verified by code inspection. |