Project: Eclipse_Platform_UI
Bug 308492 [Compatibility] NPE thrown when closing SSE editors
Reported: 2010-04-08 11:13:20 | Status: resolved fixed

This can be reproduced with the SSE XML editor and the e4 workbench designer. org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:4083) at org.eclipse.swt.SWT.error(SWT.java:3998) at org.eclipse.swt.SWT.error(SWT.java:3969) at org.eclipse.swt.widgets.Widget.error(Widget.java:467) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:340) at org.eclipse.swt.widgets.Widget.getData(Widget.java:524) at org.eclipse.ui.part.MultiPageEditorPart.getEditor(MultiPageEditorPart.java:609) at org.eclipse.ui.part.MultiPageEditorPart.getActiveEditor(MultiPageEditorPart.java:533) at org.eclipse.ui.part.MultiPageEditorPart.getAdapter(MultiPageEditorPart.java:1172) at org.eclipse.e4.xwt.tools.ui.designer.core.editor.Designer.getAdapter(Designer.java:858) at org.eclipse.wst.sse.ui.internal.StructuredTextViewer.setErrorMessage(StructuredTextViewer.java:834) at org.eclipse.wst.sse.ui.internal.StructuredTextViewer.unconfigure(StructuredTextViewer.java:867) at org.eclipse.jface.text.source.SourceViewer.handleDispose(SourceViewer.java:745) at org.eclipse.jface.text.source.projection.ProjectionViewer.handleDispose(ProjectionViewer.java:1363) at org.eclipse.wst.sse.ui.internal.StructuredTextViewer.handleDispose(StructuredTextViewer.java:671) at org.eclipse.jface.text.TextViewer$2.widgetDisposed(TextViewer.java:1798) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:117) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1050) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1074) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1059) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:773) at org.eclipse.swt.custom.StyledText.handleDispose(StyledText.java:5816) at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5642) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1050) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1074) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1055) at org.eclipse.swt.widgets.Widget.release(Widget.java:807) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:167) at org.eclipse.swt.widgets.Widget.release(Widget.java:810) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:810) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:810) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:810) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:810) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:810) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:810) at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:872) at org.eclipse.swt.widgets.Widget.release(Widget.java:810) at org.eclipse.swt.widgets.Widget.dispose(Widget.java:445) at org.eclipse.e4.workbench.ui.renderers.swt.SWTPartRenderer.disposeWidget(SWTPartRenderer.java:119) at org.eclipse.e4.ui.workbench.swt.internal.PartRenderingEngine.removeGui(PartRenderingEngine.java:405) at org.eclipse.e4.ui.workbench.swt.internal.PartRenderingEngine$1.handleEvent(PartRenderingEngine.java:95) at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:41) at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:188) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:198) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:149) at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:139) at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78) at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39) at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:76) at org.eclipse.e4.workbench.ui.internal.UIEventPublisher.notifyChanged(UIEventPublisher.java:60) at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:380) at org.eclipse.e4.ui.model.application.impl.PartImpl.setToBeRendered(PartImpl.java:508) at org.eclipse.e4.workbench.ui.internal.PartServiceImpl.hidePart(PartServiceImpl.java:517) at org.eclipse.e4.workbench.ui.renderers.swt.StackRenderer$6.close(StackRenderer.java:448) at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1578)

Files changed in fix:
bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java