[YANGTOOLS-1200] Unable to validate new line separated key-arg nodes Created: 08/Dec/20 Updated: 09/Dec/20 Resolved: 09/Dec/20 |
|
| Status: | Resolved |
| Project: | yangtools |
| Component/s: | tools |
| Affects Version/s: | 6.0.0, 4.0.14, 5.0.7 |
| Fix Version/s: | 7.0.0, 5.0.8, 6.0.2, 4.0.15 |
| Type: | Bug | Priority: | High |
| Reporter: | Martin Balaz | Assignee: | Robert Varga |
| Resolution: | Done | Votes: | 0 |
| Labels: | pt | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Description |
|
Problem with parsing list's key statement argument where nodes are separted by new line character, like in this example [1]: list gen-test-session-allocation { key "entity-name
Error message: Caused by: org.opendaylight.yangtools.yang.parser.spi.source.SourceException: Invalid identifier 'entity-name test-instance-name untagged pcp color' [at vendor/ciena/ciena-sat.yang:1854:6]
By YANG ABNF Grammar [2]: key-arg = node-identifier *(sep node-identifier)
By RFC6020 list's key Statement documentation [3]: The "key" statement, which MUST be present if the list represents
[1] - https://github.com/YangModels/yang/blob/master/vendor/ciena/ciena-sat.yang#L1854 [2] - https://tools.ietf.org/html/rfc6020#section-12 [3] - https://tools.ietf.org/html/rfc6020#section-7.8.2 |
| Comments |
| Comment by Martin Balaz [ 08/Dec/20 ] |
22:24:06.565 [main] ERROR org.opendaylight.yangtools.yang.validator.Main - Failed to create SchemaContext.22:24:06.565 [main] ERROR org.opendaylight.yangtools.yang.validator.Main - Failed to create SchemaContext.org.opendaylight.yangtools.yang.model.parser.api.YangParserException: Failed to assemble sources at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.decodeReactorException(YangParserImpl.java:110) at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.buildEffectiveModel(YangParserImpl.java:104) at org.opendaylight.yangtools.yang.validator.SystemTestUtils.parseYangSources(SystemTestUtils.java:106) at org.opendaylight.yangtools.yang.validator.SystemTestUtils.parseYangSources(SystemTestUtils.java:87) at org.opendaylight.yangtools.yang.validator.Main.runSystemTest(Main.java:177) at org.opendaylight.yangtools.yang.validator.Main.main(Main.java:136)Caused by: org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException: Some of STATEMENT_DEFINITION modifiers for statements were not resolved. at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.propagateException(BuildGlobalContext.java:259) at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.loadPhaseStatementsFor(BuildGlobalContext.java:325) at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.loadPhaseStatements(BuildGlobalContext.java:315) at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.executePhases(BuildGlobalContext.java:221) at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:233) at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:232) at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.buildEffectiveModel(YangParserImpl.java:102) ... 4 common frames omittedCaused by: org.opendaylight.yangtools.yang.parser.spi.source.SourceException: Invalid identifier 'entity-nametest-instance-nameuntaggedpcpcolor' [at vendor/ciena/ciena-sat.yang:1854:6] at org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.internedQName(StmtContextUtils.java:569) at org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.internedQName(StmtContextUtils.java:560) at org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.parseNodeIdentifier(StmtContextUtils.java:546) at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.key.KeyStatementSupport.parseArgumentValue(KeyStatementSupport.java:52) at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.key.KeyStatementSupport.parseArgumentValue(KeyStatementSupport.java:31) at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementDefinitionContext.parseArgumentValue(StatementDefinitionContext.java:47) at org.opendaylight.yangtools.yang.parser.stmt.reactor.SubstatementContext.<init>(SubstatementContext.java:37) at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createSubstatement(AbstractResumedStatement.java:149) at org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.createDeclaredChild(SourceSpecificContext.java:142) at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextWriter.startStatement(StatementContextWriter.java:70) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processNewStatement(StatementContextVisitor.java:110) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processStatement(StatementContextVisitor.java:96) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.doProcessStatement(StatementContextVisitor.java:119) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processNewStatement(StatementContextVisitor.java:111) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processStatement(StatementContextVisitor.java:96) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.doProcessStatement(StatementContextVisitor.java:119) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processNewStatement(StatementContextVisitor.java:111) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processStatement(StatementContextVisitor.java:96) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.doProcessStatement(StatementContextVisitor.java:119) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processNewStatement(StatementContextVisitor.java:111) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processStatement(StatementContextVisitor.java:96) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.visit(StatementContextVisitor.java:46) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource.writeLinkageAndStatementDefinitions(YangStatementStreamSource.java:110) at org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.loadStatements(SourceSpecificContext.java:365) at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.loadPhaseStatementsFor(BuildGlobalContext.java:323) ... 9 common frames omittedCaused by: java.lang.IllegalArgumentException: String 'entity-nametest-instance-nameuntaggedpcpcolor' is not a valid identifier at com.google.common.base.Preconditions.checkArgument(Preconditions.java:217) at org.opendaylight.yangtools.yang.common.AbstractQName.checkLocalName(AbstractQName.java:79) at org.opendaylight.yangtools.yang.common.QName.create(QName.java:117) at org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.internedQName(StmtContextUtils.java:567) ... 33 common frames omitted |