[MDSAL-324] Binding V1 fails to generate for nested unions with numbered leaves Created: 20/Mar/18  Updated: 13/Jun/18  Resolved: 13/Jun/18

Status: Resolved
Project: mdsal
Component/s: Binding codegen
Affects Version/s: None
Fix Version/s: Fluorine

Type: Bug Priority: Medium
Reporter: Robert Varga Assignee: Robert Varga
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

As a follow-up to MDSAL-320, the following snippet fails to process the following snippet:

    container foo {
        leaf bar {
            type union {
                type enumeration {
                    enum "foo";
                }
                type string {
                    length 2;
                }
                type union {
                    type enumeration {
                        enum bar;
                    }
                    type string {
                        length 1;
                    }
                }
            }
        }

        leaf bar1 {
            type union {
                type enumeration {
                    enum "foo";
                }
                type string {
                    length 2;
                }
                type union {
                    type enumeration {
                        enum bar;
                    }
                    type string {
                        length 1;
                    }
                }
            }
        }
    }

with:

java.lang.IllegalArgumentException: This generated type already contains equal enclosing transfer object.
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:135)
    at org.opendaylight.mdsal.binding.model.util.generated.type.builder.AbstractGeneratedTypeBuilder.addEnclosingTransferObject(AbstractGeneratedTypeBuilder.java:107)
    at org.opendaylight.mdsal.binding.model.util.generated.type.builder.CodegenGeneratedTypeBuilder.addEnclosingTransferObject(CodegenGeneratedTypeBuilder.java:1)
    at java.util.ArrayList.forEach(ArrayList.java:1257)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addTOToTypeBuilder(AbstractTypeGenerator.java:1886)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.resolveLeafSchemaNodeAsMethod(AbstractTypeGenerator.java:1284)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addSchemaNodeToBuilderAsMethod(AbstractTypeGenerator.java:1004)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.resolveDataSchemaNodes(AbstractTypeGenerator.java:945)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.containerToGenType(AbstractTypeGenerator.java:276)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.addSchemaNodeToBuilderAsMethod(AbstractTypeGenerator.java:1008)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.resolveDataSchemaNodes(AbstractTypeGenerator.java:945)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.moduleToGenTypes(AbstractTypeGenerator.java:214)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.<init>(AbstractTypeGenerator.java:175)
    at org.opendaylight.mdsal.binding.generator.impl.CodegenTypeGenerator.<init>(CodegenTypeGenerator.java:30)
    at org.opendaylight.mdsal.binding.generator.impl.BindingGeneratorImpl.generateTypes(BindingGeneratorImpl.java:55)
    at org.opendaylight.mdsal.binding.generator.api.BindingGenerator.generateTypes(BindingGenerator.java:30)
    at 


 Comments   
Comment by Robert Varga [ 20/Mar/18 ]

https://git.opendaylight.org/gerrit/69495

 

Comment by Robert Varga [ 02/May/18 ]

The fix was reverted, pending re-implementation

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