[YANGTOOLS-348] NPE during generation of java binding for case list-grouping-choice Created: 29/Oct/14  Updated: 10/Apr/22  Resolved: 20/Apr/15

Status: Resolved
Project: yangtools
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Martin Sunal Assignee: Peter Kajsa
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows
Platform: All


External issue ID: 2271

 Description   

I get NPE when I try to generate java binding from this yang example:

module test-list-grouping-choice {
namespace "urn:foo";
prefix "foo";

revision 2014-10-29 {
}
list group {
key name;

leaf name

{ type string; }

grouping remote-user-remote-auth {
choice remote-user {
mandatory true;
leaf same-user

{ type empty; }
leaf remote-name { type string; }
}
choice remote-auth {
mandatory true;
leaf same-pass { type empty; }

leaf remote-password

{ type string; }

}
leaf remote-secondary-password

{ type string; }
}

container default-map { uses remote-user-remote-auth; }
list map {
key user;
leaf user { type string; }

uses remote-user-remote-auth;
}
}
}

Exception and debug snippet:
[DEBUG] Failed to find [(urn:foo?revision=2014-10-29)remote-user-remote-auth] in parent list group
[DEBUG] Failed to find [(urn:foo?revision=2014-10-29)remote-user-remote-auth] in parent list group
[DEBUG] No node matching [(urn:foo?revision=2014-10-29)group, (urn:foo?revision=2014-10-29)remote-user-remote-auth] found in module ModuleImpl[name=test-list-grouping-choice, namespace=urn:foo, revision=Wed Oct 29 00:00:00 CET 2014, prefix=foo, yangVersion=1]
[DEBUG] Failed to find [(urn:foo?revision=2014-10-29)remote-user-remote-auth] in parent list group
[DEBUG] Failed to find [(urn:foo?revision=2014-10-29)remote-user-remote-auth] in parent list group
[DEBUG] No node matching [(urn:foo?revision=2014-10-29)group, (urn:foo?revision=2014-10-29)remote-user-remote-auth] found in module ModuleImpl[name=test-list-grouping-choice, namespace=urn:foo, revision=Wed Oct 29 00:00:00 CET 2014, prefix=foo, yangVersion=1]
[ERROR] yang-to-sources: Unable to generate sources with org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl generator
java.lang.NullPointerException
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.generateTypesFromChoiceCases(BindingGeneratorImpl.java:1236)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.choiceToGeneratedType(BindingGeneratorImpl.java:1160)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.addSchemaNodeToBuilderAsMethod(BindingGeneratorImpl.java:1116)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.resolveDataSchemaNodes(BindingGeneratorImpl.java:1045)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.groupingToGenType(BindingGeneratorImpl.java:707)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.groupingsToGenTypes(BindingGeneratorImpl.java:685)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.addDefaultInterfaceDefinition(BindingGeneratorImpl.java:1642)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.processDataSchemaNode(BindingGeneratorImpl.java:311)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.listToGenType(BindingGeneratorImpl.java:336)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.addSchemaNodeToBuilderAsMethod(BindingGeneratorImpl.java:1114)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.resolveDataSchemaNodes(BindingGeneratorImpl.java:1045)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.moduleToGenTypes(BindingGeneratorImpl.java:268)
at org.opendaylight.yangtools.sal.binding.generator.impl.BindingGeneratorImpl.generateTypes(BindingGeneratorImpl.java:237)
at org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl.generateSources(CodeGeneratorImpl.java:62)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSourcesWithOneGenerator(YangToSourcesProcessor.java:300)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSources(YangToSourcesProcessor.java:243)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.execute(YangToSourcesProcessor.java:84)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesMojo.execute(YangToSourcesMojo.java:122)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)



 Comments   
Comment by Martin Sunal [ 29/Oct/14 ]

A problem is the choice in grouping

Comment by Martin Ciglan [ 03/Nov/14 ]

NPE is fixed in 0.7-SNAPSHOT.

Despite of that, real problem is existence of grouping inside of structures extending DataNodeContainer (list in this case), so this is under analysis
and needs to be fixed.

I will come back with solution.

Martin

Comment by Peter Kajsa [ 06/Nov/14 ]

Fix patch: https://git.opendaylight.org/gerrit/#/c/12566/

Comment by Tony Tkacik [ 01/Dec/14 ]

Needs manual cherry-pick to stable/helium.

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