[MDSAL-247] Failed to compile container's child leaf node with enum type when they have the same name Created: 26/Apr/17  Updated: 09/Mar/18  Resolved: 19/Sep/17

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

Type: Bug
Reporter: GU Min Assignee: Unassigned
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 8308

 Description   

1.Yang file :

container apple {

leaf apple {

type enumeration {
enum red

{ value 0 ; }

enum green

{ value 1 ; }

}
}
}

2. Compiling error:
[ERROR] /home/workspace/code/bier-c/common/models/ietf-multicast-information-2016-10-28/target/generated-sources/mdsal-binding/org/opendaylight/yang/gen/v1/urn/yang/test/container/leaf/same/test/rev170425/Apple.java:[87,88] cannot find symbol
[ERROR] symbol: class Apple
[ERROR] location: interface org.opendaylight.yang.gen.v1.urn.yang.test.container.leaf.same.test.rev170425.Apple
[ERROR] /home/workspace/code/bier-c/common/models/ietf-multicast-information-2016-10-28/target/generated-sources/mdsal-binding/org/opendaylight/yang/gen/v1/urn/yang/test/container/leaf/same/test/rev170425/Apple.java:[30,12] interface org.opendaylight.yang.gen.v1.urn.yang.test.container.leaf.same.test.rev170425.Apple is already defined in package



 Comments   
Comment by Peter Kajsa [ 26/Apr/17 ]

It is binding generator issue, so moved to mdsal.

Comment by Martin Ciglan [ 27/Apr/17 ]

hi, this is well known bug of binding spec v1 and it's not going to be fixed there. Binding spec v2 solves this kind of issues.

Comment by GU Min [ 03/May/17 ]

(In reply to Martin Ciglan from comment #2)
> hi, this is well known bug of binding spec v1 and it's not going to be fixed
> there. Binding spec v2 solves this kind of issues.

Comment by GU Min [ 03/May/17 ]

hi,Martin, thanks for your reply. I've tried binding2 by using binding2 as parent in pom as following:

<parent>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-model-binding2-parent</artifactId>
<version>0.10.0-SNAPSHOT</version>
<relativePath/>
</parent>

Is it right to use it in this way?

and there is still an error :

[ERROR] yang-to-sources: Unable to generate sources with org.opendaylight.mdsal.binding.javav2.maven.api.gen.plugin.CodeGeneratorImpl generator
java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210)
at com.google.common.base.Optional.of(Optional.java:85)
at org.opendaylight.mdsal.binding.javav2.generator.util.generated.type.builder.EnumerationBuilderImpl$EnumerationImpl.getDescription(EnumerationBuilderImpl.java:244)
at org.opendaylight.mdsal.binding.javav2.java.api.generator.util.TextTemplateUtil.formatDataForJavaDoc(TextTemplateUtil.java:142)
at org.opendaylight.mdsal.binding.javav2.java.api.generator.txt.enumTemplate_Scope0$enumTemplate_Scope1$enumTemplate.apply(enumTemplate.template.scala:31)
at org.opendaylight.mdsal.binding.javav2.java.api.generator.txt.enumTemplate_Scope0$enumTemplate_Scope1$enumTemplate.render(enumTemplate.template.scala:83)
at org.opendaylight.mdsal.binding.javav2.java.api.generator.txt.enumTemplate.render(enumTemplate.template.scala)
at org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers.InterfaceRenderer.body(InterfaceRenderer.java:62)
at org.opendaylight.mdsal.binding.javav2.java.api.generator.renderers.BaseRenderer.generateTemplate(BaseRenderer.java:363)
at org.opendaylight.mdsal.binding.javav2.java.api.generator.InterfaceGenerator.generate(InterfaceGenerator.java:33)
at org.opendaylight.mdsal.binding.javav2.java.api.generator.GeneratorJavaFile.generateTypeToJavaFile(GeneratorJavaFile.java:191)
at org.opendaylight.mdsal.binding.javav2.java.api.generator.GeneratorJavaFile.generateToFile(GeneratorJavaFile.java:105)
at org.opendaylight.mdsal.binding.javav2.maven.api.gen.plugin.CodeGeneratorImpl.generateSources(CodeGeneratorImpl.java:91)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSourcesWithOneGenerator(YangToSourcesProcessor.java:333)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.generateSources(YangToSourcesProcessor.java:275)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.execute(YangToSourcesProcessor.java:96)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.conditionalExecute(YangToSourcesProcessor.java:117)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesMojo.execute(YangToSourcesMojo.java:121)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
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:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
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)
[ERROR] yang-to-sources: One or more code generators failed, including failed list(generatorClass=exception)

{org.opendaylight.mdsal.binding.javav2.maven.api.gen.plugin.CodeGeneratorImpl=java.lang.NullPointerException}
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.751 s
[INFO] Finished at: 2017-05-03T14:54:47+08:00
[INFO] Final Memory: 34M/119M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.opendaylight.yangtools:yang-maven-plugin:1.1.0-SNAPSHOT:generate-sources (binding2) on project ietf-multicast-information-2016-10-28: yang-to-sources: One or more code generators failed, including failed list(generatorClass=exception) {org.opendaylight.mdsal.binding.javav2.maven.api.gen.plugin.CodeGeneratorImpl=java.lang.NullPointerException}

-> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Comment by Martin Ciglan [ 03/May/17 ]

that's missing description statement in your model, try with this fix

https://git.opendaylight.org/gerrit/#/c/56424/

Comment by Martin Ciglan [ 03/May/17 ]

OK, I'm getting BUILD SUCCESS now, but generated code is not compilable yet, so I will look into it.

Comment by Martin Ciglan [ 10/May/17 ]

and the last patch:

https://git.opendaylight.org/gerrit/#/c/56489/

Comment by Martin Ciglan [ 10/May/17 ]

stable/carbon cherrypick merged:
https://git.opendaylight.org/gerrit/#/c/56772

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