Caused by: java.lang.NullPointerException
at com.sun.tools.xjc.generator.bean.field.AbstractField.annotateReference(AbstractField.java:198)
at com.sun.tools.xjc.generator.bean.field.AbstractField.annotate(AbstractField.java:161)
at com.sun.tools.xjc.generator.bean.field.AbstractListField.generate(AbstractListField.java:129)
at com.sun.tools.xjc.generator.bean.field.UntypedListField.<init>(UntypedListField.java:112)
at com.sun.tools.xjc.generator.bean.field.UntypedListFieldRenderer.generate(UntypedListFieldRenderer.java:77)
at com.sun.tools.xjc.generator.bean.field.DefaultFieldRenderer.generate(DefaultFieldRenderer.java:82)
at com.sun.tools.xjc.generator.bean.BeanGenerator.generateFieldDecl(BeanGenerator.java:777)
at com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassBody(BeanGenerator.java:558)
at com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:261)
at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:169)
at com.sun.tools.xjc.model.Model.generateCode(Model.java:288)
at org.jvnet.mjiip.v_2_2.XJC22Mojo.generateCode(XJC22Mojo.java:66)
at org.jvnet.mjiip.v_2_2.XJC22Mojo.doExecute(XJC22Mojo.java:41)
at org.jvnet.mjiip.v_2_2.XJC22Mojo.doExecute(XJC22Mojo.java:28)
at org.jvnet.jaxb2.maven2.RawXJC2Mojo.doExecute(RawXJC2Mojo.java:505)
at org.jvnet.jaxb2.maven2.RawXJC2Mojo.execute(RawXJC2Mojo.java:328)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
... 20 more
The problem is that when we have a reference property which references the element one. If this element is made a CClassRef via binding. The CClassRef returns null as elementName so this lines:
I've encountered an XJC bug in the following report:
https://github.com/highsource/maven-jaxb2-plugin/issues/90
Minimal reproducing test case attached. Just run
To get an NPE:
The problem is that when we have a reference property which references the element one. If this element is made a CClassRef via binding. The CClassRef returns null as elementName so this lines:
https://github.com/gf-metro/jaxb/blob/master/jaxb-ri/xjc/src/main/java/com/sun/tools/xjc/generator/bean/field/AbstractField.java#L198-L200
are giving an NPE.
The solution would be to extract element name from the tt>@XmlRootElement</tt annotation of the CClassRef's class.