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

Bug 316184

Summary: Second launch of workspace produces NPE
Product: [Eclipse Project] e4 Reporter: Paul Webster <pwebster>
Component: UIAssignee: Project Inbox <e4.ui-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: emoffatt, remy.suen
Version: 1.0   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
3rd attempt
none
Protection v01 none

Description Paul Webster CLA 2010-06-08 14:10:49 EDT
I cleaned out my workspace and launched the 4.0 SDK.  It work.  I shut down and re-launched.  It generated this NPE.  My views came back but my editors were missing.

If I continue, it'll probably die horribly :-)

!ENTRY org.eclipse.e4.ui.workbench 4 0 2010-06-08 14:11:14.909
!MESSAGE 
!STACK 0
java.lang.NullPointerException
	at org.eclipse.emf.common.util.AbstractEList.getNonDuplicates(AbstractEList.java:1167)
	at org.eclipse.emf.common.util.AbstractEList.addAll(AbstractEList.java:372)
	at org.eclipse.e4.ui.model.application.impl.ApplicationImpl.eSet(ApplicationImpl.java:488)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjectImpl.java:1081)
	at org.eclipse.e4.ui.internal.workbench.EMFModelDeltaSet.apply(EMFModelDeltaSet.java:31)
	at org.eclipse.e4.ui.internal.workbench.ModelReconcilingService.applyDeltas(ModelReconcilingService.java:53)
	at org.eclipse.e4.ui.internal.workbench.ModelReconcilingService.applyDeltas(ModelReconcilingService.java:35)
	at org.eclipse.e4.ui.internal.workbench.ResourceHandler.loadMostRecentModel(ResourceHandler.java:210)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Application.loadApplicationModel(E4Application.java:217)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:127)
	at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:528)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:521)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:600)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Comment 1 Paul Webster CLA 2010-06-08 14:17:44 EDT
Created attachment 171443 [details]
3rd attempt

My third attempt opened a workspace with no content in the perspective and more errors (attached).

A sampler:



2010-06-08 14:16:14.054 Log ErrorException while dispatching event org.osgi.service.event.Event [topic=org/eclipse/e4/ui/model/ui/ElementContainer/selectedElement/SET] to handler org.eclipse.e4.ui.services.internal.events.UIEventHandler@2e202e20
java.lang.NullPointerException
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.createTab(StackRenderer.java:301)
	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.processContents(LazyStackRenderer.java:124)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:349)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:401)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:57)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:349)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:401)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:57)
	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:58)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:349)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:401)
	at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:102)
	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:73)



2010-06-08 14:16:15.413 Log ErrorException while dispatching event org.osgi.service.event.Event [topic=org/eclipse/e4/ui/model/ui/ElementContainer/selectedElement/SET] to handler org.eclipse.e4.ui.services.internal.events.UIEventHandler@7fe97fe9
java.lang.NullPointerException
	at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:52)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:449)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:337)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:401)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:475)
	at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:73)
	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.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:159)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$3.widgetSelected(StackRenderer.java:420)


Caused by: java.lang.NullPointerException
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.getContainingContext(ModelServiceImpl.java:161)
	at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.getContextForParent(AbstractPartRenderer.java:76)
	at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.getContext(AbstractPartRenderer.java:90)
	at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:100)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$ActivationJob.run(StackRenderer.java:89)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
Comment 2 Paul Webster CLA 2010-06-08 15:18:09 EDT
I'm getting a delta failure: at org.eclipse.e4.ui.internal.workbench.EMFModelDeltaSet.apply(EMFModelDeltaSet.java:31)

it's eObject.eSet(feature, getAttributeValue());  when the feature is MenuContributions getAttrValue() is returning null ... but that's causing failure later in the EMF ApplicationImpl code, since MenuContributions can be empty, not null.

PW
Comment 3 Paul Webster CLA 2010-06-08 19:17:45 EDT
Created attachment 171480 [details]
Protection v01

This doesn't fix the original NPE but it prevents it (and subsequent) from destroying the workbench.

PW
Comment 4 Paul Webster CLA 2010-06-08 19:18:45 EDT
(In reply to comment #3)
> Created an attachment (id=171480) [details]
> Protection v01

Released to HEAD
PW
Comment 5 Paul Webster CLA 2010-06-09 11:08:00 EDT
With bug 316279 fixed, my inner SDK seems to be restored correctly.

But, I now get:

!ENTRY org.eclipse.e4.ui.workbench 4 2 2010-06-09 11:08:47.181
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.e4.ui.workbench".
!STACK 0
java.lang.ClassCastException: java.util.ArrayList incompatible with java.lang.Boolean
	at org.eclipse.e4.ui.model.application.ui.impl.UIElementImpl.eSet(UIElementImpl.java:550)
	at org.eclipse.e4.ui.model.application.ui.menu.impl.ItemImpl.eSet(ItemImpl.java:357)
	at org.eclipse.e4.ui.model.application.ui.menu.impl.MenuItemImpl.eSet(MenuItemImpl.java:118)
	at org.eclipse.e4.ui.model.application.ui.menu.impl.HandledMenuItemImpl.eSet(HandledMenuItemImpl.java:229)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjectImpl.java:1081)
	at org.eclipse.e4.ui.internal.workbench.EMFModelDeltaSet.apply(EMFModelDeltaSet.java:31)
	at org.eclipse.e4.ui.internal.workbench.CompositeDelta.apply(CompositeDelta.java:35)
	at org.eclipse.e4.ui.workbench.modeling.ModelDelta.convert(ModelDelta.java:53)
	at org.eclipse.e4.ui.workbench.modeling.ModelDelta.getAttributeValue(ModelDelta.java:66)
	at org.eclipse.e4.ui.internal.workbench.EMFModelDeltaSet.apply(EMFModelDeltaSet.java:31)
	at org.eclipse.e4.ui.internal.workbench.CompositeDelta.apply(CompositeDelta.java:35)
	at org.eclipse.e4.ui.workbench.modeling.ModelDelta.convert(ModelDelta.java:53)
	at org.eclipse.e4.ui.internal.workbench.EMFModelDeltaThreeWayDelayedSet.getAttributeValue(EMFModelDeltaThreeWayDelayedSet.java:33)
	at org.eclipse.e4.ui.internal.workbench.EMFModelDeltaSet.apply(EMFModelDeltaSet.java:31)
	at org.eclipse.e4.ui.internal.workbench.ModelReconcilingService$1.run(ModelReconcilingService.java:59)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.ModelReconcilingService.applyDeltas(ModelReconcilingService.java:57)
	at org.eclipse.e4.ui.internal.workbench.ModelReconcilingService.applyDeltas(ModelReconcilingService.java:38)
	at org.eclipse.e4.ui.internal.workbench.ResourceHandler.loadMostRecentModel(ResourceHandler.java:210)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Application.loadApplicationModel(E4Application.java:217)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:127)
	at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:528)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:521)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:600)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
WARNING: Unknown feature found, reconciliation may fail: Parameter#value
WARNING: Unknown feature found, reconciliation may fail: Parameter#name
WARNING: Unknown feature found, reconciliation may fail: Parameter#value
WARNING: Unknown feature found, reconciliation may fail: Parameter#name
WARNING: Unknown feature found, reconciliation may fail: Parameter#value
WARNING: Unknown feature found, reconciliation may fail: Parameter#name
WARNING: Unknown feature found, reconciliation may fail: Parameter#value
WARNING: Unknown feature found, reconciliation may fail: Parameter#name
Comment 6 Paul Webster CLA 2010-06-09 14:32:45 EDT
This appears to be fixed now.

PW