[MDSAL-735] StackOverflowError with bgp-linkstate Created: 12/Mar/22  Updated: 19/Mar/22  Resolved: 19/Mar/22

Status: Resolved
Project: mdsal
Component/s: Binding runtime
Affects Version/s: None
Fix Version/s: 9.0.0

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

Attachments: Text File augment-loop.txt    
Issue Links:
Relates
relates to MDSAL-731 Failure to start Binding/DOM codec Resolved

 Description   

Attempting to create a runtime context in BGPCEP's bgp-linkstate incurs the following error:

com.google.common.util.concurrent.ExecutionError: java.lang.StackOverflowError
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2053)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989)
        at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950)
        at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4956)
        at org.opendaylight.mdsal.binding.dom.adapter.test.AbstractSchemaAwareTest.getRuntimeContext(AbstractSchemaAwareTest.java:41)
        at org.opendaylight.mdsal.binding.dom.adapter.test.AbstractSchemaAwareTest.setup(AbstractSchemaAwareTest.java:33)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        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.RunBefores.invokeMethod(RunBefores.java:33)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
        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.DefaultLauncher.execute(DefaultLauncher.java:220)
        at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:188)
        at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:202)
        at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:181)
        at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
        at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:150)
        at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:124)
        at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
        at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
        at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
        at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)

Caused by: java.lang.StackOverflowError
        at java.base/java.util.Spliterator.getExactSizeIfKnown(Spliterator.java:408)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:483)
        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.mdsal.binding.generator.impl.rt.AbstractCompositeRuntimeType.<init>(AbstractCompositeRuntimeType.java:55)
        at org.opendaylight.mdsal.binding.generator.impl.rt.DefaultContainerRuntimeType.<init>(DefaultContainerRuntimeType.java:23)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.ContainerGenerator.createRuntimeType(ContainerGenerator.java:57)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.ContainerGenerator.createRuntimeType(ContainerGenerator.java:23)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.rebaseRuntimeType(AbstractCompositeGenerator.java:184)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.rebaseRuntimeType(AbstractCompositeGenerator.java:117)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.lambda$runtimeTypeOf$0(AbstractExplicitGenerator.java:95)
        at java.base/java.util.Optional.map(Optional.java:265)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.runtimeTypeOf(AbstractExplicitGenerator.java:95)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.indexChildren(AbstractCompositeGenerator.java:200)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.rebaseRuntimeType(AbstractCompositeGenerator.java:184)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.rebaseRuntimeType(AbstractCompositeGenerator.java:117)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.lambda$runtimeTypeOf$0(AbstractExplicitGenerator.java:95)
        at java.base/java.util.Optional.map(Optional.java:265)


 Comments   
Comment by Robert Varga [ 12/Mar/22 ]

After adding some debugs, this seems to be related to choice/case statements, as we loop on DeclaredCaseEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)srlg-case}.

Comment by Robert Varga [ 12/Mar/22 ]

This is what the create/rebase loop looks like:

[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.LspFlag
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Source EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)seg-flag} hash 809004693
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Target EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)seg-flag} hash 115576469
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Create EmptyContainerEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)dynamic-control-protection} hash 1447666664
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Create DeclaredCaseEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)dynamic-control-protection-case} hash 1287915666
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Create EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)mandatory} hash 53512330
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Create EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)mandatory} hash 1659760926
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Class java.lang.Boolean
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Source EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)mandatory} hash 53512330
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Target EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)mandatory} hash 1659760926
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Create EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)attribute} hash 2032162888
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Create EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)attribute} hash 357322598
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.ExcludeRouteSubobjects.Attribute
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Source EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)attribute} hash 2032162888
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Target EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)attribute} hash 357322598
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Class java.lang.Boolean
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Source EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)mandatory} hash 53512330
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Target EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)mandatory} hash 1659760926
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.ExcludeRouteSubobjects.Attribute
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Source EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)attribute} hash 2032162888
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Target EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)attribute} hash 357322598
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Class java.lang.Boolean
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Source EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)mandatory} hash 53512330
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Target EmptyLeafEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)mandatory} hash 1659760926
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.ExcludeRouteSubobjects.Attribute


Comment by Robert Varga [ 12/Mar/22 ]

The definition of that involves uses/augment of a choice:

 

    grouping exclude-route-subobjects {
        description "Subobject of an Exclude Route Object";
        reference "https://tools.ietf.org/html/rfc4874#section-3.1";

        leaf mandatory {
            type boolean;
            default false;
        }

        leaf attribute {
            type enumeration {
                enum interface {
                    value 0;
                }
                enum node {
                    value 1;
                }

                enum srlg {
                    value 2;
                }
            }
            mandatory true;
        }

        uses basic-explicit-route-subobjects;
    }

    grouping explicit-route-subobjects {
        description "Subobject of an Explicit Route Object";
        reference "https://tools.ietf.org/html/rfc4874#section-4.1";
        uses basic-explicit-route-subobjects {
            augment "subobject-type" {
                case exrs-case {
                    container exrs {
                        list exrs {
                            uses exclude-route-subobjects;
                        }
                    }
                }
                case path-key-case {
                    container path-key {
                        uses path-key-subobject;
                    }
                }
            }
        }
    }

