Skip to content

Debugging GumTree_154861885

nxi edited this page Apr 9, 2015 · 1 revision
Created by Tony Lam, last modified on Jul 27, 2010

SWT Leaks

In the case of GumTree workbench refusing executing tasks, we may see the following error messages from the log:
org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTError: No more handles)
        at org.eclipse.swt.SWT.error(SWT.java:3884)
        at org.eclipse.swt.SWT.error(SWT.java:3799)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
        ...
org.eclipse.swt.SWTError: No more handles
        at org.eclipse.swt.SWT.error(SWT.java:3910)
        at org.eclipse.swt.SWT.error(SWT.java:3799)
        at org.eclipse.swt.SWT.error(SWT.java:3770)
        at org.eclipse.swt.graphics.Image.init(Image.java:1803)
        ...
This indicates SWT leakage is occured due to SWT resources not being disposed, as SWT handle is limited to 10000 for each process (see: http://stackoverflow.com/questions/2018553/swt-no-more-handles). There are three ways to diagnose the workbench:
  1. Official SWT Tool - Sleak
    http://eclipsesource.com/blogs/2009/04/17/finding-swt-leaks-with-sleak/
  2. Windows Process Monitor
    http://i-proving.ca/space/David+Jones/blog/2006-06-05_1
  3. GumTree JMX
    Monitor the object org.gumtree.ui:type=SwtHandleMonitor
Document generated by Confluence on Apr 01, 2015 00:11
Clone this wiki locally