eclipse.platform.ui
eclipse.platform.ui copied to clipboard
Not properly disposed SWT resource in AnnotationCodeMiningFilter.isPaintable
Let's make sure issue is not already fixed in latest builds first.
- [x] I verified I can reproduce this issue against latest Integration Build of Eclipse SDK
Steps to reproduce
From a fresh installation and clean workspace:
I found this in the error log:
java.lang.Error: SWT Resource was not properly disposed
at org.eclipse.swt.graphics.Resource.initNonDisposeTracking(Resource.java:172)
at org.eclipse.swt.graphics.Resource.<init>(Resource.java:120)
at org.eclipse.swt.graphics.Image.<init>(Image.java:771)
at org.eclipse.jface.resource.URLImageDescriptor.createImage(URLImageDescriptor.java:306)
at org.eclipse.jface.resource.DeferredImageDescriptor.createImage(DeferredImageDescriptor.java:85)
at org.eclipse.jface.resource.ImageDescriptor.createResource(ImageDescriptor.java:229)
at org.eclipse.jface.resource.DeviceResourceManager.allocate(DeviceResourceManager.java:56)
at org.eclipse.jface.resource.AbstractResourceManager.create(AbstractResourceManager.java:92)
at org.eclipse.jface.resource.LazyResourceManager.create(LazyResourceManager.java:88)
at org.eclipse.jface.resource.ResourceManager.createImageWithDefault(ResourceManager.java:192)
at org.eclipse.jface.resource.ImageRegistry.get(ImageRegistry.java:208)
at org.eclipse.ui.internal.WorkbenchImages.getImage(WorkbenchImages.java:378)
at org.eclipse.ui.internal.SharedImages.getImage(SharedImages.java:31)
at org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess.getImage(DefaultMarkerAnnotationAccess.java:415)
at org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess.isPaintable(DefaultMarkerAnnotationAccess.java:298)
at org.eclipse.ui.internal.editors.text.codemining.annotation.AnnotationCodeMiningFilter.isPaintable(AnnotationCodeMiningFilter.java:104)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:1002)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:280)
at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:1002)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.findAny(ReferencePipeline.java:652)
at org.eclipse.ui.internal.editors.text.codemining.annotation.AnnotationCodeMiningFilter.isEmpty(AnnotationCodeMiningFilter.java:77)
at org.eclipse.ui.internal.editors.text.codemining.annotation.AnnotationCodeMiningProvider$AnnotationModelListener.modelChanged(AnnotationCodeMiningProvider.java:138)
at org.eclipse.jface.text.source.AnnotationModel.fireModelChanged(AnnotationModel.java:592)
at org.eclipse.jface.text.source.AnnotationModel$InternalModelListener.modelChanged(AnnotationModel.java:256)
at org.eclipse.jface.text.source.AnnotationModel.fireModelChanged(AnnotationModel.java:592)
at org.eclipse.jface.text.source.AnnotationModel.fireModelChanged(AnnotationModel.java:558)
at org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel.update(ResourceMarkerAnnotationModel.java:114)
at org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel$ResourceChangeListener.resourceChanged(ResourceMarkerAnnotationModel.java:57)
at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:321)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:311)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:174)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:458)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1586)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2462)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2473)
...
Community
- [x] I understand reporting an issue to this OSS project does not mandate anyone to fix it. Other contributors may consider the issue, or not, at their own convenience. The most efficient way to get it fixed is that I fix it myself and contribute it back as a good quality patch to the project.
May it can be fixed similar to the fix in #1829
The stacktrace shows it uses "org.eclipse.ui.ISharedImages.getImage(String)" which is documented clients must <b>not</b> dispose of the returned image. The image should have been disposed with org.eclipse.jface.resource.ImageRegistry.dispose()