Community
Participate
Working Groups
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)
Pushed a fix to the 3.8.x branch. The review for master is here: https://git.eclipse.org/r/9456.
The change was merged into master as well.
Verified with 3.8.3.v20130107-0100.