Xtext MWE2 Workflow crashing on Generator

325 Views Asked by At

I'm currently creating a Maven build for a legacy project, and I'm trying to perform the compilation of an Xtext language within the Maven build, as described here. I'm able to run the build, but once maven starts the Xtext MWE2 workflow I get the following issue within the workflow:

[ERROR]: GeneratorException: (Element: -UNKNOWN-; Reported by: Generator)
         org.eclipse.internal.xtend.xtend.parser.ParseException: extraneous input '-' expecting TEXT on line 289
        at org.eclipse.internal.xpand2.parser.XpandParseFacade$3.handleError(XpandParseFacade.java:74)
        at org.eclipse.internal.xpand2.parser.XpandParseFacade$2.reportError(XpandParseFacade.java:63)
        at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:596)
        at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
        at org.eclipse.internal.xpand2.parser.XpandParser.template(XpandParser.java:489)
        at org.eclipse.internal.xpand2.parser.XpandParseFacade.file(XpandParseFacade.java:40)
        at org.eclipse.internal.xpand2.parser.XpandParseFacade.file(XpandParseFacade.java:27)
        at org.eclipse.xpand2.XpandExecutionContextImpl$1.parse(XpandExecutionContextImpl.java:174)
        at org.eclipse.xtend.expression.ResourceManagerDefaultImpl.loadResource(ResourceManagerDefaultImpl.java:70)
        at org.eclipse.xpand2.XpandExecutionContextImpl.findTemplate(XpandExecutionContextImpl.java:286)
        at org.eclipse.xpand2.XpandExecutionContextImpl.findTemplate(XpandExecutionContextImpl.java:281)
        at org.eclipse.xpand2.XpandExecutionContextImpl.findDefinition(XpandExecutionContextImpl.java:233)
        at org.eclipse.internal.xpand2.ast.ExpandStatement.invokeDefinition(ExpandStatement.java:236)
        at org.eclipse.internal.xpand2.ast.ExpandStatement.evaluateInternal(ExpandStatement.java:228)
        at org.eclipse.internal.xpand2.ast.Statement.evaluate(Statement.java:41)
        at org.eclipse.internal.xpand2.ast.AbstractDefinition.evaluate(AbstractDefinition.java:176)
        at org.eclipse.xpand2.XpandFacade.evaluate2(XpandFacade.java:62)
        at org.eclipse.xtext.generator.AbstractGeneratorFragment.generate(AbstractGeneratorFragment.java:42)
        at org.eclipse.xtext.generator.parser.antlr.AbstractAntlrGeneratorFragment.generate(AbstractAntlrGeneratorFragment.java:98)
        at org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment.generate(XtextAntlrGeneratorFragment.java:41)
        at org.eclipse.xtext.generator.DefaultGeneratorFragment.generate(DefaultGeneratorFragment.java:122)
        at org.eclipse.xtext.generator.CompositeGeneratorFragment.generate(CompositeGeneratorFragment.java:154)
        at org.eclipse.xtext.generator.Generator.generate(Generator.java:396)
        at org.eclipse.xtext.generator.Generator.invokeInternal(Generator.java:138)
        at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:126)
        at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:34)
        at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:201)
        at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:35)
        at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:19)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:102)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:62)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:52)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:74)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:254)
        at java.lang.Thread.run(Thread.java:748)