I wonder if this has something to do with MDSAL-731 or choice/case and augment references. I can kind of squint and see how uses/augment (which points to augment) could create a loop. Attached evidence shows that just before we start looping we were doing a derived -> original case transition:

[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Create EmptyContainerEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)unnumbered} hash 1677025976
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Create DeclaredCaseEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)unnumbered-case} hash 1192537613
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Create AugmentEffectiveStatementImpl{argument=Descendant{qnames=[(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)subobject-type]}} hash 554812364
[main] INFO org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator - Create AugmentEffectiveStatementImpl{argument=Descendant{qnames=[(urn:opendaylight:params:xml:ns:yang:rsvp?revision=2015-08-20)subobject-type]}} hash 583153245

augment-loop.txt

 

Comment by Robert Varga [ 13/Mar/22 ]

Thinking about this a bit more, the RuntimeType creation logic a wee bit off in lookup paths – we are essentially duplicating findSchemaTreeGenerator(), but for a good reason.

Let's use this issue to refactor how we approach the task of creating a RuntimeType, following down the statement tree, but without requiring our own RuntimeType before we rebase it.

Comment by Robert Varga [ 17/Mar/22 ]

So we do have some amount of progress here, with reworked lookups instead of getting StackOverflowError we get a more diagnosable:

 

Caused by: com.google.common.base.VerifyException: Failed to find DeclaredCaseEffectiveStatement{argument=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2018-03-29)ipv6-sid-tlv} as (urn:opendaylight:params:xml:ns:yang:bgp-message?revision=2020-01-20)ipv6-sid-tlv in org.opendaylight.mdsal.binding.generator.i
mpl.reactor.ChoiceGenerator$ChoiceBuilder@3b07b706
        at com.google.common.base.Verify.verifyNotNull(Verify.java:503)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:118)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.ChoiceGenerator$ChoiceBuilder.fillTypes(ChoiceGenerator.java:43)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:193)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.createInternalRuntimeType(AbstractExplicitGenerator.java:146)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:122)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:193)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.createInternalRuntimeType(AbstractExplicitGenerator.java:146)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:122)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:193)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.createInternalRuntimeType(AbstractExplicitGenerator.java:146)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:122)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:193)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.createInternalRuntimeType(AbstractExplicitGenerator.java:146)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:122)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:112)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:112)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:193)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.createInternalRuntimeType(AbstractExplicitGenerator.java:146)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:122)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:193)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.createInternalRuntimeType(AbstractExplicitGenerator.java:146)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:122)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:112)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:193)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.createInternalRuntimeType(AbstractExplicitGenerator.java:146)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:122)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractAugmentGenerator.augmentedCasesIn(AbstractAugmentGenerator.java:165)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.ChoiceGenerator$ChoiceBuilder.fillAugmentedCases(ChoiceGenerator.java:67)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.ChoiceGenerator$ChoiceBuilder.fillTypes(ChoiceGenerator.java:42)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:193)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.createInternalRuntimeType(AbstractExplicitGenerator.java:146)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:122)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:193)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.createInternalRuntimeType(AbstractExplicitGenerator.java:146)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:122)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:112)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:193)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createInternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.createInternalRuntimeType(AbstractExplicitGenerator.java:146)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.findChildRuntimeType(CompositeRuntimeTypeBuilder.java:122)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.CompositeRuntimeTypeBuilder.fillTypes(CompositeRuntimeTypeBuilder.java:89)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createExternalRuntimeType(AbstractCompositeGenerator.java:183)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractCompositeGenerator.createExternalRuntimeType(AbstractCompositeGenerator.java:115)
        at org.opendaylight.mdsal.binding.generator.impl.reactor.AbstractExplicitGenerator.runtimeType(AbstractExplicitGenerator.java:91)
        at org.opendaylight.mdsal.binding.generator.impl.BindingRuntimeTypesFactory.indexModules(BindingRuntimeTypesFactory.java:82)
        at org.opendaylight.mdsal.binding.generator.impl.BindingRuntimeTypesFactory.createTypes(BindingRuntimeTypesFactory.java:70)
        at org.opendaylight.mdsal.binding.generator.impl.DefaultBindingRuntimeGenerator.generateTypeMapping(DefaultBindingRuntimeGenerator.java:30)
        at org.opendaylight.mdsal.binding.runtime.spi.BindingRuntimeHelpers.createRuntimeContext(BindingRuntimeHelpers.java:89)
        at org.opendaylight.mdsal.binding.dom.adapter.test.AbstractSchemaAwareTest$1.load(AbstractSchemaAwareTest.java:27)
        at org.opendaylight.mdsal.binding.dom.adapter.test.AbstractSchemaAwareTest$1.load(AbstractSchemaAwareTest.java:24)

 

 

Generated at Wed Feb 07 20:10:47 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.