[YANGTOOLS-1434] Building SchemaContext fails when augmenting submodel data Created: 16/May/22 Updated: 08/Aug/22 Resolved: 18/May/22 |
|
| Status: | Resolved |
| Project: | yangtools |
| Component/s: | parser |
| Affects Version/s: | 8.0.0, 8.0.3, 8.0.5 |
| Fix Version/s: | 9.0.0, 8.0.6 |
| Type: | Bug | Priority: | Medium |
| Reporter: | Peter Suna | Assignee: | Robert Varga |
| Resolution: | Done | Votes: | 0 |
| Labels: | regression | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||
| Description |
|
The problem arises if the submodel augments the list with unique leafs to another submodel node.
submodule test-bug {
yang-version 1.1;
belongs-to main-module {
prefix mm;
}
augment "/mm:services" {
container plan-notifications {
list subscription {
key name;
unique "service-type component-type";
leaf name {
type string;
}
leaf service-type {
type string;
}
leaf component-type {
type string;
}
}
}
}
}
Inside attachments, I have provided models that fail to create EffectiveModelContext and throw exception:
Unexpected error processing source RevisionSourceIdentifier [name=submodule]. Please file an issue with this model attached.
java.lang.IllegalStateException: Action was not defined yet.
at com.google.common.base.Preconditions.checkState(Preconditions.java:502)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl.tryApply(ModifierImpl.java:143)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl$PhaseFinished.phaseFinished(ModifierImpl.java:401)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.addPhaseCompletedListener(StatementContextBase.java:699)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl.requiresCtxImpl(ModifierImpl.java:119)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl.requiresCtx(ModifierImpl.java:165)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl.requiresCtx(ModifierImpl.java:41)
at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta.UniqueStatementSupport.onStatementAdded(UniqueStatementSupport.java:91)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementDefinitionContext.onStatementAdded(StatementDefinitionContext.java:67)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.replicaAsChildOf(ReactorStmtCtx.java:370)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.copyAsChildOfImpl(StatementContextBase.java:755)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.copyAsChildOf(StatementContextBase.java:743)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.copySubstatement(InferredStatementContext.java:586)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.copySubstatement(InferredStatementContext.java:576)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.initializeSubstatements(InferredStatementContext.java:541)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.ensureEffectiveSubstatements(InferredStatementContext.java:478)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.streamEffective(InferredStatementContext.java:503)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.createInferredEffective(InferredStatementContext.java:222)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.tryToReuseSubstatements(InferredStatementContext.java:306)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.tryToReusePrototype(InferredStatementContext.java:239)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.createEffective(InferredStatementContext.java:218)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.createEffective(StatementContextBase.java:439)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.loadEffective(ReactorStmtCtx.java:389)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.buildEffective(ReactorStmtCtx.java:385)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.buildEffectiveSubstatements(AbstractStatementSupport.java:139)
at org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.createEffective(AbstractStatementSupport.java:83)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:124)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createInferredEffective(AbstractResumedStatement.java:131)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.createInferredEffective(InferredStatementContext.java:229)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.createInferredEffective(InferredStatementContext.java:222)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.tryToReuseSubstatements(InferredStatementContext.java:306)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.tryToReusePrototype(InferredStatementContext.java:239)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.createEffective(InferredStatementContext.java:218)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.createEffective(StatementContextBase.java:439)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.loadEffective(ReactorStmtCtx.java:389)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.buildEffective(ReactorStmtCtx.java:385)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.buildEffectiveSubstatements(AbstractStatementSupport.java:139)
at org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.createEffective(AbstractStatementSupport.java:83)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:124)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:109)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.createEffective(StatementContextBase.java:439)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.loadEffective(ReactorStmtCtx.java:389)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.buildEffective(ReactorStmtCtx.java:385)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.buildEffectiveSubstatements(AbstractStatementSupport.java:139)
at org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.createEffective(AbstractStatementSupport.java:83)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:124)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:109)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.createEffective(StatementContextBase.java:439)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.loadEffective(ReactorStmtCtx.java:389)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.buildEffective(ReactorStmtCtx.java:385)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.transformEffective(BuildGlobalContext.java:261)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:211)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:224)
at org.opendaylight.yangtools.yang.parser.impl.DefaultYangParser.buildEffectiveModel(DefaultYangParser.java:96)
|
| Comments |
| Comment by Robert Varga [ 17/May/22 ] |
|
There seem to be multiple things going on. java.lang.AssertionError: Failed to assemble effective model of /bugs/YT1434 at org.opendaylight.yangtools.yang.parser.rfc7950/org.opendaylight.yangtools.yang.stmt.AbstractYangTest.assertEffectiveModelDir(AbstractYangTest.java:51) at org.opendaylight.yangtools.yang.parser.rfc7950/org.opendaylight.yangtools.yang.stmt.YT1434Test.testUniqueHook(YT1434Test.java:15) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at org.junit.runner.JUnitCore.run(JUnitCore.java:115) at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42) at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80) at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:95) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:91) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:60) at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:98) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210) 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.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.propagateException(BuildGlobalContext.java:237) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.transformEffective(BuildGlobalContext.java:267) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:212) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:224) at org.opendaylight.yangtools.yang.parser.rfc7950/org.opendaylight.yangtools.yang.stmt.TestUtils.loadModules(TestUtils.java:62) at org.opendaylight.yangtools.yang.parser.rfc7950/org.opendaylight.yangtools.yang.stmt.TestUtils.loadModules(TestUtils.java:55) at org.opendaylight.yangtools.yang.parser.rfc7950/org.opendaylight.yangtools.yang.stmt.AbstractYangTest.assertEffectiveModelDir(AbstractYangTest.java:48) ... 41 more Caused by: org.opendaylight.yangtools.yang.parser.spi.source.SourceException: Error in module 'submodule': cannot add '(main:module?revision=2020-02-04)service-type'. Node name collision: '(main:module?revision=2020-02-04)service-type' already declared at /home/nite/odl/yangtools/parser/yang-parser-rfc7950/target-ide/test-classes/bugs/YT1434/test-bug.yang:15:9 [at /home/nite/odl/yangtools/parser/yang-parser-rfc7950/target-ide/test-classes/bugs/YT1434/test-bug.yang:15:9] at org.opendaylight.yangtools.yang.parser.spi@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace.addTo(SchemaTreeNamespace.java:93) at org.opendaylight.yangtools.yang.parser.spi@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace.addTo(SchemaTreeNamespace.java:37) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.SimpleNamespaceContext.addTo(SimpleNamespaceContext.java:46) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.NamespaceStorageSupport.addToNamespace(NamespaceStorageSupport.java:85) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.addToNs(StatementContextBase.java:268) at org.opendaylight.yangtools.yang.parser.spi@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport.onStatementAdded(AbstractSchemaTreeStatementSupport.java:115) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementDefinitionContext.onStatementAdded(StatementDefinitionContext.java:67) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.childCopyOf(StatementContextBase.java:813) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.childCopyOf(StatementContextBase.java:783) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.copyAsChildOfImpl(StatementContextBase.java:748) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.copyAsChildOf(StatementContextBase.java:730) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.copySubstatement(InferredStatementContext.java:586) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.copySubstatement(InferredStatementContext.java:576) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.initializeSubstatements(InferredStatementContext.java:541) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.ensureEffectiveSubstatements(InferredStatementContext.java:478) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.streamEffective(InferredStatementContext.java:503) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.createInferredEffective(InferredStatementContext.java:222) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.tryToReuseSubstatements(InferredStatementContext.java:306) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.tryToReusePrototype(InferredStatementContext.java:239) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.createEffective(InferredStatementContext.java:218) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.createEffective(StatementContextBase.java:426) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.loadEffective(ReactorStmtCtx.java:389) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.buildEffective(ReactorStmtCtx.java:385) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) at org.opendaylight.yangtools.yang.parser.spi@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.buildEffectiveSubstatements(AbstractStatementSupport.java:139) at org.opendaylight.yangtools.yang.parser.spi@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.createEffective(AbstractStatementSupport.java:83) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:125) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createInferredEffective(AbstractResumedStatement.java:132) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.createInferredEffective(InferredStatementContext.java:229) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.createInferredEffective(InferredStatementContext.java:222) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.tryToReuseSubstatements(InferredStatementContext.java:306) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.tryToReusePrototype(InferredStatementContext.java:239) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.InferredStatementContext.createEffective(InferredStatementContext.java:218) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.createEffective(StatementContextBase.java:426) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.loadEffective(ReactorStmtCtx.java:389) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.buildEffective(ReactorStmtCtx.java:385) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) at org.opendaylight.yangtools.yang.parser.spi@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.buildEffectiveSubstatements(AbstractStatementSupport.java:139) at org.opendaylight.yangtools.yang.parser.spi@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.createEffective(AbstractStatementSupport.java:83) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:125) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:110) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.createEffective(StatementContextBase.java:426) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.loadEffective(ReactorStmtCtx.java:389) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.buildEffective(ReactorStmtCtx.java:385) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) at org.opendaylight.yangtools.yang.parser.spi@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.buildEffectiveSubstatements(AbstractStatementSupport.java:139) at org.opendaylight.yangtools.yang.parser.spi@9.0.0-SNAPSHOT/org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport.createEffective(AbstractStatementSupport.java:83) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:125) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.AbstractResumedStatement.createEffective(AbstractResumedStatement.java:110) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.createEffective(StatementContextBase.java:426) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.loadEffective(ReactorStmtCtx.java:389) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.ReactorStmtCtx.buildEffective(ReactorStmtCtx.java:385) at org.opendaylight.yangtools.yang.parser.reactor/org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.transformEffective(BuildGlobalContext.java:265) ... 46 more The root cause for that seems be that while we pick up a null Map for InferredStatementContext.initializeSubstatements(), while we instantiate a copy on Unique statement, we also force materialization of the corresponding leafs – and those are not reflected in the Map, so we end up copying the leaf statement again and trigger a conflic. |
| Comment by sidlingappa kondikoppa [ 22/Jun/22 ] |
|
Still I am seeing this issue in 8.0.6 version |
| Comment by Peter Suna [ 01/Aug/22 ] |
|
This issue is still occasionally present. For some reason, threads which calls these methods: [
public Collection<? extends StatementContextBase<?, ?, ?>> mutableDeclaredSubstatements() {
return verifyNotNull(substatements);
}
final void dropDeclaredSubstatements() {
substatements = null;
}
] This error can be reproduced if YT1434Test is run alone without other tests. Steps to reproduce: |