Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 132336

Summary: [j2ee] J2EEPlugin must use an ImageRegistry
Product: [WebTools] WTP Java EE Tools Reporter: Chris Laffra <laffrac>
Component: jst.j2eeAssignee: Salvador Zalapa <zalapa>
Status: RESOLVED FIXED QA Contact: Chuck Bridgham <cbridgha>
Severity: major    
Priority: P2 CC: cbridgha, ccc
Version: unspecifiedKeywords: helpwanted
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Chris Laffra CLA 2006-03-17 09:24:23 EST
When opening a Web Deployment Editor, the J2EEPlugin repeatedly reads icons from the file system and create many, many duplicate identical image files.
An image registry must be used. Here is an explanation:

http://wiki.eclipse.org/index.php/FAQ_How_do_I_create_an_image_registry_for_my_plug-in%3F

A large number of repetitive file OPENs occur, and here is just one simple example:



**** Trace 1 ****


    java.util.zip.ZipFile.getEntry(ZipFile.java:295)
    org.eclipse.osgi.framework.adaptor.core.BundleFile$ZipBundleFile.getZipEntry(BundleFile.java:215)
    org.eclipse.osgi.framework.adaptor.core.BundleFile$ZipBundleFile.getEntry(BundleFile.java:367)
    org.eclipse.osgi.framework.adaptor.core.AbstractBundleData.getEntry(AbstractBundleData.java:163)
    org.eclipse.osgi.framework.internal.core.AbstractBundle.getEntry(AbstractBundle.java:1271)
    org.eclipse.core.internal.runtime.FindSupport.findInPlugin(FindSupport.java:213)
    org.eclipse.core.internal.runtime.FindSupport.find(FindSupport.java:80)
    org.eclipse.core.runtime.BundleFinder.find(BundleFinder.java:93)
    org.eclipse.core.runtime.Platform.find(Platform.java:826)
    org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin.getImageURL(J2EEPlugin.java:276)
    org.eclipse.jst.j2ee.internal.web.plugin.WebPlugin.getImage(WebPlugin.java:132)
    org.eclipse.jst.j2ee.internal.web.providers.ServletItemProvider.getImage(ServletItemProvider.java:128)
    org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider.getColumnImage(AdapterFactoryLabelProvider.java:240)
    org.eclipse.jface.viewers.TableViewer.doUpdateItem(TableViewer.java:474)
    org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:434)
    org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
    org.eclipse.core.runtime.Platform.run(Platform.java:785)
    org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
    org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148)
    org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:1763)
    org.eclipse.jface.viewers.TableViewer.internalRefreshAll(TableViewer.java:859)
    org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:796)
    org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:785)
    org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1264)
    org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1201)
    org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1262)
    org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1221)
    org.eclipse.jface.viewers.ContentViewer.setLabelProvider(ContentViewer.java:280)
    org.eclipse.jface.viewers.StructuredViewer.setLabelProvider(StructuredViewer.java:1810)
    org.eclipse.jface.viewers.TableViewer.setLabelProvider(TableViewer.java:1052)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonFormSection.setLabelProvider(CommonFormSection.java:446)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonFormSection.<init>(CommonFormSection.java:214)
    com.ibm.etools.emf.workbench.ui.custom.widgets.SectionDynamicTable.<init>(SectionDynamicTable.java:45)
    com.ibm.etools.web.ui.pages.WebOverviewPage.createServletSection(WebOverviewPage.java:145)
    com.ibm.etools.web.ui.pages.WebOverviewPage.createClient(WebOverviewPage.java:103)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonPageForm.createInnerSections(CommonPageForm.java:232)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonPageForm.createPartControl(CommonPageForm.java:208)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonForm.<init>(CommonForm.java:67)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonPageForm.<init>(CommonPageForm.java:115)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonOverviewPage.<init>(CommonOverviewPage.java:95)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonOverviewPage.<init>(CommonOverviewPage.java:83)
    com.ibm.etools.web.ui.pages.WebOverviewPage.<init>(WebOverviewPage.java:80)
    com.ibm.etools.web.ui.presentation.WebEditorPageFactory.createOverviewPage(WebEditorPageFactory.java:77)
    com.ibm.etools.web.ui.presentation.WebEditorPageFactory.createPage(WebEditorPageFactory.java:48)
    com.ibm.wtp.editor.extensions.PageFactoryElement.createPage(PageFactoryElement.java:63)
    com.ibm.wtp.editor.extensions.PageElement.createPage(PageElement.java:106)
    com.ibm.etools.emf.workbench.ui.presentation.ArtifactEditMultiPageEditorPart.createEditorPage(ArtifactEditMultiPageEditorPart.java:1164)
    com.ibm.etools.emf.workbench.ui.presentation.ArtifactEditMultiPageEditorPart.access$1(ArtifactEditMultiPageEditorPart.java:1160)
    com.ibm.etools.emf.workbench.ui.presentation.ArtifactEditMultiPageEditorPart$7.run(ArtifactEditMultiPageEditorPart.java:1115)
    org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
    org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3262)
    org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2908)
    org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1762)
    org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1726)
    org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:397)
    org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
    org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
    org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109)
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:379)
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:615)
    org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
    org.eclipse.core.launcher.Main.basicRun(Main.java:282)
    org.eclipse.core.launcher.Main.run(Main.java:977)
    org.eclipse.core.launcher.Main.main(Main.java:952)

