[YANGTOOLS-1536] Leaf '(urn:ieee:std:1914.3:yang:ieee1914-dot3?revision=2020-03-31)orderInfoType' has default value 'SEQNUM' marked with an if-feature statement Created: 04/Sep/23 Updated: 11/Oct/23 Resolved: 11/Oct/23 |
|
| Status: | Resolved |
| Project: | yangtools |
| Component/s: | parser |
| Affects Version/s: | 8.0.10 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | High |
| Reporter: | mikael petterson | Assignee: | Unassigned |
| Resolution: | Won't Do | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
| Description |
|
Hi, We are using version 8.0.9. and parse this yang file: [^ieee1914-dot3-roe@2020-03-31.yang] This is the exception:
Caused by: org.opendaylight.yangtools.yang.model.parser.api.YangParserException: Failed to assemble sources at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.decodeReactorException(YangParserImpl.java:110) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.buildEffectiveModel(YangParserImpl.java:104) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.model.parser.api.YangParser.buildSchemaContext(YangParser.java:157) ~[yangbrowser.jar:?] at com.ericsson.commonlibrary.yang.model.YangModelImpl.parseSources(YangModelImpl.java:427) ~[yangbrowser.jar:?] at com.ericsson.commonlibrary.yang.model.YangModelImpl.createSchemaContext(YangModelImpl.java:411) ~[yangbrowser.jar:?] at com.ericsson.commonlibrary.yang.model.YangModelImpl.init(YangModelImpl.java:377) ~[yangbrowser.jar:?] ... 9 more Caused by: org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException: Some of EFFECTIVE_MODEL modifiers for statements were not resolved. at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.propagateException(BuildGlobalContext.java:256) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.transformEffective(BuildGlobalContext.java:272) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:231) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:232) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.buildEffectiveModel(YangParserImpl.java:102) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.model.parser.api.YangParser.buildSchemaContext(YangParser.java:157) ~[yangbrowser.jar:?] at com.ericsson.commonlibrary.yang.model.YangModelImpl.parseSources(YangModelImpl.java:427) ~[yangbrowser.jar:?] at com.ericsson.commonlibrary.yang.model.YangModelImpl.createSchemaContext(YangModelImpl.java:411) ~[yangbrowser.jar:?] at com.ericsson.commonlibrary.yang.model.YangModelImpl.init(YangModelImpl.java:377) ~[yangbrowser.jar:?] ... 9 more Caused by: org.opendaylight.yangtools.yang.parser.spi.source.SourceException: Leaf '(urn:ieee:std:1914.3:yang:ieee1914-dot3?revision=2020-03-31)orderInfoType' has default value 'SEQNUM' marked with an if-feature statement. [at /home/eaizhao/moshell_logfiles/logs_moshell/tempfiles/20230904-170850_17589/yangmom/10.170.113.124_830_eaizhao_yang/ieee1914-dot3-roe@2020-03-31.yang:638:4] at org.opendaylight.yangtools.yang.parser.spi.source.SourceException.throwIf(SourceException.java:101) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.LeafStatementSupport.createEffective(LeafStatementSupport.java:99) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.LeafStatementSupport.createEffective(LeafStatementSupport.java:34) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport.createEffective(BaseQNameStatementSupport.java:53) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.loadEffective(StatementContextBase.java:555) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:551) ~[yangbrowser.jar:?] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_262] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_262] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566) ~[?:1.8.0_262] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport.buildEffectiveSubstatements(BaseStatementSupport.java:93) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport.buildEffectiveSubstatements(BaseStatementSupport.java:98) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport.createEffective(BaseQNameStatementSupport.java:51) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.loadEffective(StatementContextBase.java:555) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:551) ~[yangbrowser.jar:?] at java.util.Optional.map(Optional.java:215) ~[?:1.8.0_262] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list.AbstractListStatementSupport.createEffective(AbstractListStatementSupport.java:81) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list.AbstractListStatementSupport.createEffective(AbstractListStatementSupport.java:46) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport.createEffective(BaseQNameStatementSupport.java:53) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.loadEffective(StatementContextBase.java:555) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:551) ~[yangbrowser.jar:?] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_262] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_262] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566) ~[?:1.8.0_262] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport.buildEffectiveSubstatements(BaseStatementSupport.java:93) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport.buildEffectiveSubstatements(BaseStatementSupport.java:98) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport.createEffective(BaseQNameStatementSupport.java:51) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.loadEffective(StatementContextBase.java:555) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:551) ~[yangbrowser.jar:?] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_262] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_262] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566) ~[?:1.8.0_262] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport.buildEffectiveSubstatements(BaseStatementSupport.java:93) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport.buildEffectiveSubstatements(BaseStatementSupport.java:98) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport.createEffective(BaseQNameStatementSupport.java:51) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.loadEffective(StatementContextBase.java:555) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:551) ~[yangbrowser.jar:?] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_262] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1384) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_262] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566) ~[?:1.8.0_262] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport.buildEffectiveSubstatements(BaseStatementSupport.java:93) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport.buildEffectiveSubstatements(BaseStatementSupport.java:98) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport.createEffective(BaseQNameStatementSupport.java:51) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.loadEffective(StatementContextBase.java:555) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:551) ~[yangbrowser.jar:?] at com.google.common.collect.Iterators$6.transform(Iterators.java:829) ~[yangbrowser.jar:?] at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:52) ~[yangbrowser.jar:?] at java.util.AbstractCollection.toArray(AbstractCollection.java:141) ~[?:1.8.0_262] at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:265) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementBase.<init>(EffectiveStatementBase.java:45) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.DeclaredEffectiveStatementBase.<init>(DeclaredEffectiveStatementBase.java:30) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveDocumentedNodeWithoutStatus.<init>(AbstractEffectiveDocumentedNodeWithoutStatus.java:28) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveDocumentedNode.<init>(AbstractEffectiveDocumentedNode.java:35) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractSchemaEffectiveDocumentedNode.<init>(AbstractSchemaEffectiveDocumentedNode.java:50) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveModule.<init>(AbstractEffectiveModule.java:85) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.ModuleEffectiveStatementImpl.<init>(ModuleEffectiveStatementImpl.java:58) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.ModuleEffectiveStatementImpl.<init>(ModuleEffectiveStatementImpl.java:97) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.AbstractModuleStatementSupport.createEffective(AbstractModuleStatementSupport.java:64) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.AbstractModuleStatementSupport.createEffective(AbstractModuleStatementSupport.java:45) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.loadEffective(StatementContextBase.java:555) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:551) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveModule.lambda$appendPrefixes$1(AbstractEffectiveModule.java:303) ~[yangbrowser.jar:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_262] at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_262] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_262] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_262] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveModule.appendPrefixes(AbstractEffectiveModule.java:299) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.ModuleEffectiveStatementImpl.<init>(ModuleEffectiveStatementImpl.java:66) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.ModuleEffectiveStatementImpl.<init>(ModuleEffectiveStatementImpl.java:97) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.AbstractModuleStatementSupport.createEffective(AbstractModuleStatementSupport.java:64) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.AbstractModuleStatementSupport.createEffective(AbstractModuleStatementSupport.java:45) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.loadEffective(StatementContextBase.java:555) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:551) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveModule.lambda$appendPrefixes$1(AbstractEffectiveModule.java:303) ~[yangbrowser.jar:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_262] at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_262] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_262] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_262] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_262] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_262] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveModule.appendPrefixes(AbstractEffectiveModule.java:299) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.ModuleEffectiveStatementImpl.<init>(ModuleEffectiveStatementImpl.java:66) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.ModuleEffectiveStatementImpl.<init>(ModuleEffectiveStatementImpl.java:97) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.AbstractModuleStatementSupport.createEffective(AbstractModuleStatementSupport.java:64) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.AbstractModuleStatementSupport.createEffective(AbstractModuleStatementSupport.java:45) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.loadEffective(StatementContextBase.java:555) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.buildEffective(StatementContextBase.java:551) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.transformEffective(BuildGlobalContext.java:270) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:231) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:232) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.buildEffectiveModel(YangParserImpl.java:102) ~[yangbrowser.jar:?] at org.opendaylight.yangtools.yang.model.parser.api.YangParser.buildSchemaContext(YangParser.java:157) ~[yangbrowser.jar:?] at com.ericsson.commonlibrary.yang.model.YangModelImpl.parseSources(YangModelImpl.java:427) ~[yangbrowser.jar:?] at com.ericsson.commonlibrary.yang.model.YangModelImpl.createSchemaContext(YangModelImpl.java:411) ~[yangbrowser.jar:?] at com.ericsson.commonlibrary.yang.model.YangModelImpl.init(YangModelImpl.java:377) ~[yangbrowser.jar:?] ... 9 more Any hints? Has this been fixed in a later version. I can see on master that this class: org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf.LeafStatementSupport does not exist anymore but there is a br, //mike
|
| Comments |
| Comment by mikael petterson [ 10/Oct/23 ] |
|
Anyone working on these? |
| Comment by Robert Varga [ 11/Oct/23 ] |
|
This is not a bug. The model specifically violates https://www.rfc-editor.org/rfc/rfc7950#section-7.6.4 : The definition of the default value MUST NOT be marked with an
"if-feature" statement. For example, the following is illegal:
leaf color {
type enumeration {
enum blue { if-feature blue; }
...
}
default blue; // illegal - enum value is conditional
}
|