| Summary: | [Compatibility] Some keybindings are not working in I20101202-0915 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] e4 | Reporter: | Remy Suen <remy.suen> | ||||||||||
| Component: | UI | Assignee: | Paul Webster <pwebster> | ||||||||||
| Status: | RESOLVED FIXED | QA Contact: | |||||||||||
| Severity: | critical | ||||||||||||
| Priority: | P3 | ||||||||||||
| Version: | 1.0 | ||||||||||||
| Target Milestone: | 4.1 M4 | ||||||||||||
| Hardware: | PC | ||||||||||||
| OS: | Windows XP | ||||||||||||
| Whiteboard: | |||||||||||||
| Attachments: |
|
||||||||||||
|
Description
Remy Suen
Created attachment 184373 [details]
org.eclipse.ui.workbench.prefs
This bug is caused by customized keybinding preferences lingering over from 3.x. That is, if you have a 3.x workspace, have changed some keybindings, and tried to start it up with I20101202-0915, you will see the problem.
To reproduce the problem, you can download the attachment and place it in your workspace's .metadata/.plugins/org.eclipse.core.runtime/.settings/ folder.
Note that there may be a second problem though of opening an older 4.1 workspace with I20101202-0915 because the keybindings are missing in that instant but return if the deltas.xml is deleted. The order of operations for the commands/bindings is /org.eclipse.ui.workbench/plugin.xml: org.eclipse.ui.internal.CommandToModelProcessor org.eclipse.ui.internal.ContextToModelProcessor org.eclipse.ui.internal.BindingToModelProcessor these processors fill in the model with commands and keybindings scraped from the 3.x extension points. Then from /org.eclipse.platform/LegacyIDE.e4xmi: 1) Set up the services org.eclipse.e4.core.commands.CommandServiceAddon org.eclipse.e4.ui.services.ContextServiceAddon org.eclipse.e4.ui.bindings.BindingServiceAddon 2) fill in the services from the model org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon PW (In reply to comment #2) > Note that there may be a second problem though of opening an older 4.1 > workspace with I20101202-0915 because the keybindings are missing in that > instant but return if the deltas.xml is deleted. 1. Start I20101126-1155 on a new workspace. 2. Ctrl+Shift+R opens a dialog. 3. File > Exit 4. Start I20101202-0915 on the same workspace. 5. Ctrl+Shift+R does not work. 6. File > Exit 7. Delete the workspace's deltas.xml file. 8. Repeat steps 4 and 5. Ctrl+Shift+R is working now. So this definitely seems like a different problem. Created attachment 184379 [details] deltas.xml The attached deltas.xml file will reproduce the problem described by comment 4. Problem with 3.x key preferences !ENTRY org.eclipse.e4.ui.workbench 2 0 2010-12-02 14:34:30.217 !MESSAGE Could not run processor !STACK 0 org.eclipse.e4.core.di.InjectionException: java.lang.IllegalStateException: Workbench has not been created yet. at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:59) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:226) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:196) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:86) at org.eclipse.e4.ui.internal.workbench.ModelAssembler.runProcessor(ModelAssembler.java:219) at org.eclipse.e4.ui.internal.workbench.ModelAssembler.processModel(ModelAssembler.java:87) at org.eclipse.e4.ui.internal.workbench.ResourceHandler.loadMostRecentModel(ResourceHandler.java:233) at org.eclipse.e4.ui.internal.workbench.swt.E4Application.loadApplicationModel(E4Application.java:323) at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:191) at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:523) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:516) 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: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: java.lang.IllegalStateException: Workbench has not been created yet. at org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:92) at org.eclipse.ui.internal.keys.BindingPersistence.readBindingsFromPreferences(BindingPersistence.java:486) at org.eclipse.ui.internal.keys.BindingPersistence.reRead(BindingPersistence.java:1395) at org.eclipse.ui.internal.keys.BindingPersistence.read(BindingPersistence.java:1294) at org.eclipse.ui.internal.BindingToModelProcessor.process(BindingToModelProcessor.java:60) 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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:52) ... 26 more Created attachment 184391 [details]
Don't ask for the view registry v01
Don't ask for the view registry before the workbench is initialized.
PW
Created attachment 184397 [details]
Don't throw away duplicate binding tables v01
Released to HEAD
PW
Released for tonight's build. PW |