Hello,
disposing columns of a TableViewer sometimes results in a
NullPointerExcpetion in getData of swt.widgets.Widget. Called by the
ColumnViewer.
It does not happen every time. We are able to reproduce it by creating
and disposing columns shortly after another. I' was not able to
reproduce why the data is null there. In our project we do not set it
manually.
An extract of the stack trace is following.
Thanks,
Florian
java.lang.NullPointerException
at org.eclipse.swt.widgets.Widget.getData(Widget.java:554)
at
org.eclipse.jface.viewers.ColumnViewer.getViewerColumn(ColumnViewer.java:186)
at
org.eclipse.jface.viewers.AbstractTableViewer.doUpdateItem(AbstractTableViewer.java:377)
at
org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:466)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:880)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at
org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2041)
at
org.eclipse.jface.viewers.AbstractTableViewer$1.handleEvent(AbstractTableViewer.java:84)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
at org.eclipse.swt.widgets.Table.checkData(Table.java:928)
at org.eclipse.swt.widgets.Table.wmNotifyChild(Table.java:6292)
at org.eclipse.swt.widgets.Control.wmNotify(Control.java:4718)
at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1756)
at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:4348)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3841)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4541)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2274)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:333)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:199)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3877)
at org.eclipse.swt.widgets.Table.windowProc(Table.java:5476)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4528)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2274)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:333)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:199)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3877)
at org.eclipse.swt.widgets.Table.windowProc(Table.java:5476)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4528)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2274)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:205)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:199)
at org.eclipse.swt.widgets.Table.windowProc(Table.java:5388)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4541)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2274)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:333)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:199)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3877)
at org.eclipse.swt.widgets.Table.windowProc(Table.java:5476)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4541)
at org.eclipse.swt.internal.win32.OS.SendMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:3022)
at org.eclipse.swt.widgets.Table.destroyItem(Table.java:1788)
at
org.eclipse.swt.widgets.TableColumn.destroyWidget(TableColumn.java:193)
at org.eclipse.swt.widgets.Widget.release(Widget.java:814)
at org.eclipse.swt.widgets.Widget.dispose(Widget.java:441)
at
de.fme.plantdoc.ui.listenAnzeiger.ColumnConfigurator.disposeOldColumns(ColumnConfigurator.java:200)
[...]