| Summary: | [xtend2] StackOverflowError in XtextReconcilerJob | ||
|---|---|---|---|
| Product: | [Modeling] TMF | Reporter: | Knut Wannheden <knut.wannheden> |
| Component: | Xtext | Assignee: | Project Inbox <tmf.xtext-inbox> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | major | ||
| Priority: | P3 | CC: | sebastian.zarnekow |
| Version: | 2.1.0 | Flags: | sebastian.zarnekow:
indigo+
|
| Target Milestone: | SR2 | ||
| Hardware: | PC | ||
| OS: | Mac OS X - Carbon (unsup.) | ||
| Whiteboard: | |||
Anyone else experienced this? I reported it as major because of the error dialog. Also the additional dialog with the question to exit the workbench isn't very nice.
It is also reproducible without an extension:
Foo.xtend:
class Foo {}
Bar.xtend:
class Bar {
def bar() {
new Foo()
}
}
(In reply to comment #1) > It is also reproducible without an extension: > > Foo.xtend: > class Foo {} > > Bar.xtend: > class Bar { > def bar() { > new Foo() > } > } This example does not lead to a stack overflow. Will try with the other scenario now. (In reply to comment #2) > Will try with the other scenario now. Success ... Pushed to master. Closing all bugs that were set to RESOLVED before Neon.0 Closing all bugs that were set to RESOLVED before Neon.0 |
The following setup gives me a StackOverflowError as a popup dialog. SomeClass.xtend: class SomeClass { } SomeExtensions.xtend: class SomeExtensions { def void addFoo(SomeClass c, String v) { } } Test.xtend: class Test { extension SomeExtensions def foo() { new SomeClass() } } The error occurs when editing Test.xtend. java.lang.StackOverflowError at org.eclipse.xtext.util.Pair.equals(Pair.java:47) at org.eclipse.xtext.util.Triple.equals(Triple.java:39) at java.util.concurrent.ConcurrentHashMap$Segment.get(ConcurrentHashMap.java:338) at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:769) at org.eclipse.xtext.util.OnChangeEvictingCache$CacheAdapter.get(OnChangeEvictingCache.java:239) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$1.get(AbstractTypeProvider.java:148) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$CyclicHandlingSupport.getType(AbstractTypeProvider.java:614) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.doGetType(AbstractTypeProvider.java:340) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.getTypeForIdentifiable(AbstractTypeProvider.java:455) at org.eclipse.xtext.xbase.typing.XbaseTypeProvider._type(XbaseTypeProvider.java:801) at org.eclipse.xtext.xbase.typing.XbaseTypeProvider.typeDispatcherInvoke(XbaseTypeProvider.java:164) at org.eclipse.xtext.xbase.annotations.typing.XbaseWithAnnotationsTypeProvider.typeDispatcherInvoke(XbaseWithAnnotationsTypeProvider.java:97) at org.eclipse.xtext.xtend2.typing.Xtend2TypeProvider.typeDispatcherInvoke(Xtend2TypeProvider.java:97) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$2.doComputation(AbstractTypeProvider.java:284) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$2.doComputation(AbstractTypeProvider.java:1) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$CyclicHandlingSupport$3.get(AbstractTypeProvider.java:617) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$CyclicHandlingSupport$3.get(AbstractTypeProvider.java:1) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$1.get(AbstractTypeProvider.java:152) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$CyclicHandlingSupport.getType(AbstractTypeProvider.java:614) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.doGetType(AbstractTypeProvider.java:340) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.getType(AbstractTypeProvider.java:356) at org.eclipse.xtext.xbase.typing.XbaseTypeProvider._type(XbaseTypeProvider.java:789) at org.eclipse.xtext.xbase.typing.XbaseTypeProvider.typeDispatcherInvoke(XbaseTypeProvider.java:156) at org.eclipse.xtext.xbase.annotations.typing.XbaseWithAnnotationsTypeProvider.typeDispatcherInvoke(XbaseWithAnnotationsTypeProvider.java:97) at org.eclipse.xtext.xtend2.typing.Xtend2TypeProvider.typeDispatcherInvoke(Xtend2TypeProvider.java:97) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$2.doComputation(AbstractTypeProvider.java:284) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$2.doComputation(AbstractTypeProvider.java:1) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$CyclicHandlingSupport$3.get(AbstractTypeProvider.java:617) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$CyclicHandlingSupport$3.get(AbstractTypeProvider.java:1) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$1.get(AbstractTypeProvider.java:152) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider$CyclicHandlingSupport.getType(AbstractTypeProvider.java:614) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.doGetType(AbstractTypeProvider.java:340) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.getType(AbstractTypeProvider.java:356) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.getType(AbstractTypeProvider.java:348) at org.eclipse.xtext.xbase.typing.AbstractTypeProvider.getCommonReturnType(AbstractTypeProvider.java:487) at org.eclipse.xtext.xtend2.resource.Xtend2Resource.computeReturnType(Xtend2Resource.java:193) at org.eclipse.xtext.xtend2.resource.Xtend2Resource.inferReturnType(Xtend2Resource.java:137) at org.eclipse.xtext.xtend2.resource.Xtend2Resource.getEObject(Xtend2Resource.java:98) at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:219) at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:202) at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:224) at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:224) at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:224) at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:224) at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:224) at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:224)