java.lang.RuntimeException: Problems running workflow at.jku.mevss.cdsl.GenerateConstraintDSL:
[ERROR]: GeneratorException: (Element: -UNKNOWN-; Reported by: Generator)
         org.eclipse.internal.xtend.xtend.parser.ParseException: extraneous input '-' expecting TEXT on line 289
        at org.eclipse.internal.xpand2.parser.XpandParseFacade$3.handleError(XpandParseFacade.java:74)
        at org.eclipse.internal.xpand2.parser.XpandParseFacade$2.reportError(XpandParseFacade.java:63)
        at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:596)
        at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
        at org.eclipse.internal.xpand2.parser.XpandParser.template(XpandParser.java:489)
        at org.eclipse.internal.xpand2.parser.XpandParseFacade.file(XpandParseFacade.java:40)
        at org.eclipse.internal.xpand2.parser.XpandParseFacade.file(XpandParseFacade.java:27)
        at org.eclipse.xpand2.XpandExecutionContextImpl$1.parse(XpandExecutionContextImpl.java:174)
        at org.eclipse.xtend.expression.ResourceManagerDefaultImpl.loadResource(ResourceManagerDefaultImpl.java:70)
        at org.eclipse.xpand2.XpandExecutionContextImpl.findTemplate(XpandExecutionContextImpl.java:286)
        at org.eclipse.xpand2.XpandExecutionContextImpl.findTemplate(XpandExecutionContextImpl.java:281)
        at org.eclipse.xpand2.XpandExecutionContextImpl.findDefinition(XpandExecutionContextImpl.java:233)
        at org.eclipse.internal.xpand2.ast.ExpandStatement.invokeDefinition(ExpandStatement.java:236)
        at org.eclipse.internal.xpand2.ast.ExpandStatement.evaluateInternal(ExpandStatement.java:228)
        at org.eclipse.internal.xpand2.ast.Statement.evaluate(Statement.java:41)
        at org.eclipse.internal.xpand2.ast.AbstractDefinition.evaluate(AbstractDefinition.java:176)
        at org.eclipse.xpand2.XpandFacade.evaluate2(XpandFacade.java:62)
        at org.eclipse.xtext.generator.AbstractGeneratorFragment.generate(AbstractGeneratorFragment.java:42)
        at org.eclipse.xtext.generator.parser.antlr.AbstractAntlrGeneratorFragment.generate(AbstractAntlrGeneratorFragment.java:98)
        at org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment.generate(XtextAntlrGeneratorFragment.java:41)
        at org.eclipse.xtext.generator.DefaultGeneratorFragment.generate(DefaultGeneratorFragment.java:122)
        at org.eclipse.xtext.generator.CompositeGeneratorFragment.generate(CompositeGeneratorFragment.java:154)
        at org.eclipse.xtext.generator.Generator.generate(Generator.java:396)
        at org.eclipse.xtext.generator.Generator.invokeInternal(Generator.java:138)
        at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:126)
        at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:34)
        at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:201)
        at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:35)
        at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:19)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:102)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:62)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:52)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:74)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:254)
        at java.lang.Thread.run(Thread.java:748)

        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:104)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:62)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:52)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:74)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:254)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException:
