According to RFC 7950 Section 7.12, A grouping MUST NOT reference itself.
But in current implementation, if a module has such kind of grouping, it will cause Stackoverflow.
module yt6 {
namespace "urn:ietf:params:xml:ns:yang:yt6";
prefix "yt6";
grouping AA {
leaf a {
type string;
}
list b {
uses AA;
}
}
}
Caused by: java.lang.StackOverflowError
at org.eclipse.xtext.linking.lazy.LazyURIEncoder.getIndex(LazyURIEncoder.java:157)
at org.eclipse.xtext.linking.lazy.LazyURIEncoder.getLazyProxyInformation(LazyURIEncoder.java:146)
at org.eclipse.xtext.linking.lazy.LazyURIEncoder.decode(LazyURIEncoder.java:127)
at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:235)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:223)
at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:199)
at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:259)
at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1477)
at io.typefox.yang.yang.impl.GroupingRefImpl.getNode(GroupingRefImpl.java:74)
at io.typefox.yang.scoping.ScopeContextProvider._inlineGrouping(ScopeContextProvider.java:482)
at io.typefox.yang.scoping.ScopeContextProvider.inlineGrouping(ScopeContextProvider.java:1035)
at io.typefox.yang.scoping.ScopeContextProvider._inlineGrouping(ScopeContextProvider.java:484)
at io.typefox.yang.scoping.ScopeContextProvider.inlineGrouping(ScopeContextProvider.java:1035)
at io.typefox.yang.scoping.ScopeContextProvider._inlineGrouping(ScopeContextProvider.java:497)
at io.typefox.yang.scoping.ScopeContextProvider.inlineGrouping(ScopeContextProvider.java:1038)
This fatal error will totally interrupt YangLanguageServer startup.
According to RFC 7950 Section 7.12, A grouping MUST NOT reference itself. But in current implementation, if a module has such kind of grouping, it will cause Stackoverflow.
Caused by: java.lang.StackOverflowError at org.eclipse.xtext.linking.lazy.LazyURIEncoder.getIndex(LazyURIEncoder.java:157) at org.eclipse.xtext.linking.lazy.LazyURIEncoder.getLazyProxyInformation(LazyURIEncoder.java:146) at org.eclipse.xtext.linking.lazy.LazyURIEncoder.decode(LazyURIEncoder.java:127) at org.eclipse.xtext.linking.lazy.LazyLinkingResource.getEObject(LazyLinkingResource.java:235) at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:223) at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:199) at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:259) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1477) at io.typefox.yang.yang.impl.GroupingRefImpl.getNode(GroupingRefImpl.java:74) at io.typefox.yang.scoping.ScopeContextProvider._inlineGrouping(ScopeContextProvider.java:482) at io.typefox.yang.scoping.ScopeContextProvider.inlineGrouping(ScopeContextProvider.java:1035) at io.typefox.yang.scoping.ScopeContextProvider._inlineGrouping(ScopeContextProvider.java:484) at io.typefox.yang.scoping.ScopeContextProvider.inlineGrouping(ScopeContextProvider.java:1035) at io.typefox.yang.scoping.ScopeContextProvider._inlineGrouping(ScopeContextProvider.java:497) at io.typefox.yang.scoping.ScopeContextProvider.inlineGrouping(ScopeContextProvider.java:1038)
This fatal error will totally interrupt YangLanguageServer startup.