| Summary: | Grid: SWTException widget disposed exception when walking into grid with arrow keys | ||||||
|---|---|---|---|---|---|---|---|
| Product: | z_Archived | Reporter: | Cosmin Ghita <cghita> | ||||
| Component: | Nebula | Assignee: | Thomas Schindl <tom.schindl> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | tom.schindl | ||||
| Version: | unspecified | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Created attachment 177509 [details]
patch which fix the problem
I found the problem in Grid.java, line 7331: there we check if the focusColumn is null but we do not check if is diposed so I changed the line from:
if (focusColumn == null)
to:
if (focusColumn == null || focusColumn.isDisposed())
This fixed the problem that I had.
thanks fixed patch applied |
Build Identifier: 20100617-1415 This exception comes up in a grid which behaves as a tree which allows multiselection. It does not appear all the time just in certain cases. If is a selection in tree and we do a refresh and after that we just go up and down with arrow keys it will throw a widget disposed exception: at org.eclipse.swt.SWT.error( SWT.java: 4083) at org.eclipse.swt.SWT.error( SWT.java: 3998) at org.eclipse.swt.SWT.error( SWT.java: 3969) at org.eclipse.swt.widgets.Widget.error( Widget.java: 715) at org.eclipse.swt.widgets.Widget.checkWidget( Widget.java: 531) at org.eclipse.nebula.widgets.grid.GridColumn.isVisible( GridColumn.java: 474) at org.eclipse.nebula.widgets.grid.Grid.getVisibleColumn_DegradeLeft( Grid.java: 8568) at org.eclipse.nebula.widgets.grid.Grid.onKeyDown( Grid.java: 7499) at org.eclipse.nebula.widgets.grid.Grid.access$4( Grid.java: 7304) at org.eclipse.nebula.widgets.grid.Grid$8.handleEvent( Grid.java: 6467) at org.eclipse.swt.widgets.EventTable.sendEvent( EventTable.java: 84) at org.eclipse.swt.widgets.Display.sendEvent( Display.java: 3776) at org.eclipse.swt.widgets.Widget.sendEvent( Widget.java: 1367) at org.eclipse.swt.widgets.Widget.sendEvent( Widget.java: 1390) at org.eclipse.swt.widgets.Widget.sendEvent( Widget.java: 1375) at org.eclipse.swt.widgets.Widget.sendKeyEvent( Widget.java: 1404) at org.eclipse.swt.widgets.Widget.sendKeyEvent( Widget.java: 1400) at org.eclipse.swt.widgets.Canvas.sendKeyEvent( Canvas.java: 416) at org.eclipse.swt.widgets.Control.doCommandBySelector( Control.java: 939) at org.eclipse.swt.widgets.Display.windowProc( Display.java: 5068) at org.eclipse.swt.internal.cocoa.OS.objc_msgSend( OS.java: -2) at org.eclipse.swt.internal.cocoa.NSResponder.interpretKeyEvents( NSResponder.java: 56) at org.eclipse.swt.widgets.Composite.keyDown( Composite.java: 587) at org.eclipse.swt.widgets.Display.windowProc( Display.java: 4978) at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper( OS.java: -2) at org.eclipse.swt.widgets.Widget.callSuper( Widget.java: 220) at org.eclipse.swt.widgets.Widget.windowSendEvent( Widget.java: 1943) at org.eclipse.swt.widgets.Shell.windowSendEvent( Shell.java: 2008) at org.eclipse.swt.widgets.Display.windowProc( Display.java: 5040) Reproducible: Always Steps to Reproduce: 1.create a grid which behaves like a tree 2.select a row 3.refresh grid input 4.press arrow up/down to walk thru rows