Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 330539 - SWT handles leak
Summary: SWT handles leak
Status: CLOSED INVALID
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.5.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-18 03:27 EST by a.gliznetsov CLA
Modified: 2010-11-18 03:29 EST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description a.gliznetsov CLA 2010-11-18 03:27:05 EST
Build Identifier: 20100218-1602

While creating an eclipse extension with a custom editor, I've discovered some swt handles leak. Here are the stack trace:

1.
java.lang.Error
	at org.eclipse.swt.graphics.Device.new_Object(Device.java:853)
	at org.eclipse.swt.graphics.Resource.init(Resource.java:85)
	at org.eclipse.swt.graphics.Color.<init>(Color.java:112)
	at org.eclipse.swt.custom.CTabFolder.getFillColor(CTabFolder.java:1197)
	at org.eclipse.swt.custom.CTabItem.drawClose(CTabItem.java:201)
	at org.eclipse.swt.custom.CTabItem.drawSelected(CTabItem.java:422)
	at org.eclipse.swt.custom.CTabItem.onPaint(CTabItem.java:807)
	at org.eclipse.swt.custom.CTabFolder.drawTabArea(CTabFolder.java:1147)
	at org.eclipse.swt.custom.CTabFolder.onPaint(CTabFolder.java:2306)
	at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:328)
	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.Composite.WM_PAINT(Composite.java:1425)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4001)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4632)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2411)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3501)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	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:368)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1287)


2.
java.lang.Error
	at org.eclipse.swt.graphics.Device.new_Object(Device.java:853)
	at org.eclipse.swt.graphics.Resource.init(Resource.java:85)
	at org.eclipse.swt.graphics.Image.<init>(Image.java:577)
	at org.eclipse.jface.resource.URLImageDescriptor.createImage(URLImageDescriptor.java:162)
	at org.eclipse.jface.resource.ImageDescriptor.createResource(ImageDescriptor.java:165)
	at org.eclipse.jface.resource.DeviceResourceManager.allocate(DeviceResourceManager.java:56)
	at org.eclipse.jface.resource.AbstractResourceManager.create(AbstractResourceManager.java:88)
	at org.eclipse.jface.resource.LocalResourceManager.allocate(LocalResourceManager.java:82)
	at org.eclipse.jface.resource.AbstractResourceManager.create(AbstractResourceManager.java:88)
	at org.eclipse.jface.resource.ResourceManager.createImageWithDefault(ResourceManager.java:192)
	at org.eclipse.jface.action.ActionContributionItem.updateImages(ActionContributionItem.java:1046)
	at org.eclipse.jface.action.ActionContributionItem.update(ActionContributionItem.java:783)
	at org.eclipse.jface.action.ActionContributionItem.fill(ActionContributionItem.java:342)
	at org.eclipse.jface.action.SubContributionItem.fill(SubContributionItem.java:77)
	at org.eclipse.jface.action.ToolBarManager.update(ToolBarManager.java:353)
	at org.eclipse.ui.internal.ViewPane.updateActionBars(ViewPane.java:447)
	at org.eclipse.ui.internal.ViewActionBars.updateActionBars(ViewActionBars.java:59)
	at org.eclipse.ui.part.PageBookView.showPageRec(PageBookView.java:995)
	at org.eclipse.ui.part.PageBookView.partHidden(PageBookView.java:1067)
	at org.eclipse.ui.views.properties.PropertySheet.partHidden(PropertySheet.java:283)
	at org.eclipse.ui.part.PageBookView$4.partHidden(PageBookView.java:1027)
	at org.eclipse.ui.internal.PartListenerList2$6.run(PartListenerList2.java:151)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.core.runtime.Platform.run(Platform.java:888)
	at org.eclipse.ui.internal.PartListenerList2.fireEvent(PartListenerList2.java:55)
	at org.eclipse.ui.internal.PartListenerList2.firePartHidden(PartListenerList2.java:149)
	at org.eclipse.ui.internal.PartService.firePartHidden(PartService.java:259)
	at org.eclipse.ui.internal.WorkbenchPagePartList.firePartHidden(WorkbenchPagePartList.java:64)
	at org.eclipse.ui.internal.PartList.partHidden(PartList.java:207)
	at org.eclipse.ui.internal.PartList.access$3(PartList.java:198)
	at org.eclipse.ui.internal.PartList$1.propertyChanged(PartList.java:49)
	at org.eclipse.ui.internal.WorkbenchPartReference.fireInternalPropertyChange(WorkbenchPartReference.java:375)
	at org.eclipse.ui.internal.WorkbenchPartReference.fireVisibilityChange(WorkbenchPartReference.java:536)
	at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:318)
	at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
	at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:274)
	at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.remove(PresentablePartFolder.java:203)
	at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.remove(LeftToRightTabOrder.java:58)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.removePart(TabbedStackPresentation.java:461)
	at org.eclipse.ui.internal.PartStack.remove(PartStack.java:867)
	at org.eclipse.ui.internal.EditorSashContainer.removeEditor(EditorSashContainer.java:282)
	at org.eclipse.ui.internal.EditorAreaHelper.closeEditor(EditorAreaHelper.java:84)
	at org.eclipse.ui.internal.EditorAreaHelper.closeEditor(EditorAreaHelper.java:62)
	at org.eclipse.ui.internal.WorkbenchPage.closeEditors(WorkbenchPage.java:1375)
	at org.eclipse.ui.internal.WorkbenchPage.closeEditor(WorkbenchPage.java:1435)
	at org.eclipse.ui.internal.EditorPane.doHide(EditorPane.java:61)
	at org.eclipse.ui.internal.PartStack.close(PartStack.java:543)
	at org.eclipse.ui.internal.EditorStack.close(EditorStack.java:206)
	at org.eclipse.ui.internal.PartStack$1.close(PartStack.java:122)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:83)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:270)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:279)
	at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder.access$1(DefaultTabFolder.java:1)
	at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder$1.closeButtonPressed(DefaultTabFolder.java:70)
	at org.eclipse.ui.internal.presentations.PaneFolder.notifyCloseListeners(PaneFolder.java:626)
	at org.eclipse.ui.internal.presentations.PaneFolder$3.close(PaneFolder.java:206)
	at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:2199)
	at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:327)
	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:3910)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	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:368)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1287)


Reproducible: Always