Community
Participate
Working Groups
Build: I20070501-0010 1) Capture Sleak snapshot 2) Hit F1 to open help view 3) Close help view 4) Capture Sleak diff -> Each time this is repeated, two images are leaked. The allocation stack traces look like this (slight variation between the two images, but top frames are the same): java.lang.Error at java.lang.Throwable.<init>(Throwable.java:56) at org.eclipse.swt.graphics.Device.new_Object(Device.java:787) at org.eclipse.swt.graphics.Image.<init>(Image.java:175) at org.eclipse.help.ui.internal.views.SeeAlsoPart.updateBackgroundImage(SeeAlsoPart.java:111) at org.eclipse.help.ui.internal.views.SeeAlsoPart.access$0(SeeAlsoPart.java:102) at org.eclipse.help.ui.internal.views.SeeAlsoPart$1.controlResized(SeeAlsoPart.java:61) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:221) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:943) at org.eclipse.swt.widgets.Control.WM_SIZE(Control.java:4294) at org.eclipse.swt.widgets.Scrollable.WM_SIZE(Scrollable.java:333) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1347) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3735) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4342) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2252) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3752) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4342) at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method) at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:729) at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:695) at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:901) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1362) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3735) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4342) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2252) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3752) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4355) at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method) at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:729) at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:695) at org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:901) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1362) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3735) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4342) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2252) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3752) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4342) at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method) at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1235) at org.eclipse.swt.widgets.Control.setBounds(Control.java:2515) at org.eclipse.swt.widgets.Control.setBounds(Control.java:2497) at org.eclipse.swt.widgets.Control.setBounds(Control.java:2493) at org.eclipse.swt.widgets.Control.setBounds(Control.java:2562) at org.eclipse.swt.custom.ScrolledCompositeLayout.layout(ScrolledCompositeLayout.java:109) at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:1025) at org.eclipse.swt.widgets.Composite.layout(Composite.java:551) at org.eclipse.swt.widgets.Composite.layout(Composite.java:509) at org.eclipse.ui.forms.widgets.SharedScrolledComposite.layout(SharedScrolledComposite.java:144) at org.eclipse.ui.forms.widgets.SharedScrolledComposite.reflow(SharedScrolledComposite.java:200) at org.eclipse.ui.forms.widgets.SharedScrolledComposite.scheduleReflow(SharedScrolledComposite.java:228) at org.eclipse.ui.forms.widgets.SharedScrolledComposite.access$1(SharedScrolledComposite.java:213) at org.eclipse.ui.forms.widgets.SharedScrolledComposite$1.handleEvent(SharedScrolledComposite.java:65) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:943) at org.eclipse.swt.widgets.Control.WM_SIZE(Control.java:4294) at org.eclipse.swt.widgets.Scrollable.WM_SIZE(Scrollable.java:333) at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1347) at org.eclipse.swt.widgets.Control.windowProc(Control.java:3735) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4342) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2252)
Fixed both leaks. The see also part keeps swapping in new images for the background gradient when it changes (initial load and resize), but did not dispose them. Also, did not dispose the background image once the container was disposed (doesn't happen automatically).
Marking as FIXED.