Memory leak in WOLips?

From: Guillaume Polet (guillaumedenal..mail.com)
Date: Tue May 15 2007 - 08:01:24 EDT

  • Next message: Mike Schrag: "Re: Memory leak in WOLips?"

    Hello everybody,

    once again, many thanks for this great tool that has been simplifying
    our work for several years now.

    I was wondering if any of you had knowledge about a possible memory leak
    in WOLips. I have this bug now for a little while, and I see the same
    error constantly in the logs: 'SWTError: No more handles'.
    So far, I cannot be 100% sure that WOlips is the cause of the crash I
    get constantly so I was wondering if any of you encountered the same
    problem or if you have found the cause of such problem.

    Here is what I have tested to try to isolate the problem:
    I opened my Eclipse on a new workspace in which I checked out a single
    Framework project containing lots of resources/web-resources (over 500)
    and a single Java class (which is empty). Then I change the setting
    "refresh automatically workspace" so that the automatic refresh is active.
    Finally, I take a command line, set the current directory to be the
    project I have checked out and type "touch *", wait for Eclipse to catch
    the modification, wait for Eclipse rebuild, then I re-execute the "touch
    *" a few times and Eclipse ends up by crashing (last time I tried, I
    only had to do it twice to make Eclipe crash).

    I have tested the same operation in a Java project (making the touch on
    java source code) and the problem never occurs. I reported my
    configuration and the stacktrace below.

    Thank you again,

    Guillaume Polet

    Denali S.A., "Bridging the gap between Business and IT"
    Rue de Clairvaux 8, B-1348 Louvain-la-Neuve, Belgium
    Office: +32 10 43 99 51 Fax: +32 10 43 99 52
    http://www.denali.be

    My configuration is the following:
    Eclipse 3.2 (M20060629-1905)
    OS: Windows XP
    JVM: JRE 1.5.0_09
    Memory: 2Gb
    CPU: Pentium D 2.8GHz
    Installed plugins:
    * WST
    * WOLips build 2.0.0.3921
    * Epic (Perl Editor)
    * VelocityEditor
    Cygwin is installed and its bin directory has been added to the PATH
    variable.

    The stacktrace I get:
    org.eclipse.swt.SWTError: No more handles
        at org.eclipse.swt.SWT.error(SWT.java:3400)
        at org.eclipse.swt.SWT.error(SWT.java:3297)
        at org.eclipse.swt.SWT.error(SWT.java:3268)
        at org.eclipse.swt.graphics.Image.init(Image.java:1803)
        at org.eclipse.swt.graphics.Image.init(Image.java:1901)
        at org.eclipse.swt.graphics.Image.<init>(Image.java:490)
        at
    org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:295)
        at
    org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:233)
        at
    org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:211)
        at
    org.objectstyle.wolips.ui.labeldecorator.ResourcesLabelDecorator.createImagewithName(Unknown
    Source)
        at
    org.objectstyle.wolips.ui.labeldecorator.ResourcesLabelDecorator.webServerResourcesImage(Unknown
    Source)
        at
    org.objectstyle.wolips.ui.labeldecorator.ResourcesLabelDecorator.decorateImage(Unknown
    Source)
        at
    org.eclipse.ui.internal.decorators.FullDecoratorDefinition.decorateImage(FullDecoratorDefinition.java:114)
        at
    org.eclipse.ui.internal.decorators.FullImageDecoratorRunnable.run(FullImageDecoratorRunnable.java:28)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at org.eclipse.core.runtime.Platform.run(Platform.java:843)
        at
    org.eclipse.ui.internal.decorators.DecoratorManager.safeDecorateImage(DecoratorManager.java:418)
        at
    org.eclipse.ui.internal.decorators.DecoratorManager.decorateImage(DecoratorManager.java:372)
        at
    org.eclipse.jface.viewers.DecoratingLabelProvider.getImage(DecoratingLabelProvider.java:89)
        at
    org.eclipse.jface.viewers.DecoratingLabelProvider.updateLabel(DecoratingLabelProvider.java:356)
        at
    org.eclipse.jface.viewers.StructuredViewer.buildLabel(StructuredViewer.java:2077)
        at
    org.eclipse.jface.viewers.TreeViewer.doUpdateItem(TreeViewer.java:252)
        at
    org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:95)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at org.eclipse.core.runtime.Platform.run(Platform.java:843)
        at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
        at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:149)
        at
    org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:840)
        at
    org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.doUpdateItem(ProblemTreeViewer.java:74)
        at
    org.eclipse.jdt.internal.ui.viewsupport.ResourceToItemsMapper.updateItem(ResourceToItemsMapper.java:74)
        at
    org.eclipse.jdt.internal.ui.viewsupport.ResourceToItemsMapper.resourceChanged(ResourceToItemsMapper.java:63)
        at
    org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.handleLabelProviderChanged(ProblemTreeViewer.java:127)
        at
    org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged(ContentViewer.java:74)
        at
    org.eclipse.ui.internal.decorators.DecoratorManager$1.run(DecoratorManager.java:239)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
        at org.eclipse.core.runtime.Platform.run(Platform.java:843)
        at
    org.eclipse.ui.internal.decorators.DecoratorManager.fireListener(DecoratorManager.java:237)
        at
    org.eclipse.ui.internal.decorators.DecorationScheduler$3.runInUIThread(DecorationScheduler.java:490)
        at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:94)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at
    org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3325)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2971)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
        at
    org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at
    org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
        at
    org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
        at
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
        at
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
        at
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
        at
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
        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.core.launcher.Main.invokeFramework(Main.java:336)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)



    This archive was generated by hypermail 2.0.0 : Tue May 15 2007 - 08:02:19 EDT