Project: Eclipse_Platform_UI
Bug 324971 NPE thrown when closing multiple perspectives
Reported: 2010-09-10 10:26:29 | Status: verified fixed

1. Window > Open Perspective > Debug 2. Window > Close All Perspectives java.lang.NullPointerException at org.eclipse.ui.part.PageBookView.dispose(PageBookView.java:504) at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.invalidate(CompatibilityPart.java:129) at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.destroy(CompatibilityPart.java:236) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:618) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:52) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:796) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:776) at org.eclipse.e4.core.internal.di.InjectorImpl.uninject(InjectorImpl.java:163) at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:327) at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:112) at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:59) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:90) at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.doHandleInvalid(TrackableComputationExt.java:53) at org.eclipse.e4.core.internal.contexts.Computation.handleInvalid(Computation.java:59) at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:196) at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:186) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.clearContext(PartRenderingEngine.java:564) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:544) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.handleEvent(PartRenderingEngine.java:128) 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:73) at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:58) at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:380) at org.eclipse.e4.ui.model.application.ui.impl.UIElementImpl.setToBeRendered(UIElementImpl.java:267) at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.removePerspectiveModel(ModelServiceImpl.java:615) at org.eclipse.ui.internal.WorkbenchPage.close(WorkbenchPage.java:1170) at org.eclipse.ui.internal.WorkbenchPage.closeAllPerspectives(WorkbenchPage.java:1111) at org.eclipse.ui.internal.handlers.CloseAllPerspectivesHandler.execute(CloseAllPerspectivesHandler.java:32)

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