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

Bug 119040

Summary: [Workbench] Zombies Ate My Layout
Product: [Eclipse Project] Platform Reporter: Kim Horne <eclipse>
Component: UIAssignee: Platform UI Triaged <platform-ui-triaged>
Status: RESOLVED WONTFIX QA Contact: Paul Webster <pwebster>
Severity: major    
Priority: P5 CC: bokowski, emoffatt, markus.kell.r
Version: 3.2   
Target Milestone: ---   
Hardware: Macintosh   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:
Bug Depends on:    
Bug Blocks: 218197    

Description Kim Horne CLA 2005-12-02 10:53:36 EST
Upon updating to the latest I build I got a "Workbench Layout Reset" dialog.  In my log were the following stacks:

org.eclipse.ui.internal.misc.AssertionFailedException: null argument;
at org.eclipse.ui.internal.misc.Assert.isNotNull(Assert.java:81)
at org.eclipse.ui.internal.misc.Assert.isNotNull(Assert.java:68)
at org.eclipse.ui.internal.EditorSite.<init>(EditorSite.java:47)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:408)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:552)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:285)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:140)
at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:263)
at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:394)
at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1140)
at org.eclipse.ui.internal.PartStack.handleDeferredEvents(PartStack.java:1108)
at org.eclipse.ui.internal.LayoutPart.deferUpdates(LayoutPart.java:390)
at org.eclipse.ui.internal.PartSashContainer.handleDeferredEvents(PartSashContainer.java:1353)
at org.eclipse.ui.internal.LayoutPart.deferUpdates(LayoutPart.java:390)
at org.eclipse.ui.internal.WorkbenchPage.handleDeferredEvents(WorkbenchPage.java:1267)
at org.eclipse.ui.internal.WorkbenchPage.deferUpdates(WorkbenchPage.java:1257)
at org.eclipse.ui.internal.WorkbenchPage.restoreState(WorkbenchPage.java:2735)
at org.eclipse.ui.internal.WorkbenchWindow.restoreState(WorkbenchWindow.java:1851)
at org.eclipse.ui.internal.Workbench.doRestoreState(Workbench.java:2644)
at org.eclipse.ui.internal.Workbench.access$14(Workbench.java:2593)
at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1542)
at org.eclipse.ui.internal.Workbench.runStartupWithProgress(Workbench.java:1294)
at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1540)
at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1519)
at org.eclipse.ui.internal.Workbench$15.run(Workbench.java:1402)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:785)
at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1346)
at org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(WorkbenchConfigurer.java:183)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:700)
at org.eclipse.ui.internal.Workbench.init(Workbench.java:1074)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1696)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:396)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)


org.eclipse.ui.PartInitException: No editor descriptor for id net.sourceforge.phpeclipse.PHPUnitEditor
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:543)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:374)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:552)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:285)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:140)
at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:263)
at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:394)
at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1140)
at org.eclipse.ui.internal.PartStack.handleDeferredEvents(PartStack.java:1108)
at org.eclipse.ui.internal.LayoutPart.deferUpdates(LayoutPart.java:390)
at org.eclipse.ui.internal.PartSashContainer.handleDeferredEvents(PartSashContainer.java:1353)
at org.eclipse.ui.internal.LayoutPart.deferUpdates(LayoutPart.java:390)
at org.eclipse.ui.internal.WorkbenchPage.handleDeferredEvents(WorkbenchPage.java:1267)
at org.eclipse.ui.internal.WorkbenchPage.deferUpdates(WorkbenchPage.java:1257)
at org.eclipse.ui.internal.WorkbenchPage.restoreState(WorkbenchPage.java:2735)
at org.eclipse.ui.internal.WorkbenchWindow.restoreState(WorkbenchWindow.java:1851)
at org.eclipse.ui.internal.Workbench.doRestoreState(Workbench.java:2644)
at org.eclipse.ui.internal.Workbench.access$14(Workbench.java:2593)
at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1542)
at org.eclipse.ui.internal.Workbench.runStartupWithProgress(Workbench.java:1294)
at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1540)
at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1519)
at org.eclipse.ui.internal.Workbench$15.run(Workbench.java:1402)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:785)
at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1346)
at org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(WorkbenchConfigurer.java:183)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:700)
at org.eclipse.ui.internal.Workbench.init(Workbench.java:1074)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1696)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:396)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:106)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:109)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:338)
at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)


The problem is that updating on the Mac blows away your config directory.  Before upgrading I had installed the PHP editing plugins and when I shut down I had one of their editors open.  The failure to find this editor on startup blew away my layout.
Comment 1 Paul Webster CLA 2006-09-28 15:17:21 EDT
Is this still a problem in 3.3?

PW
Comment 2 Denis Roy CLA 2007-06-22 09:33:15 EDT
Changes requested on bug 193523
Comment 3 Paul Webster CLA 2007-06-27 14:33:25 EDT
I think this was a transient state
PW
Comment 4 Markus Keller CLA 2008-02-08 05:47:24 EST
This just happened to me in I20080207-1530. As mentioned in comment 0, I also left an editor from a third-party plug-in open, and then restarted the workspace without the editor's contributing plug-in available.

Whenever I try to open the editor tab overflow menu (called "Show List"), I get the exceptions below and the affected editor's icon is a big red square.

!ENTRY org.eclipse.ui 4 0 2008-02-08 11:45:58.234
!MESSAGE Unable to create editor ID com.thirdparty.XMLEditor: No editor descriptor for id com.thirdparty.XMLEditor
!STACK 1
org.eclipse.ui.PartInitException: No editor descriptor for id com.thirdparty.XMLEditor
	at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:598)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:428)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:594)
	at org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:256)
	at org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:98)
	at org.eclipse.ui.internal.presentations.PresentablePart.setFocus(PresentablePart.java:192)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:94)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:267)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:272)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.handleMouseDown(AbstractTabFolder.java:342)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder$3.mouseDown(AbstractTabFolder.java:79)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:178)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3760)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3371)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1227)
!SUBENTRY 1 org.eclipse.ui 4 0 2008-02-08 11:45:58.234
!MESSAGE No editor descriptor for id com.thirdparty.XMLEditor

!ENTRY org.eclipse.ui 4 0 2008-02-08 11:46:01.656
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.core.runtime.AssertionFailedException: null argument:
	at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:84)
	at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:72)
	at org.eclipse.ui.internal.EditorSite.<init>(EditorSite.java:46)
	at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:464)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:594)
	at org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:256)
	at org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:98)
	at org.eclipse.ui.internal.presentations.PresentablePart.setFocus(PresentablePart.java:192)
	at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:94)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:267)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:272)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.handleMouseDown(AbstractTabFolder.java:342)
	at org.eclipse.ui.internal.presentations.util.AbstractTabFolder$3.mouseDown(AbstractTabFolder.java:79)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:178)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3760)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3371)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1227)
Comment 5 Kim Horne CLA 2008-02-08 08:28:21 EST
Eric, this is also affecting RPT - how timely that you should see this again Markus!
Comment 6 Paul Webster CLA 2009-03-02 11:40:01 EST
Updated as per http://wiki.eclipse.org/Platform_UI/Bug_Triage
PW
Comment 7 Paul Webster CLA 2013-09-20 15:42:28 EDT
We've implemented new and exciting ways to make perspective layouts disappear (model driven renderers).

PW