|
YANG example which can be used to reproduce the bug:
module root-module {
namespace rm-ns;
prefix rm;
import imp-module
{
prefix im;
}
import imp-module-2
{
prefix im2;
}
deviation "/im:my-leaf" {
deviate replace
{
type im2:new-type;
}
}
}
module imp-module {
namespace imp-ns;
prefix imp;
leaf my-leaf
{
type string;
}
}
module imp-module-2 {
namespace imp2-ns;
prefix imp2;
typedef new-type {
type string
{
length 10..15;
}
}
}
Parsing this model results in the following exception:
Caused by: org.opendaylight.yangtools.yang.parser.spi.source.SourceException: Cannot resolve QNameModule for 'im2:new-type' [at /home/igor/projects/yangtools/yang/yang-parser-impl/target/test-classes/deviation-resolution-test/temporary/root-module.yang:15:12]
at org.opendaylight.yangtools.yang.parser.spi.source.SourceException.throwIf(SourceException.java:97)
at org.opendaylight.yangtools.yang.parser.spi.source.SourceException.throwIfNull(SourceException.java:114)
at org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.qnameFromArgument(StmtContextUtils.java:509)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeStatementImpl$Definition.createEffective(TypeStatementImpl.java:167)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeStatementImpl$Definition.createEffective(TypeStatementImpl.java:88)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:457)
at com.google.common.collect.Iterators$5.transform(Iterators.java:757)
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at java.util.AbstractCollection.toArray(AbstractCollection.java:141)
at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:257)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase.<init>(EffectiveStatementBase.java:55)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.DeclaredEffectiveStatementBase.<init>(DeclaredEffectiveStatementBase.java:31)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.AbstractEffectiveDocumentedNode.<init>(AbstractEffectiveDocumentedNode.java:30)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.AbstractEffectiveSchemaNode.<init>(AbstractEffectiveSchemaNode.java:28)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.AbstractEffectiveDataSchemaNode.<init>(AbstractEffectiveDataSchemaNode.java:28)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.LeafEffectiveStatementImpl.<init>(LeafEffectiveStatementImpl.java:34)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.LeafStatementImpl$Definition.createEffective(LeafStatementImpl.java:81)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:457)
at com.google.common.collect.Iterators$5.transform(Iterators.java:757)
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
at java.util.AbstractCollection.toArray(AbstractCollection.java:141)
at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:257)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveStatementBase.<init>(EffectiveStatementBase.java:55)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.DeclaredEffectiveStatementBase.<init>(DeclaredEffectiveStatementBase.java:31)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.AbstractEffectiveDocumentedNode.<init>(AbstractEffectiveDocumentedNode.java:30)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.AbstractEffectiveModule.<init>(AbstractEffectiveModule.java:89)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ModuleEffectiveStatementImpl.<init>(ModuleEffectiveStatementImpl.java:23)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.ModuleStatementSupport.createEffective(ModuleStatementSupport.java:101)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:457)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.transformEffective(BuildGlobalContext.java:269)
... 34 more
|