org.eclipse .swt.SWTException: «Виджет удален» из обновления таблицы

Приложение представляет собой RCP на базе Eclipse 3.6 (т.е. jface версии 3.5.2), работающую в Windows 7.

У меня есть собственный класс View, который содержит TableViewer и вызывает для него refresh () . Иногда, но не очень часто, это приводит к трассировке стека ниже. Он вызывается из потока пользовательского интерфейса. Я подозревал, что проблема связана с другим кодом, который изменяет список резервных копий на таблицу, но что любой код, который делает это, также запускается либо в методе syncExec, либо в методе asyncExec, поэтому я не Я не понимаю, как это может быть проблема синхронизации между изменением элементов таблицы и обновлением средства просмотра.

Есть идеи, что я могу сделать, чтобы этого не произошло?

!ENTRY org.eclipse.jface 4 2 2010-10-20 09:22:06.140 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface". !STACK 0 org.eclipse.swt.SWTException: Widget is disposed 
at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) 
at org.eclipse.swt.SWT.error(SWT.java:3770) 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.Widget.getData(Widget.java:521) 
at org.eclipse.jface.viewers.AbstractTableViewer.setSelectionToWidget(AbstractTableViewer.java:921) 
at org.eclipse.jface.viewers.StructuredViewer.setSelectionToWidget(StructuredViewer.java:1711) 
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1399) 
at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1353) 
at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1455) 
at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:537) 
at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1414)
... 
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:179)
8
задан Favonius 28 February 2011 в 16:44
поделиться