| Summary: | Undiagnosed Failed to create injector for 1.8 editor extending 1.7 editor | ||
|---|---|---|---|
| Product: | [Modeling] TMF | Reporter: | Ed Willink <ed> |
| Component: | Xtext | Assignee: | Project Inbox <tmf.xtext-inbox> |
| Status: | VERIFIED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | Holger.Schill, sebastian.zarnekow, st.oehme, sven.efftinge |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| See Also: |
https://git.eclipse.org/r/42532 https://git.eclipse.org/c/tmf/org.eclipse.xtext.git/commit/?id=b6a857a0cf023c4cc2ee545debdce905e3a1184e https://git.eclipse.org/r/42570 https://git.eclipse.org/c/tmf/org.eclipse.xtext.git/commit/?id=0ed19329a2f61b65461e2fff17365c7a232426b0 |
||
| Whiteboard: | v2.8 | ||
Workaround: after generating with Xtext 2.8, apply the following replacements to the ...ui/src-gen tree *.g/*.java. org.eclipse.xtext.ide.LexerIdeBindings => org.eclipse.xtext.ui.LexerUIBindings org.eclipse.xtext.ide => org.eclipse.xtext.ui org.eclipse.xtext.ui.editor.contentassist.antlr.DelegatingContentAssistContextFactory => org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory The org.eclipse.ocl.examples.build.utilities.BackportToXtext_2_7.java MWE2 component can be appended to a MWE2 editor generate script to do this automatically. See org.eclipse.ocl.examples.build.GenerateEssentialOCLEditor.mwe2 for an example. I oomphed both the ocl and qvtd repo. What do I have to do to observe the problem? The problem arose after I installed http://www.eclipse.org/modeling/download.php?file=/modeling/mdt/ocl/downloads/drops/6.0.0/N201502230001/mdt-ocl-Update-N201502230001.zip and http://www.eclipse.org/downloads/download.php?file=/mmt/qvtd/downloads/drops/1.0.0/N201502221230/mmt-qvtd-incubation-Update-N201502221230.zip Opening a *.qvtc, *.qvti, *.qvtr file will give the start failure. (There are Examples projects if you want real files.) After arranging the backport to 2.7 http://www.eclipse.org/downloads/download.php?file=/mmt/qvtd/downloads/drops/1.0.0/N201502221740/mmt-qvtd-incubation-Update-N201502221740.zip works fine. A specific but surprising problem is that the new DelegatingContentAssistContextFactory does not play well (Guice errors) with an old ParserBasedContentAssistContextFactory in the extended grammar. More generally, and I don't understand Guice magic, I'm not clear how one grammar that binds the ui and another the ide version of ...editor.contentassist.antlr.internal.Lexer, ....editor.contentassist.antlr.IContentAssistParser etc can co-exist in derived/extended plugins. The changes, mainly in the UIModule from 2.8-generated to backported are shown below. See the full commit for all the changes. (Again) It really seems to me that the purely aesthetic change from "ui" to "ide" is a needless and irresponsible source of major trouble to your users. It has certainly cost me a couple of days work so far, and I'm just the forerunner of other users. As a minimum IMHO it mandates a major version change. commit c07ca22274115e34ff9364d022345cc2cc0b9470 Author: Ed Willink <ed@willink.me.uk> 2015-02-22 22:30:19 Committer: Ed Willink <ed@willink.me.uk> 2015-02-22 22:36:13 Parent: 4fe0082dbbdcf5487d15b39a32a635f39bb9ca1c ([releng] Move obsolete qvtd.license to archive) Branches: origin/master [456506] Retain pre-Xtext 2.8 compatibility. diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/AbstractQVTrelationUiModule.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/AbstractQVTrelationUiModule.java index 8478e73..65fb193 100644 --- a/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/AbstractQVTrelationUiModule.java +++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/AbstractQVTrelationUiModule.java @@ -29,12 +29,12 @@ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment public void configureHighlightingLexer(com.google.inject.Binder binder) { - binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ide.LexerIdeBindings.HIGHLIGHTING)).to(org.eclipse.qvtd.xtext.qvtrelation.parser.antlr.internal.InternalQVTrelationLexer.class); + binder.bind(org.eclipse.xtext.parser.antlr.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.qvtd.xtext.qvtrelation.parser.antlr.internal.InternalQVTrelationLexer.class); } // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment public void configureHighlightingTokenDefProvider(com.google.inject.Binder binder) { - binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ide.LexerIdeBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class); + binder.bind(org.eclipse.xtext.parser.antlr.ITokenDefProvider.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.HIGHLIGHTING)).to(org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider.class); } // contributed by org.eclipse.xtext.generator.exporting.QualifiedNamesFragment @@ -74,11 +74,11 @@ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment public Class<? extends org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext.Factory> bindContentAssistContext$Factory() { - return org.eclipse.xtext.ui.editor.contentassist.antlr.DelegatingContentAssistContextFactory.class; + return org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.class; } // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment - public Class<? extends org.eclipse.xtext.ide.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() { + public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() { return org.eclipse.qvtd.xtext.qvtrelation.ui.contentassist.antlr.QVTrelationParser.class; } @@ -89,7 +89,7 @@ // contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment public void configureContentAssistLexer(com.google.inject.Binder binder) { - binder.bind(org.eclipse.xtext.ide.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ide.LexerIdeBindings.CONTENT_ASSIST)).to(org.eclipse.qvtd.xtext.qvtrelation.ui.contentassist.antlr.internal.InternalQVTrelationLexer.class); + binder.bind(org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.class).annotatedWith(com.google.inject.name.Names.named(org.eclipse.xtext.ui.LexerUIBindings.CONTENT_ASSIST)).to(org.eclipse.qvtd.xtext.qvtrelation.ui.contentassist.antlr.internal.InternalQVTrelationLexer.class); } // contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment Hi Ed, are there specific steps that I can do to observe the behavior, e.g. checkout git-id XXXX from source, run some workflow and launch an editor? The problem should be really solid. But when I do the trivial install from repo everything's fine. I'm reverting my machine which failed in both installed configuration and nested Eclipse. Maybe there's a third party involved.... (In reply to Ed Willink from comment #5) > The problem should be really solid. But when I do the trivial install from > repo everything's fine. It is solid, so long as you use the 'right' ZIPs. Unzip eclipse-SDK-4.5M5a-win32-x86_64.zip Install mdt-ocl-Update-N201502220920.zip (which pulls in EMF, UML2, MWE2, Xtend, Xtext etc from releases/mars) Install mmt-qvtd-incubation-Update-N201502221230.zip Restart File->New->Example...->QVT->Relations to Core Example Open editor for qvtrsrc/RelToCore.qvtr Editor shows Guice injector failure --- Install mmt-qvtd-incubation-Update-N201502221740.zip Restart Editor opens fine --- https://hudson.eclipse.org/ocl/job/qvtd-mars-master/changes shows the one commit difference to provide the 2.7 compatible backport. If you need to investigate the source, setting GIT before/after the commit should show the same effect. I checked out commit 4fe0082dbbdcf5487d15b39a32a635f39bb9ca1c of the qvtd git repo, opened a runtime eclipse, created a qvt project and a qvt file. I didn't get any exception. Please provide easy to reproduce steps starting from a successfully cloned qvtd and ocl repo. offtopic: I had to close all test and many example projects because of missing deps in the manifest after I used oomph to create a combined qvt/ocl eclipse. Is that a known issue? [I'm afraid that I don't find OOMPH useful for maintaining my workspaces, so it is a work in progress from one of my colleagues]. I'm able to reproduce in a nested Eclipse. As before: Unzip eclipse-SDK-4.5M5a-win32-x86_64.zip Install mdt-ocl-Update-N201502220920.zip (which pulls in EMF, UML2, MWE2, Xtend, Xtext etc from releases/mars) Install mmt-qvtd-incubation-Update-N201502221230.zip Install EGIT. Clone https://git.eclipse.org/r/ocl/org.eclipse.ocl (without importing any projects) Import the following from plugins org.eclipse.ocl.jdt.annotation7 org.eclipse.ocl.pivot org.eclipse.ocl.xtext.base org.eclipse.ocl.xtext.base.ui org.eclipse.ocl.xtext.essentialocl org.eclipse.ocl.xtext.essentialocl.ui org.eclipse.ocl.xtext.markup org.eclipse.ocl.xtext.markup.ui Clone https://git.eclipse.org/r/mmt/org.eclipse.qvtd (without importing any projects) Import the following from plugins org.eclipse.qvtd.pivot.qvtbase org.eclipse.qvtd.pivot.qvtrelation org.eclipse.qvtd.pivot.qvttemplate org.eclipse.qvtd.xtext.qvtbase.ui org.eclipse.qvtd.xtext.qvtrelation org.eclipse.qvtd.xtext.qvtrelation.ui Set OCL to commit 901389bc5bb718bc78143a9da227bc01f98fd9e3 Set QVTd to commit 4fe0082dbbdcf5487d15b39a32a635f39bb9ca1c Start nested Eclipse File->New->Example...->QVT->Relations to Core Example Open editor for qvtrsrc/RelToCore.qvtr Editor shows Guice injector failure Looking at QVTimperativeUiModule, I see that you manually bound "Bug382088Workaround ", which is a subclass of the deprecated ParserBasedContentAssistContextFactory.StatefulFactory. It is this class that causes your missing bindings and has nothing to do with inheritance etc. To fix it, make Bug382088Workaround extend the new base class "org.eclipse.xtext.ide.editor.contentassist.antlr.ContentAssistContextFactory". Just remove your backport component, it is not needed. Meanwhile, we need to actually mark these classes as deprecated (they are only in a "deprecated" folder, but miss the annotation). (In reply to Stefan Oehme from comment #9) > Looking at QVTimperativeUiModule, I see that you manually bound > "Bug382088Workaround ", which is a subclass of the deprecated > ParserBasedContentAssistContextFactory.StatefulFactory. It is this class > that causes your missing bindings and has nothing to do with inheritance > etc. This looks like a backwards compatibiliy issue on our side. Clients that customized the StatefulFactory do no longer work. Let's double check if we can adress that in a better way. (In reply to Sebastian Zarnekow from comment #10) > This looks like a backwards compatibiliy issue on our side. Clients that > customized the StatefulFactory do no longer work. Let's double check if we > can adress that in a better way. *Only* if the regenerate, in which case I would say this is fine. They don't break if they just update to Xtext 2.8. (In reply to Stefan Oehme from comment #9) > To fix it, make Bug382088Workaround extend the new base class > "org.eclipse.xtext.ide.editor.contentassist.antlr. > ContentAssistContextFactory". Just remove your backport component, it is not > needed. But there is no org.eclipse.xtext.ide.editor.contentassist.antlr in Xtext 2.7. However checking the dates on Bug 382088 it looks like the bug was in Juno and Xtext 2.3.0, but got fixed/fixable in Xtext 2.3.1. Looks like Bug 415232 is overdue for some attention. (In reply to Ed Willink from comment #12) > (In reply to Stefan Oehme from comment #9) > > To fix it, make Bug382088Workaround extend the new base class > > "org.eclipse.xtext.ide.editor.contentassist.antlr. > > ContentAssistContextFactory". Just remove your backport component, it is not > > needed. > > But there is no org.eclipse.xtext.ide.editor.contentassist.antlr in Xtext > 2.7. The problematic class is in QVTi, which uses 2.8. We've decided to roll-back the change for 2.8, such that after regeneration there aren't any changes. That means the old API should not be deprecated and the new one should be provisional. Xtend however should still use the new stuff, so we need two fragments or a configurable one. (In reply to Sven Efftinge from comment #14) > We've decided to roll-back the change for 2.8, such that after regeneration > there aren't any changes. Thanks. New Gerrit change created: https://git.eclipse.org/r/42532 Gerrit change https://git.eclipse.org/r/42532 was merged to [master]. Commit: http://git.eclipse.org/c/tmf/org.eclipse.xtext.git/commit/?id=b6a857a0cf023c4cc2ee545debdce905e3a1184e New Gerrit change created: https://git.eclipse.org/r/42570 WARNING: this patchset contains 11329 new lines of code and may require a Contribution Questionnaire (CQ) if the author is not a committer on the project. Please see:https://wiki.eclipse.org/Project_Management_Infrastructure/Creating_A_Contribution_Questionnaire Gerrit change https://git.eclipse.org/r/42570 was merged to [master]. Commit: http://git.eclipse.org/c/tmf/org.eclipse.xtext.git/commit/?id=0ed19329a2f61b65461e2fff17365c7a232426b0 WARNING: this patchset contains 11329 new lines of code and may require a Contribution Questionnaire (CQ) if the author is not a committer on the project. Please see:https://wiki.eclipse.org/Project_Management_Infrastructure/Creating_A_Contribution_Questionnaire Merged to master. Ed, could you please take the latest build when its through and try to verify if it works for you now. (In reply to Holger Schill from comment #20) > Merged to master. > Ed, could you please take the latest build when its through and try to > verify if it works for you now. Downloading now. I hope I can remove my backporting. Unfortunately you cannot fix the incompatibility of featureIds in *.xtextbin (Bug 460677), so I have to continue with my Java serialized grammar models; surprisingly the *.class is less than three times the size of the *.xtextbin so as well as portability, there is a win in re-use and probably in load-time too. (In reply to Ed Willink from comment #21) > Downloading now. I hope I can remove my backporting. Looks promising. Thanks. Regenerating gives no package/class reference changes. There are minor changes; some trivial formatting, the semantic sequencer has evolved and the parser changes slightly. Probably for the better. I'll open separate bugs if anything shows up. (Even my multi-editor MWE2 generate script works again.) Ed said thumbs up. I don't understand why this is no longer a critical bug. The fact that you decided to revert changes (thank you again) surely conforms that it was critical and so remains so. Surely to move away from critical requires a better impartial assessment of the severity. Fixing a bug does not change its severity. (In reply to Ed Willink from comment #24) > I don't understand why this is no longer a critical bug. > > The fact that you decided to revert changes (thank you again) surely > conforms that it was critical and so remains so. > > Surely to move away from critical requires a better impartial assessment of > the severity. Fixing a bug does not change its severity. In general we don't use the severity to indicate any kind of critical-ness. In fact it is used within the committer team to announce that a particular bug is important in the end game of a planed release. Even documentation bugs are in that period often marked as critical. Afterwards we reset it to avoid confusion - which coincidentally in turn caused confusion. Sorry about that. Except that when you come to do the 2.8.0 release review you want to see all the bugs fixed in the 2.8.0 release cycle and all the bugs still outstanding. You will find that you fixed only 'normal' bugs. One would expect/hope that a release fixed all blocker/critical and perhaps major bugs. Equally one would hope to see few high severity bugs. Changing everything to normal once done undermines the statistics and ignores the use of RESOLVED as an AND gate on outstanding important work. |
The incompatible plugin name changes mean that an editor such as QVTi rebuilt using Xtext 1.8 that extends an editor such as EssentialOCL built using Xtext 1.7 fails with: NB. Why no compile time / build-time diagnostic? Failed to create injector for org.eclipse.qvtd.xtext.qvtimperative.QVTimperative ExtensionFactory: org.eclipse.qvtd.xtext.qvtimperative.ui.QVTimperativeExecutableExtensionFactory org.eclipse.core.runtime.CoreException: Failed to create injector for org.eclipse.qvtd.xtext.qvtimperative.QVTimperative ExtensionFactory: org.eclipse.qvtd.xtext.qvtimperative.ui.QVTimperativeExecutableExtensionFactory at org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory.create(AbstractGuiceAwareExecutableExtensionFactory.java:59) at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:262) at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:293) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:288) at org.eclipse.ui.internal.registry.EditorDescriptor.createEditor(EditorDescriptor.java:235) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:332) at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPart(CompatibilityPart.java:273) at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPart(CompatibilityEditor.java:63) at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:311) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:888) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:869) at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:120) at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:337) at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:258) at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:104) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:73) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:55) at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:128) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1223) at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:98) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:678) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:71) at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:151) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:71) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$6.run(PartRenderingEngine.java:547) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:531) at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:69) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:983) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:71) at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:151) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:71) at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:151) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:71) at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:151) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:71) at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveRenderer.processContents(PerspectiveRenderer.java:49) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.showTab(PerspectiveStackRenderer.java:82) at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.postProcess(LazyStackRenderer.java:98) at org.eclipse.e4.ui.workbench.renderers.swt.PerspectiveStackRenderer.postProcess(PerspectiveStackRenderer.java:63) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:678) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:71) at org.eclipse.e4.ui.workbench.renderers.swt.SashRenderer.processContents(SashRenderer.java:151) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:71) at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:662) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:674) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:766) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$2(PartRenderingEngine.java:737) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$7.run(PartRenderingEngine.java:731) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:715) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1078) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:648) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:592) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) at org.eclipse.equinox.launcher.Main.run(Main.java:1465) at org.eclipse.equinox.launcher.Main.main(Main.java:1438) Caused by: java.lang.RuntimeException: Failed to create injector for org.eclipse.qvtd.xtext.qvtimperative.QVTimperative at org.eclipse.qvtd.xtext.qvtimperative.ui.internal.QVTimperativeActivator.createInjector(QVTimperativeActivator.java:71) at org.eclipse.qvtd.xtext.qvtimperative.ui.internal.QVTimperativeActivator.getInjector(QVTimperativeActivator.java:55) at org.eclipse.qvtd.xtext.qvtimperative.ui.QVTimperativeExecutableExtensionFactory.getInjector(QVTimperativeExecutableExtensionFactory.java:26) at org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory.create(AbstractGuiceAwareExecutableExtensionFactory.java:51) ... 140 more Caused by: com.google.inject.CreationException: Guice creation errors: 1) No implementation for org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer annotated with @com.google.inject.name.Named(value=org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.CONTENT_ASSIST) was bound. while locating org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer annotated with @com.google.inject.name.Named(value=org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer.CONTENT_ASSIST) for field at org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory$StatefulFactory.lexer(Unknown Source) at org.eclipse.xtext.service.MethodBasedModule.configure(MethodBasedModule.java:56) 2) No implementation for org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser was bound. while locating org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser for field at org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory$StatefulFactory.parser(Unknown Source) at org.eclipse.xtext.service.MethodBasedModule.configure(MethodBasedModule.java:56) 2 errors at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:435) at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:154) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106) at com.google.inject.Guice.createInjector(Guice.java:95) at com.google.inject.Guice.createInjector(Guice.java:72) at com.google.inject.Guice.createInjector(Guice.java:62) at org.eclipse.qvtd.xtext.qvtimperative.ui.internal.QVTimperativeActivator.createInjector(QVTimperativeActivator.java:67) ... 143 more