**** Trace 2 ****


    
[stackdumps removed]


**** Trace 40 ****


    java.util.zip.ZipFile.getEntry(ZipFile.java:295)
    org.eclipse.osgi.framework.adaptor.core.BundleFile$ZipBundleFile.getZipEntry(BundleFile.java:215)
    org.eclipse.osgi.framework.adaptor.core.BundleFile$ZipBundleFile.getEntry(BundleFile.java:367)
    org.eclipse.osgi.framework.adaptor.core.AbstractBundleData.getEntry(AbstractBundleData.java:163)
    org.eclipse.osgi.framework.internal.core.AbstractBundle.getEntry(AbstractBundle.java:1271)
    org.eclipse.core.internal.runtime.FindSupport.findInPlugin(FindSupport.java:213)
    org.eclipse.core.internal.runtime.FindSupport.find(FindSupport.java:80)
    org.eclipse.core.runtime.BundleFinder.find(BundleFinder.java:93)
    org.eclipse.core.runtime.Platform.find(Platform.java:826)
    org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin.getImageURL(J2EEPlugin.java:276)
    org.eclipse.jst.j2ee.internal.web.plugin.WebPlugin.getImage(WebPlugin.java:132)
    org.eclipse.jst.j2ee.internal.web.providers.ServletItemProvider.getImage(ServletItemProvider.java:128)
    org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider.getColumnImage(AdapterFactoryLabelProvider.java:240)
    org.eclipse.jface.viewers.TableViewer.doUpdateItem(TableViewer.java:474)
    org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:434)
    org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
    org.eclipse.core.runtime.Platform.run(Platform.java:785)
    org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
    org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148)
    org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:1763)
    org.eclipse.jface.viewers.TableViewer.internalRefreshAll(TableViewer.java:859)
    org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:796)
    org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:785)
    org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1264)
    org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1201)
    org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1262)
    org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1221)
    com.ibm.etools.emf.workbench.ui.custom.widgets.SectionDynamicTable.refresh(SectionDynamicTable.java:96)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonFormSection.<init>(CommonFormSection.java:223)
    com.ibm.etools.emf.workbench.ui.custom.widgets.SectionDynamicTable.<init>(SectionDynamicTable.java:45)
    com.ibm.etools.web.ui.pages.WebOverviewPage.createContextParamSection(WebOverviewPage.java:284)
    com.ibm.etools.web.ui.pages.WebOverviewPage.createClient(WebOverviewPage.java:120)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonPageForm.createInnerSections(CommonPageForm.java:232)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonPageForm.createPartControl(CommonPageForm.java:208)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonForm.<init>(CommonForm.java:67)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonPageForm.<init>(CommonPageForm.java:115)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonOverviewPage.<init>(CommonOverviewPage.java:95)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonOverviewPage.<init>(CommonOverviewPage.java:83)
    com.ibm.etools.web.ui.pages.WebOverviewPage.<init>(WebOverviewPage.java:80)
    com.ibm.etools.web.ui.presentation.WebEditorPageFactory.createOverviewPage(WebEditorPageFactory.java:77)
    com.ibm.etools.web.ui.presentation.WebEditorPageFactory.createPage(WebEditorPageFactory.java:48)
    com.ibm.wtp.editor.extensions.PageFactoryElement.createPage(PageFactoryElement.java:63)
    com.ibm.wtp.editor.extensions.PageElement.createPage(PageElement.java:106)
    com.ibm.etools.emf.workbench.ui.presentation.ArtifactEditMultiPageEditorPart.createEditorPage(ArtifactEditMultiPageEditorPart.java:1164)
    com.ibm.etools.emf.workbench.ui.presentation.ArtifactEditMultiPageEditorPart.access$1(ArtifactEditMultiPageEditorPart.java:1160)
    com.ibm.etools.emf.workbench.ui.presentation.ArtifactEditMultiPageEditorPart$7.run(ArtifactEditMultiPageEditorPart.java:1115)
    org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
    org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3262)
    org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2908)
    org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1762)
    org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1726)
    org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:397)
    org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
    org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
    org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109)
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:379)
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:615)
    org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
    org.eclipse.core.launcher.Main.basicRun(Main.java:282)
    org.eclipse.core.launcher.Main.run(Main.java:977)
    org.eclipse.core.launcher.Main.main(Main.java:952)

