eclipse.platform.ui
eclipse.platform.ui copied to clipboard
CompatibilityPart/IntroPart: tries to dispose in not-SWT thread
locally running CTabItemTest (passes) logs This is not an UI thread (or Device already disposed)
.
java.lang.NullPointerException: This is not an UI thread (or Device already disposed)
at java.base/java.util.Objects.requireNonNull(Objects.java:259)
at org.eclipse.jface.resource.JFaceResources.getResources(JFaceResources.java:243)
at org.eclipse.ui.part.IntroPart.dispose(IntroPart.java:99)
at org.eclipse.ui.intro.config.CustomizableIntroPart.dispose(CustomizableIntroPart.java:347)
at org.eclipse.ui.internal.ViewIntroAdapterPart.dispose(ViewIntroAdapterPart.java:150)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.invalidate(CompatibilityPart.java:264)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.destroy(CompatibilityPart.java:421)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:977)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:939)
at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:435)
at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:161)
at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:83)
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:103)
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:68)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:179)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:164)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:164)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:164)
at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:102)
at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:144)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:982)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:235)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:134)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:126)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:229)
at org.eclipse.osgi.container.Module.publishEvent(Module.java:531)
at org.eclipse.osgi.container.Module.doStop(Module.java:693)
at org.eclipse.osgi.container.Module.stop(Module.java:554)
at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:212)
at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:240)
at java.base/java.lang.Thread.run(Thread.java:1583)
sounds like that should be done in SWT thread. i don't know where that should be changed