[YANGTOOLS-1283] SchemaInferenceStack is cannot handle leafs under choice/case Created: 03/May/21 Updated: 03/May/21 Resolved: 03/May/21 |
|
| Status: | Resolved |
| Project: | yangtools |
| Component/s: | model-util |
| Affects Version/s: | 7.0.0 |
| Fix Version/s: | 7.0.1 |
| Type: | Bug | Priority: | Highest |
| Reporter: | Robert Varga | Assignee: | Robert Varga |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Description |
|
Attempting to resolve a leafref path via SchemaInferenceStack results in: java.lang.IllegalStateException: Unexpected current DeclaredCaseEffectiveStatement[qname=(urn:ietf:params:xml:ns:yang:ietf-te-topology?revision=2020-08-06)bundle] at com.google.common.base.Preconditions.checkState (Preconditions.java:591) at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.exitToDataTree (SchemaInferenceStack.java:483) at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.resolveLocationPath (SchemaInferenceStack.java:573) at org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.resolvePathExpression (SchemaInferenceStack.java:523) at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.strictResolvePath (GeneratorReactor.java:306) at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.resolveLeafref (GeneratorReactor.java:297) at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractTypeObjectGenerator.bindTypeDefinition (AbstractTypeObjectGenerator.java:323) at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractTypeAwareGenerator.bindTypeDefinition (AbstractTypeAwareGenerator.java:53) at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.bindTypeDefinition (GeneratorReactor.java:399) at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.bindTypeDefinition (GeneratorReactor.java:401) at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.bindTypeDefinition (GeneratorReactor.java:401) at org.opendaylight.mdsal.binding.generator.impl.reactor.GeneratorReactor.execute (GeneratorReactor.java:155) at org.opendaylight.mdsal.binding.generator.impl.DefaultBindingGenerator.generateFor (DefaultBindingGenerator.java:78) at org.opendaylight.mdsal.binding.generator.impl.DefaultBindingGenerator.generateTypes (DefaultBindingGenerator.java:48) at org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl.generateSources (CodeGeneratorImpl.java:79) at org.opendaylight.yangtools.yang2sources.plugin.CodeGeneratorTask.execute (CodeGeneratorTask.java:49) at org.opendaylight.yangtools.yang2sources.plugin.CodeGeneratorTask.execute (CodeGeneratorTask.java:24) at org.opendaylight.yangtools.yang2sources.plugin.GeneratorTask.execute (GeneratorTask.java:36) at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSources (YangToSourcesProcessor.java:335) at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.conditionalExecute (YangToSourcesProcessor.java:214) at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesMojo.execute (YangToSourcesMojo.java:139) when faced with something like: module foo {
container foo {
choice foo {
case foo {
leaf foo {
type leafref {
path ../../bar;
}
}
}
}
}
leaf bar {
type string;
}
}
|