Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 396135 - [e4] editor restore should not fall back to legacy editor code due to unexpected exceptions
Summary: [e4] editor restore should not fall back to legacy editor code due to unexpec...
Status: VERIFIED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 3.8.3   Edit
Assignee: Steffen Pingel CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 321278
  Show dependency tree
 
Reported: 2012-12-08 17:37 EST by Steffen Pingel CLA
Modified: 2013-01-10 10:05 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steffen Pingel CLA 2012-12-08 17:37:18 EST
When I activated a task editors were restored multiple times and restore was very slow. I think the restore code fell back to the legacy implementation due to some exception. 

The exception checking should more strict and detect the Eclipse version reliably.

"main" prio=10 tid=0x00007fc244008000 nid=0xd1e runnable [0x00007fc248e08000]
   java.lang.Thread.State: RUNNABLE
        at org.eclipse.ui.part.WorkbenchPart.getSite(WorkbenchPart.java:178)
        at org.eclipse.ui.internal.services.WorkbenchSourceProvider.updateActivePart(WorkbenchSourceProvider.java:475)
        at org.eclipse.ui.internal.services.WorkbenchSourceProvider.checkActivePart(WorkbenchSourceProvider.java:302)
        at org.eclipse.ui.internal.services.WorkbenchSourceProvider.checkActivePart(WorkbenchSourceProvider.java:297)
        at org.eclipse.ui.internal.services.WorkbenchSourceProvider$1.partDeactivated(WorkbenchSourceProvider.java:247)
        at org.eclipse.ui.internal.PartService$4.run(PartService.java:109)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.ui.internal.PartService.partDeactivated(PartService.java:107)
        at org.eclipse.ui.internal.WorkbenchPage$13.run(WorkbenchPage.java:4521)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.ui.internal.WorkbenchPage.firePartDeactivated(WorkbenchPage.java:4519)
        at org.eclipse.ui.internal.WorkbenchPage.access$18(WorkbenchPage.java:4512)
        at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partDeactivated(WorkbenchPage.java:184)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$3.run(PartServiceImpl.java:205)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartDeactivated(PartServiceImpl.java:203)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.setPart(PartServiceImpl.java:164)
        at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
        at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:88)
        at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:107)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:324)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:338)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.activate(EclipseContext.java:621)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.activateBranch(EclipseContext.java:626)
        at org.eclipse.e4.ui.internal.workbench.PartActivationHistory.activate(PartActivationHistory.java:52)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:563)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:532)
        at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:105)
        at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer$1.handleEvent(ContributedPartRenderer.java:61)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1416)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1397)
        at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1669)
        at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:3785)
        at org.eclipse.swt.widgets.Control.gtk_event_after(Control.java:3063)
        at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2081)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:5334)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4526)
        at org.eclipse.swt.internal.gtk.OS._gtk_widget_grab_focus(Native Method)
        at org.eclipse.swt.internal.gtk.OS.gtk_widget_grab_focus(OS.java:13536)
        at org.eclipse.swt.widgets.Control.forceFocus(Control.java:2394)
        at org.eclipse.swt.widgets.Composite.forceFocus(Composite.java:546)
        at org.eclipse.swt.widgets.Control.forceFocus(Control.java:2387)
        at org.eclipse.swt.widgets.Control.setFocus(Control.java:4197)
        at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1404)
        at org.eclipse.ui.texteditor.AbstractTextEditor.setFocus(AbstractTextEditor.java:6210)
        at org.eclipse.ui.texteditor.StatusTextEditor.setFocus(StatusTextEditor.java:122)
        at org.eclipse.jdt.internal.ui.javaeditor.JavaEditor.setFocus(JavaEditor.java:2389)
        at org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor.setFocus(ClassFileEditor.java:921)
        at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.delegateSetFocus(CompatibilityPart.java:189)
        at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
        at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:231)
        at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:237)
        at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:208)
        at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:106)
        at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer$2.setFocus(ContributedPartRenderer.java:101)
        at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1402)
        at org.eclipse.swt.widgets.Control.fixFocus(Control.java:204)
        at org.eclipse.swt.widgets.Control.setVisible(Control.java:4673)
        at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3011)
        at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2968)
        at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1128)
        at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer$1.handleEvent(LazyStackRenderer.java:66)
        at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:41)
        at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:180)
        at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)
        at org.eclipse.swt.widgets.Display.syncExec(Display.java:4448)
        at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:187)
        at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
        at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
        at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
        at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
        at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
        at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
        at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
        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:81)
        at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:58)
        at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
        at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:171)
        at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:418)
        at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:385)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:586)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:560)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:532)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:521)
        at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:985)
        at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.mylyn.internal.context.ui.state.E4EditorReflector.showPart(E4EditorReflector.java:129)
        at org.eclipse.mylyn.internal.context.ui.state.EditorStateParticipant.restoreEditors_e_4_legacy(EditorStateParticipant.java:425)
        at org.eclipse.mylyn.internal.context.ui.state.EditorStateParticipant.restoreEditors(EditorStateParticipant.java:372)
        at org.eclipse.mylyn.internal.context.ui.state.EditorStateParticipant.restoreState(EditorStateParticipant.java:128)
        at org.eclipse.mylyn.internal.context.ui.state.ContextStateManager$3.run(ContextStateManager.java:114)
        at org.eclipse.mylyn.internal.context.ui.state.ContextStateManager$3.run(ContextStateManager.java:1)
        at org.eclipse.mylyn.commons.core.CommonListenerList$1.run(CommonListenerList.java:93)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.mylyn.commons.core.CommonListenerList.notify(CommonListenerList.java:85)
        at org.eclipse.mylyn.internal.context.ui.state.ContextStateManager.restoreState(ContextStateManager.java:110)
        at org.eclipse.mylyn.internal.context.tasks.ui.ContextStatePersistenceHandler.activated(ContextStatePersistenceHandler.java:62)
        at org.eclipse.mylyn.internal.context.tasks.ui.ContextTasksStartupHandler$ContextActivationListener.contextChanged(ContextTasksStartupHandler.java:115)
        at org.eclipse.mylyn.internal.context.core.InteractionContextManager$6.run(InteractionContextManager.java:711)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.mylyn.internal.context.core.InteractionContextManager.internalActivateContext(InteractionContextManager.java:702)
        at org.eclipse.mylyn.internal.context.core.InteractionContextManager.activateContext(InteractionContextManager.java:185)
        at org.eclipse.mylyn.internal.context.tasks.ui.TaskActivityMonitor$2.taskActivated(TaskActivityMonitor.java:75)
        at org.eclipse.mylyn.internal.tasks.core.TaskActivityManager.activateTask(TaskActivityManager.java:479)
        at org.eclipse.mylyn.internal.tasks.ui.commands.ActivateTaskHandler.execute(ActivateTaskHandler.java:30)
        at org.eclipse.mylyn.internal.tasks.ui.commands.AbstractTaskHandler.process(AbstractTaskHandler.java:86)
        at org.eclipse.mylyn.internal.tasks.ui.commands.AbstractTaskHandler.process(AbstractTaskHandler.java:70)
        at org.eclipse.mylyn.internal.tasks.ui.commands.AbstractTaskHandler.execute(AbstractTaskHandler.java:52)
        at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:290)
        at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:76)
        at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
        at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:231)
        at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:212)
        at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:131)
        at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:171)
        at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommandInContext(LegacyHandlerService.java:561)
        at org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal.executeCommand(TasksUiInternal.java:1231)
        at org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal.activateTaskThroughCommand(TasksUiInternal.java:1277)
        at org.eclipse.mylyn.internal.tasks.ui.views.TaskListCellModifier.toggleTaskActivation(TaskListCellModifier.java:130)
        at org.eclipse.mylyn.internal.tasks.ui.views.TaskListView$11.mouseUp(TaskListView.java:895)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:220)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3699)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3320)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1026)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:915)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:79)
        at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:587)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:542)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
        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:353)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
        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:629)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1443)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1419)
Comment 1 Steffen Pingel CLA 2013-01-04 09:14:59 EST
Pushed a fix to the 3.8.x branch. The review for master is here: https://git.eclipse.org/r/9456.
Comment 2 Steffen Pingel CLA 2013-01-05 16:11:46 EST
The change was merged into master as well.
Comment 3 Steffen Pingel CLA 2013-01-10 10:04:50 EST
Verified with 3.8.3.v20130107-0100.