Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » Random Error in SWT
Random Error in SWT [message #481388] Thu, 20 August 2009 13:56 Go to next message
Mark McLaren is currently offline Mark McLaren
Messages: 45
Registered: July 2009
Member
My users occasionally report a 'Widget is Disposed' error from the
Table.sendEraseItemEvent method. See below for an example stack trace.
It seems this method grabs a TableItem and assumes that it is not disposed.

My question is: Is this a bug in SWT or a problem with my code? Any
suggestions about how to fix this problem appreciated! Thanks


org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(SWT.java:3777)
at org.eclipse.swt.SWT.error(SWT.java:3695)
at org.eclipse.swt.SWT.error(SWT.java:3666)
at org.eclipse.swt.widgets.Widget.error(Widget.java:463)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:336)
at org.eclipse.swt.widgets.TableItem.getFont(TableItem.java:461 )
at
org.eclipse.swt.widgets.Table.sendEraseItemEvent(Table.java: 3300)
at
org.eclipse.swt.widgets.Table.CDDS_SUBITEMPREPAINT(Table.jav a:764)
at org.eclipse.swt.widgets.Table.wmNotifyChild(Table.java:6402)
at org.eclipse.swt.widgets.Control.wmNotify(Control.java:4718)
at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:17 56)
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:227 4)
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.Widget.wmPaint(Widget.java:2136)
at org.eclipse.swt.widgets.Control.WM_PAINT(Control.java:4352)
at org.eclipse.swt.widgets.Composite.WM_PAINT(Composite.java:12 66)
at org.eclipse.swt.widgets.Table.WM_PAINT(Table.java:5814)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3842 )
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.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:227 4)
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.Scrollable.wmScroll(Scrollable.java: 483)
at
org.eclipse.swt.widgets.Scrollable.WM_VSCROLL(Scrollable.jav a:376)
at org.eclipse.swt.widgets.Table.WM_VSCROLL(Table.java:6119)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3869 )
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.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:227 4)
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.Composite.WM_SYSCOMMAND(Composite.ja va:1598)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3863 )
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:227 4)
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.DispatchMessageW(Native
Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:23 71)
at
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3420)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825 )
at org.eclipse.jface.window.Window.open(Window.java:801)
at com.solaraccounts.Main$3$1.run(SourceFile:180)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:133)
at
org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:3800)
at
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3425)
at com.solaraccounts.Main.startIt(SourceFile:200)
at com.solaraccounts.Main.main(SourceFile:78)
Re: Random Error in SWT [message #481396 is a reply to message #481388] Thu, 20 August 2009 15:14 Go to previous message
Matthew Hall is currently offline Matthew Hall
Messages: 368
Registered: July 2009
Senior Member
This looks like a Table is sending an async repaint event for one of its
items, but that the TableItem was disposed by the time the repaint is
processed. I'd suggest filing a bug report with SWT.

Matthew

Mark McLaren wrote:
> My users occasionally report a 'Widget is Disposed' error from the
> Table.sendEraseItemEvent method. See below for an example stack trace.
> It seems this method grabs a TableItem and assumes that it is not disposed.
>
> My question is: Is this a bug in SWT or a problem with my code? Any
> suggestions about how to fix this problem appreciated! Thanks
>
>
> org.eclipse.swt.SWTException: Widget is disposed
> at org.eclipse.swt.SWT.error(SWT.java:3777)
> at org.eclipse.swt.SWT.error(SWT.java:3695)
> at org.eclipse.swt.SWT.error(SWT.java:3666)
> at org.eclipse.swt.widgets.Widget.error(Widget.java:463)
> at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:336)
> at org.eclipse.swt.widgets.TableItem.getFont(TableItem.java:461 )
> at org.eclipse.swt.widgets.Table.sendEraseItemEvent(Table.java: 3300)
> at
> org.eclipse.swt.widgets.Table.CDDS_SUBITEMPREPAINT(Table.jav a:764)
> at org.eclipse.swt.widgets.Table.wmNotifyChild(Table.java:6402)
> at org.eclipse.swt.widgets.Control.wmNotify(Control.java:4718)
> at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:17 56)
> 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:227 4)
> 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.Widget.wmPaint(Widget.java:2136)
> at org.eclipse.swt.widgets.Control.WM_PAINT(Control.java:4352)
> at org.eclipse.swt.widgets.Composite.WM_PAINT(Composite.java:12 66)
> at org.eclipse.swt.widgets.Table.WM_PAINT(Table.java:5814)
> at org.eclipse.swt.widgets.Control.windowProc(Control.java:3842 )
> 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.CallWindowProcW(Native Method)
> at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:227 4)
> 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.Scrollable.wmScroll(Scrollable.java: 483)
> at
> org.eclipse.swt.widgets.Scrollable.WM_VSCROLL(Scrollable.jav a:376)
> at org.eclipse.swt.widgets.Table.WM_VSCROLL(Table.java:6119)
> at org.eclipse.swt.widgets.Control.windowProc(Control.java:3869 )
> 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.CallWindowProcW(Native Method)
> at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:227 4)
> 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.Composite.WM_SYSCOMMAND(Composite.ja va:1598)
> at org.eclipse.swt.widgets.Control.windowProc(Control.java:3863 )
> 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:227 4)
> 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.DispatchMessageW(Native Method)
> at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:23 71)
> at
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3420)
> at org.eclipse.jface.window.Window.runEventLoop(Window.java:825 )
> at org.eclipse.jface.window.Window.open(Window.java:801)
> at com.solaraccounts.Main$3$1.run(SourceFile:180)
> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:3 5)
> at
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr onizer.java:133)
>
> at
> org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav a:3800)
> at
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3425)
> at com.solaraccounts.Main.startIt(SourceFile:200)
> at com.solaraccounts.Main.main(SourceFile:78)
>
>
Previous Topic:Multi column combobox
Next Topic:Drag selection image
Goto Forum:
  


Current Time: Sat Jul 26 03:21:57 EDT 2014

Powered by FUDForum. Page generated in 0.02254 seconds