[MDSAL-516] Binding codegen cannot correctly process imported grouping actions Created: 27/Feb/20  Updated: 27/Feb/20  Resolved: 27/Feb/20

Status: Resolved
Project: mdsal
Component/s: Binding codegen
Affects Version/s: 4.0.11, 5.0.9
Fix Version/s: 6.0.0, 5.0.10, 4.0.12

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   

The following two models:

module bar {
  yang-version 1.1;
  namespace "bar";
  prefix bar;

  grouping bar-grp {
    action something;
  }
}

module foo {
  yang-version 1.1;
  namespace "foo";
  prefix foo;

  import bar {
    prefix bar;
  }

  grouping foo-grp {
    uses bar:bar-grp;
  }

  container foo {
    uses foo-grp;
  }
}

result in AbstractTypeGenerator.actionsToGenType() failing:

[ERROR] yang-to-sources: Unable to generate sources with org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl generator
java.util.NoSuchElementException: No value present
    at java.util.Optional.get (Optional.java:148)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.actionsToGenType (AbstractTypeGenerator.java:451)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.groupingsToGenTypes (AbstractTypeGenerator.java:759)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.moduleToGenTypes (AbstractTypeGenerator.java:240)
    at org.opendaylight.mdsal.binding.generator.impl.AbstractTypeGenerator.<init> (AbstractTypeGenerator.java:205)
    at org.opendaylight.mdsal.binding.generator.impl.CodegenTypeGenerator.<init> (CodegenTypeGenerator.java:33)
    at org.opendaylight.mdsal.binding.generator.impl.DefaultBindingGenerator.generateFor (DefaultBindingGenerator.java:76)
    at org.opendaylight.mdsal.binding.generator.impl.DefaultBindingGenerator.generateTypes (DefaultBindingGenerator.java:38)
    at org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl.generateSources (CodeGeneratorImpl.java:83)


 Comments   
Comment by Robert Varga [ 27/Feb/20 ]

There are actually two problems here:

  1. reverse lookup does not adjust QNameModule hence we end up looking for the wrong QName in the grouping, leading to the splat
  2. once that is cleared it seems end up trying to look up original input/output statements in the wrong module context

 

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