eclipse-xtext / eclipse-xtext/xtext
Bogus exception handling during build
Open
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 831
- Forks
- 330
- Avg merge
- 3d 7h
- Merged PRs (30d)
- 12
Description
Model:
greetings+=Greeting*;
Greeting:
'Hello' name=ID ('from' from=[Greeting])? '!';
public class MyDslScopeProvider extends AbstractMyDslScopeProvider {
@Override
public IScope getScope(EObject context, EReference reference) {
if (true) {
throw new ClassCastException("xxxxx");
}
return super.getScope(context, reference);
}
}
Caused by: java.lang.ClassCastException: xxxxx
at org.xtext.example.mydsl.scoping.MyDslScopeProvider.getScope(MyDslScopeProvider.java:21)
at org.eclipse.xtext.linking.impl.DefaultLinkingService.getScope(DefaultLinkingService.java:59)
at org.eclipse.xtext.linking.impl.DefaultLinkingService.getLinkedObjects(DefaultLinkingService.java:108)
at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:266)
at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:237)
... 23 more
109185 [Worker-10: Building] ERROR org.eclipse.xtext.builder.clustering.CopiedResourceDescription - java.lang.IllegalStateException: getReferenceDescriptions platform:/resource/demo/x.mydsl
java.lang.IllegalStateException: getReferenceDescriptions platform:/resource/demo/x.mydsl
at org.eclipse.xtext.builder.clustering.CopiedResourceDescription.getReferenceDescriptions(CopiedResourceDescription.java:85)
at org.eclipse.xtext.builder.builderState.BuilderStateUtil.copyReferenceDescriptions(BuilderStateUtil.java:60)
at org.eclipse.xtext.builder.builderState.BuilderStateUtil.create(BuilderStateUtil.java:35)
at org.eclipse.xtext.builder.clustering.ClusteringBuilderState.doUpdate(ClusteringBuilderState.java:269)
at org.eclipse.xtext.builder.builderState.AbstractBuilderState.update(AbstractBuilderState.java:164)
at org.eclipse.xtext.builder.impl.XtextBuilder.doBuild(XtextBuilder.java:521)
at org.eclipse.xtext.builder.impl.XtextBuilder.addInfosFromTaskAndBuild(XtextBuilder.java:455)
at org.eclipse.xtext.builder.impl.XtextBuilder.fullBuild(XtextBuilder.java:562)
at org.eclipse.xtext.builder.impl.XtextBuilder.build(XtextBuilder.java:333)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:1024)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:254)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:311)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:400)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:403)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:514)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:462)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:544)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:161)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:255)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
@szarnekow do we intentionally call BuilderStateUtil.create on copiedresourcedescription?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the build with the shown MyDslScopeProvider and start at CopiedResourceDescription.getReferenceDescriptions, then follow BuilderStateUtil.copyReferenceDescriptions and BuilderStateUtil.create. Compare the original ClassCastException with the later IllegalStateException from XtextBuilder; done means the build no longer reports misleading exception handling for this failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100