[ERROR]: GeneratorException: (Element: -UNKNOWN-; Reported by: Generator)
         org.eclipse.internal.xtend.xtend.parser.ParseException: extraneous input '-' expecting TEXT on line 289
        at org.eclipse.internal.xpand2.parser.XpandParseFacade$3.handleError(XpandParseFacade.java:74)
        at org.eclipse.internal.xpand2.parser.XpandParseFacade$2.reportError(XpandParseFacade.java:63)
        at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:596)
        at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
        at org.eclipse.internal.xpand2.parser.XpandParser.template(XpandParser.java:489)
        at org.eclipse.internal.xpand2.parser.XpandParseFacade.file(XpandParseFacade.java:40)
        at org.eclipse.internal.xpand2.parser.XpandParseFacade.file(XpandParseFacade.java:27)
        at org.eclipse.xpand2.XpandExecutionContextImpl$1.parse(XpandExecutionContextImpl.java:174)
        at org.eclipse.xtend.expression.ResourceManagerDefaultImpl.loadResource(ResourceManagerDefaultImpl.java:70)
        at org.eclipse.xpand2.XpandExecutionContextImpl.findTemplate(XpandExecutionContextImpl.java:286)
        at org.eclipse.xpand2.XpandExecutionContextImpl.findTemplate(XpandExecutionContextImpl.java:281)
        at org.eclipse.xpand2.XpandExecutionContextImpl.findDefinition(XpandExecutionContextImpl.java:233)
        at org.eclipse.internal.xpand2.ast.ExpandStatement.invokeDefinition(ExpandStatement.java:236)
        at org.eclipse.internal.xpand2.ast.ExpandStatement.evaluateInternal(ExpandStatement.java:228)
        at org.eclipse.internal.xpand2.ast.Statement.evaluate(Statement.java:41)
        at org.eclipse.internal.xpand2.ast.AbstractDefinition.evaluate(AbstractDefinition.java:176)
        at org.eclipse.xpand2.XpandFacade.evaluate2(XpandFacade.java:62)
        at org.eclipse.xtext.generator.AbstractGeneratorFragment.generate(AbstractGeneratorFragment.java:42)
        at org.eclipse.xtext.generator.parser.antlr.AbstractAntlrGeneratorFragment.generate(AbstractAntlrGeneratorFragment.java:98)
        at org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment.generate(XtextAntlrGeneratorFragment.java:41)
        at org.eclipse.xtext.generator.DefaultGeneratorFragment.generate(DefaultGeneratorFragment.java:122)
        at org.eclipse.xtext.generator.CompositeGeneratorFragment.generate(CompositeGeneratorFragment.java:154)
        at org.eclipse.xtext.generator.Generator.generate(Generator.java:396)
        at org.eclipse.xtext.generator.Generator.invokeInternal(Generator.java:138)
        at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:126)
        at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:34)
        at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:201)
        at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:35)
        at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:19)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:102)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:62)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:52)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.run(Mwe2Launcher.java:74)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher.main(Mwe2Launcher.java:35)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:254)
        at java.lang.Thread.run(Thread.java:748)

        at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.handleIssues(Mwe2Bridge.java:56)
        at org.eclipse.emf.mwe.core.lib.Mwe2Bridge.invoke(Mwe2Bridge.java:48)
        at org.eclipse.emf.mwe.core.lib.AbstractWorkflowComponent.invoke(AbstractWorkflowComponent.java:201)
        at org.eclipse.emf.mwe2.runtime.workflow.AbstractCompositeWorkflowComponent.invoke(AbstractCompositeWorkflowComponent.java:35)
        at org.eclipse.emf.mwe2.runtime.workflow.Workflow.run(Workflow.java:19)
        at org.eclipse.emf.mwe2.launch.runtime.Mwe2Runner.run(Mwe2Runner.java:102)
        ... 6 more

I've searched around a bit and tried to find a way to make the Generator more verbose, but couldn't find anything. Unfortunately I can't really find the source of the error from the error message, since it says the element causing the issue is unknown.

I also manually checked the .xtext file with the language for any loose '-' symbols, but couldn't find any. Any leads on how I could debug this issue? I'm not even really sure where to start digging.

1

There are 1 best solutions below

2
On

As per your comment further information about the project cannot be given. Instead you are looking for a possibility to investigate further what the root cause is.

I suggest using mvnDebug. This command ships with Maven and allows you to debug the execution of a maven plugin. To set it up properly, you need an eclipse (or whatever IDE) with the source code of the plugin. I'm guessing, you are using the xtext-maven-plugin as shown in the link. To get the source code, the easiest way I find is to set up a new Maven project using the plugin as a dependency. Make sure the version is identical, otherwise debugging can yield funny results.

<dependency>
    <groupId>org.eclipse.xtext</groupId>
    <artifactId>xtext-maven-plugin</artifactId>
    <version>${xtext-version}</version>
</dependency>

Set a breakpoint in one of the classes you want to investigate (e. g. org.eclipse.internal.xpand2.parser.XpandParser.template(XpandParser.java:489)) Then you execute Maven using

mvnDebug verify

(or whatever goal you use) instead of

mvn verify

Maven will then wait for a remote debugger to attach to its process. In Eclipse you create a new Debug Configuration of type Remote Java Application and start it via Debug button.

Debug configuration

From there you can use standard debugging techniques to see where the error happens.