Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 343907 - [Compatibility] opening the empty perspective causes NPE
Summary: [Compatibility] opening the empty perspective causes NPE
Status: RESOLVED FIXED
Alias: None
Product: e4
Classification: Eclipse Project
Component: UI (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 4.1 M7   Edit
Assignee: Remy Suen CLA
QA Contact: Remy Suen CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-26 16:39 EDT by Paul Webster CLA
Modified: 2011-04-27 09:55 EDT (History)
2 users (show)

See Also:


Attachments
ModeledPageLayout patch v1 (2.78 KB, patch)
2011-04-27 09:43 EDT, Remy Suen CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Webster CLA 2011-04-26 16:39:26 EDT
One of the tests opens a workbench window with the perspective org.eclipse.ui.tests.harness.util.EmptyPerspective, defined in the clas org.eclipse.ui.tests.harness.util.EmptyPerspective

Its createInitialLayout(*) does nothing.

This kills my tests, though.  The full stack trace: 
!ENTRY org.eclipse.ui 4 4 2011-04-26 16:35:51.825
!MESSAGE Referenced part does not exist yet: org.eclipse.jdt.ui.PackageExplorer.
org.eclipse.ui.WorkbenchException: java.lang.NullPointerException
	at org.eclipse.ui.internal.Workbench.openWorkbenchWindow(Workbench.java:2213)
	at org.eclipse.ui.tests.harness.util.UITestCase.openTestWindow(UITestCase.java:271)
	at org.eclipse.ui.tests.harness.util.UITestCase.openTestWindow(UITestCase.java:263)
	at org.eclipse.e4.ui.binding.tests.Bug43321Test.testNoCheckOnNonCheckbox(Bug43321Test.java:67)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:611)
	at junit.framework.TestCase.runTest(TestCase.java:168)
	at junit.framework.TestCase.runBare(TestCase.java:134)
	at junit.framework.TestResult$1.protect(TestResult.java:110)
	at junit.framework.TestResult.runProtected(TestResult.java:128)
	at junit.framework.TestResult.run(TestResult.java:113)
	at junit.framework.TestCase.run(TestCase.java:124)
	at junit.framework.TestSuite.runTest(TestSuite.java:243)
	at junit.framework.TestSuite.run(TestSuite.java:238)
	at junit.framework.TestSuite.runTest(TestSuite.java:243)
	at junit.framework.TestSuite.run(TestSuite.java:238)
	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:62)
	at org.eclipse.pde.internal.junit.runtime.PlatformUITestHarness$1.run(PlatformUITestHarness.java:47)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3556)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3205)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:873)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:789)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:87)
	at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:542)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:522)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	at org.eclipse.pde.internal.junit.runtime.NonUIThreadTestApplication.runApp(NonUIThreadTestApplication.java:54)
	at org.eclipse.pde.internal.junit.runtime.UITestApplication.runApp(UITestApplication.java:41)
	at org.eclipse.pde.internal.junit.runtime.NonUIThreadTestApplication.start(NonUIThreadTestApplication.java:48)
	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:344)
	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:60)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:611)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Caused by: org.eclipse.e4.core.di.InjectionException: java.lang.NullPointerException
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:63)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:828)
	at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:108)
	at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:78)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.inject(ContextInjectionFactory.java:72)
	at org.eclipse.ui.internal.Workbench.createWorkbenchWindow(Workbench.java:1172)
	at org.eclipse.ui.internal.Workbench.openWorkbenchWindow(Workbench.java:2219)
	at org.eclipse.ui.internal.Workbench.openWorkbenchWindow(Workbench.java:2211)
	... 54 more
Caused by: java.lang.NullPointerException
	at org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout.insert(ModeledPageLayout.java:509)
	at org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout.insert(ModeledPageLayout.java:529)
	at org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout.insertStack(ModeledPageLayout.java:380)
	at org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout.insertView(ModeledPageLayout.java:347)
	at org.eclipse.ui.internal.e4.compatibility.ModeledPageLayout.addPlaceholder(ModeledPageLayout.java:170)
	at org.eclipse.ui.internal.PerspectiveExtensionReader.processView(PerspectiveExtensionReader.java:291)
	at org.eclipse.ui.internal.PerspectiveExtensionReader.processExtension(PerspectiveExtensionReader.java:102)
	at org.eclipse.ui.internal.PerspectiveExtensionReader.readElement(PerspectiveExtensionReader.java:339)
	at org.eclipse.ui.internal.registry.RegistryReader.readElements(RegistryReader.java:144)
	at org.eclipse.ui.internal.registry.RegistryReader.readExtension(RegistryReader.java:155)
	at org.eclipse.ui.internal.registry.RegistryReader.readRegistry(RegistryReader.java:176)
	at org.eclipse.ui.internal.PerspectiveExtensionReader.extendLayout(PerspectiveExtensionReader.java:66)
	at org.eclipse.ui.internal.WorkbenchPage.setPerspective(WorkbenchPage.java:3118)
	at org.eclipse.ui.internal.WorkbenchWindow.setup(WorkbenchWindow.java:525)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:611)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
	... 61 more
Comment 1 Remy Suen CLA 2011-04-26 19:11:09 EDT
Caused by a perspective extension that's relative to a part that cannot be found in the perspective. Will have to check where it goes in 3.x for comparison.
Comment 2 Remy Suen CLA 2011-04-27 09:43:59 EDT
Created attachment 194153 [details]
ModeledPageLayout patch v1
Comment 3 Remy Suen CLA 2011-04-27 09:44:31 EDT
(In reply to comment #2)
> Created attachment 194153 [details]
> ModeledPageLayout patch v1

Patch released to CVS HEAD.
Comment 4 Remy Suen CLA 2011-04-27 09:55:23 EDT
*** Bug 343440 has been marked as a duplicate of this bug. ***