Community
Participate
Working Groups
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)
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