**** Trace 41 ****


    java.util.zip.ZipFile.getEntry(ZipFile.java:295)
    org.eclipse.osgi.framework.adaptor.core.BundleFile$ZipBundleFile.getZipEntry(BundleFile.java:215)
    org.eclipse.osgi.framework.adaptor.core.BundleFile$ZipBundleFile.getEntry(BundleFile.java:367)
    org.eclipse.osgi.framework.adaptor.core.AbstractBundleData.getEntry(AbstractBundleData.java:163)
    org.eclipse.osgi.framework.internal.core.AbstractBundle.getEntry(AbstractBundle.java:1271)
    org.eclipse.core.internal.runtime.FindSupport.findInPlugin(FindSupport.java:213)
    org.eclipse.core.internal.runtime.FindSupport.find(FindSupport.java:80)
    org.eclipse.core.runtime.BundleFinder.find(BundleFinder.java:93)
    org.eclipse.core.runtime.Platform.find(Platform.java:826)
    org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin.getImageURL(J2EEPlugin.java:276)
    org.eclipse.jst.j2ee.internal.web.plugin.WebPlugin.getImage(WebPlugin.java:132)
    org.eclipse.jst.j2ee.internal.web.providers.ServletItemProvider.getImage(ServletItemProvider.java:128)
    org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider.getColumnImage(AdapterFactoryLabelProvider.java:240)
    org.eclipse.jface.viewers.TableViewer.doUpdateItem(TableViewer.java:474)
    org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:434)
    org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
    org.eclipse.core.runtime.Platform.run(Platform.java:785)
    org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
    org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148)
    org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:1763)
    org.eclipse.jface.viewers.TableViewer.internalRefreshAll(TableViewer.java:859)
    org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:796)
    org.eclipse.jface.viewers.TableViewer.internalRefresh(TableViewer.java:785)
    org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1264)
    org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1201)
    org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1262)
    org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1221)
    com.ibm.etools.emf.workbench.ui.custom.widgets.SectionDynamicTable.refresh(SectionDynamicTable.java:96)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonFormSection.<init>(CommonFormSection.java:223)
    com.ibm.etools.emf.workbench.ui.custom.widgets.SectionDynamicTable.<init>(SectionDynamicTable.java:45)
    com.ibm.etools.web.ui.pages.WebOverviewPage.createContextParamSection(WebOverviewPage.java:284)
    com.ibm.etools.web.ui.pages.WebOverviewPage.createClient(WebOverviewPage.java:120)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonPageForm.createInnerSections(CommonPageForm.java:232)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonPageForm.createPartControl(CommonPageForm.java:208)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonForm.<init>(CommonForm.java:67)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonPageForm.<init>(CommonPageForm.java:115)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonOverviewPage.<init>(CommonOverviewPage.java:95)
    com.ibm.etools.emf.workbench.ui.custom.widgets.CommonOverviewPage.<init>(CommonOverviewPage.java:83)
    com.ibm.etools.web.ui.pages.WebOverviewPage.<init>(WebOverviewPage.java:80)
    com.ibm.etools.web.ui.presentation.WebEditorPageFactory.createOverviewPage(WebEditorPageFactory.java:77)
    com.ibm.etools.web.ui.presentation.WebEditorPageFactory.createPage(WebEditorPageFactory.java:48)
    com.ibm.wtp.editor.extensions.PageFactoryElement.createPage(PageFactoryElement.java:63)
    com.ibm.wtp.editor.extensions.PageElement.createPage(PageElement.java:106)
    com.ibm.etools.emf.workbench.ui.presentation.ArtifactEditMultiPageEditorPart.createEditorPage(ArtifactEditMultiPageEditorPart.java:1164)
    com.ibm.etools.emf.workbench.ui.presentation.ArtifactEditMultiPageEditorPart.access$1(ArtifactEditMultiPageEditorPart.java:1160)
    com.ibm.etools.emf.workbench.ui.presentation.ArtifactEditMultiPageEditorPart$7.run(ArtifactEditMultiPageEditorPart.java:1115)
    org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
    org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3262)
    org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2908)
    org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1762)
    org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1726)
    org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:397)
    org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
    org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
    org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109)
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:379)
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:615)
    org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
    org.eclipse.core.launcher.Main.basicRun(Main.java:282)
    org.eclipse.core.launcher.Main.run(Main.java:977)
    org.eclipse.core.launcher.Main.main(Main.java:952)
