Opened 16 years ago
Closed 16 years ago
#86 closed defect (fixed)
Fix org.eclipse.swt.SWTError: No more handles bug
Reported by: | Stefanos Papadopoulos | Owned by: | Fabian Rohn |
---|---|---|---|
Priority: | major | Milestone: | MS1: First release (1.0.0) |
Component: | ui | Version: | pre-1.0 |
Keywords: | Cc: |
Description (last modified by )
To reproduce this exception, you have to build a big digital track in the editor. after a couple of times adding or deleting tiles you get this exception.
org.eclipse.swt.SWTError: No more handles at org.eclipse.swt.SWT.error(SWT.java:3803) at org.eclipse.swt.SWT.error(SWT.java:3695) at org.eclipse.swt.SWT.error(SWT.java:3666) at org.eclipse.swt.internal.ImageList.copyWithAlpha(ImageList.java:175) at org.eclipse.swt.internal.ImageList.set(ImageList.java:405) at org.eclipse.swt.internal.ImageList.add(ImageList.java:66) at org.eclipse.swt.widgets.Table.imageIndex(Table.java:2682) at org.eclipse.swt.widgets.TableItem.setImage(TableItem.java:1099) at org.eclipse.jface.viewers.TableViewerRow.setImage(TableViewerRow.java:134) at org.eclipse.jface.viewers.ViewerCell.setImage(ViewerCell.java:170) at org.eclipse.jface.viewers.WrappedViewerLabelProvider.update(WrappedViewerLabelProvider.java:166) at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:145) at org.eclipse.jface.viewers.AbstractTableViewer.doUpdateItem(AbstractTableViewer.java:386) 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.internalRefreshAll(AbstractTableViewer.java:695) at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:633) at org.eclipse.jface.viewers.AbstractTableViewer.internalRefresh(AbstractTableViewer.java:620) at org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1430) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1365) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1328) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1428) at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:537) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1387) at de.jacavi.rcp.views.TrackOutline.refresh(TrackOutline.java:171) at de.jacavi.rcp.views.TrackOutline.propertyChanged(TrackOutline.java:155) at org.eclipse.ui.part.WorkbenchPart.firePropertyChange(WorkbenchPart.java:129) at de.jacavi.rcp.editors.TrackDesigner.fireTrackModified(TrackDesigner.java:175) at de.jacavi.rcp.editors.TrackDesigner.handleAppendage(TrackDesigner.java:151) at de.jacavi.rcp.views.TileExplorer.invokeInsertion(TileExplorer.java:178) at de.jacavi.rcp.views.TileExplorer.access$0(TileExplorer.java:173) at de.jacavi.rcp.views.TileExplorer$1.widgetSelected(TileExplorer.java:105) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228) 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.Display.runDeferredEvents(Display.java:3823) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at de.jacavi.rcp.Application.start(Application.java:25) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at org.eclipse.equinox.launcher.Main.run(Main.java:1236) at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
Change History (4)
comment:1 Changed 16 years ago by
Component: | track → ui |
---|---|
Description: | modified (diff) |
Owner: | changed from Henrik Heimbuerger to Fabian Rohn |
Status: | new → assigned |
comment:2 Changed 16 years ago by
Status: | assigned → accepted |
---|
comment:3 Changed 16 years ago by
comment:4 Changed 16 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Note: See
TracTickets for help on using
tickets.
New commit by frohn (revision [266]):
[Fix for ticket #86] Fixed "No more handles bug"
When I created this view I was very tolerant with the instantiation of SWT Images. How we/I have learned, SWT Images are huge resource devourer. Thus its important to dispose every single image or better - to cache them with an jface ImageRegistry?, like I do.
Finally I could denote a remarable performance raise in the Track Designer.