[YANGTOOLS-221] hierarchy between two 'grouping' elements throws NullPoinerException during generating code Created: 22/Jul/14  Updated: 10/Apr/22  Due: 01/Aug/14  Resolved: 01/Aug/14

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

Type: Bug
Reporter: Michal Kasan Assignee: Martin Vitez
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Windows
Platform: PC


Attachments: Text File attachment.txt    
External issue ID: 1405

 Description   

In yangtools (version:0.6.2-SNAPSHOT), there is an error:
based on RFC6020, hierarchy between two 'grouping' elements is allowed. But Yangtools throw NullPointerException. See stacktrace in attachment as a reaction to the yang file content:
module my {
namespace "urn:error";
prefix my;
revision 2011-12-07

{ reference "me"; }


grouping openflow-port-resource-grouping {
grouping openflow-port-base-tunnel-grouping {
choice local-endpoint-address {
leaf name

{ type string; }


}
}
}
container capable-switch {
container resources {
list port

{ key "resource-id"; unique "resource-id"; uses openflow-port-resource-grouping; }

}
}
}



 Comments   
Comment by Michal Kasan [ 22/Jul/14 ]

Attachment attachment.txt has been added with description: stacktrace from console

Comment by Tony Tkacik [ 23/Jul/14 ]

Added snipet to comment

[ERROR] yang-to-sources: Unable to parse yang files from C:\Workspace-for-MD-SAL\ovsdb2-parent\ovsdb2\src\main\yang
java.lang.NullPointerException
at org.opendaylight.yangtools.yang.parser.builder.impl.ListSchemaNodeBuilder.build(ListSchemaNodeBuilder.java:93)
at org.opendaylight.yangtools.yang.parser.builder.impl.ListSchemaNodeBuilder.build(ListSchemaNodeBuilder.java:32)
at org.opendaylight.yangtools.yang.parser.builder.util.AbstractDocumentedDataNodeContainerBuilder.buildChildren(AbstractDocumentedDataNodeContainerBuilder.java:196)
at org.opendaylight.yangtools.yang.parser.builder.impl.ContainerSchemaNodeBuilder.build(ContainerSchemaNodeBuilder.java:79)
at org.opendaylight.yangtools.yang.parser.builder.impl.ContainerSchemaNodeBuilder.build(ContainerSchemaNodeBuilder.java:30)
at org.opendaylight.yangtools.yang.parser.builder.util.AbstractDocumentedDataNodeContainerBuilder.buildChildren(AbstractDocumentedDataNodeContainerBuilder.java:196)
at org.opendaylight.yangtools.yang.parser.builder.impl.ContainerSchemaNodeBuilder.build(ContainerSchemaNodeBuilder.java:79)
at org.opendaylight.yangtools.yang.parser.builder.impl.ContainerSchemaNodeBuilder.build(ContainerSchemaNodeBuilder.java:30)
at org.opendaylight.yangtools.yang.parser.builder.util.AbstractDocumentedDataNodeContainerBuilder.buildChildren(AbstractDocumentedDataNodeContainerBuilder.java:196)
at org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder.build(ModuleBuilder.java:169)
at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.build(YangParserImpl.java:656)
at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.parseYangModelSources(YangParserImpl.java:337)
at org.opendaylight.yangtools.yang.parser.impl.YangParserImpl.parseYangModelsFromStreamsMapped(YangParserImpl.java:304)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.processYang(YangToSourcesProcessor.java:152)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.execute(YangToSourcesProcessor.java:83)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesMojo.execute(YangToSourcesMojo.java:122)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] -

Comment by Tony Tkacik [ 23/Jul/14 ]

Your code shows error,
but actually reason probably is

list port

{ key "resource-id"; unique "resource-id"; uses openflow-port-resource-grouping; }

Where you define resource-id as part of key, but there is no definitino of resource-id leaf.

Also
grouping {
grouping {

}
}
will result in empty grouping and nested grouping is usable only inside parent grouping, which makes it impossible to use, and also it will never be available
in data tree.

Comment by Martin Vitez [ 01/Aug/14 ]

Probably fixed by some of previous patches.
Parser currently detect invalid list key definition and throws correct exception informing about error.

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