Comment 1 Chris Laffra CLA 2006-03-17 09:29:26 EST
I also noticed this editor is leaking 6 handles.
Sleak should be run on it, after the ImageRegistry is added to ensure no leaks occur.
Comment 2 Chris Laffra CLA 2006-03-17 09:37:01 EST
After the editor is opened, I click on each tab and see lots of images opened for again. For instance, after clicking on all tabs I saw these:


eclipse\plugins\org.eclipse.jst.j2ee.web_1.0.0.v20060202_1038.jar:icons/servlet_mapping.gif open counter = 192 [i.e., this gif is opened 192 times]

eclipse\plugins\org.eclipse.jst.j2ee.web_1.0.0.v20060202_1038.jar:icons/full/obj16/servlet.gif open counter = 131

eclipse\plugins\org.eclipse.jst.j2ee_1.0.0.v200602201944.jar:icons/full/obj16/listener.gif open counter = 66

eclipse\plugins\com.ibm.etools.webtools.flatui_6.0.0.jar:icons/form_banner.gif open counter = 61

eclipse\plugins\org.eclipse.ui.views_3.2.0.I20051129-0800.jar:icons/full/elcl16/defaults_ps.gif open counter = 2


Comment 3 Chris Laffra CLA 2006-03-17 09:41:40 EST
Adding an ImageRegistry will also help out org.eclipse.jst.j2ee.navigator.internal.J2EELabelProvider.getImage(J2EELabelProvider.java:150) which relies on J2EEPlugin also.
During a workspace build, label images are also repeatedly opened.
Comment 4 David Williams CLA 2006-09-07 09:30:31 EDT
performance bugs should use performance keyword (not [performance] in subject). 
Comment 5 John Lanuti CLA 2006-09-27 12:16:39 EDT
This could become an IBM adopter hot bug.
Comment 6 Chuck Bridgham CLA 2006-12-13 10:42:59 EST
Doesn't qualify for hotbug status... but we are comitted to fixing in 153
Comment 7 Neeraj Agrawal CLA 2007-01-10 14:08:54 EST
Deferring to 2.0 for further investigatiom, J2EEPlugin is non UI but it contains images, introducing ImageRegistry causes it to throw NPE in headless mode since ImageRegistry needs a valid SWT Display.
Comment 8 Carl Anderson CLA 2013-03-07 14:52:25 EST
This was fixed by EMF - AdapterFactoryLabelProvider now uses an ImageRegistry which is keyed off of the URL that is provided by J2EEPlugin.getImage().  As such, I assume that this leakage has been reduced.  If there is still data indicating that there is a leak, please reopen this bug and present that data.