Fedor Kolchenko created CXFXJC-50:
-------------------------------------
Summary: Generating sources is not working if elements name diffs
only in register
Key: CXFXJC-50
URL: https://issues.apache.org/jira/browse/CXFXJC-50
Project: CXF XJC Utils
Issue Type: Bug
Components: Maven Plugin
Affects Versions: 4.0.2
Environment: OS - Windows 10
Maven - apache-maven-3.6.3
JDK - amazon corretto 21.0.5
extensions and args:
{code:xml}
<extensions>
<extension>org.jvnet.jaxb2_commons:jaxb2-fluent-api:3.0</extension>
<extension>org.jvnet.jaxb2_commons:jaxb2-namespace-prefix:2.0</extension>
</extensions>
...
<extensionArgs>
<extensionArg>-extension</extensionArg>
<extensionArg>-no-header</extensionArg>
<extensionArg>-XautoNameResolution</extensionArg>
<extensionArg>-npa</extensionArg>
</extensionArgs>{code}
Reporter: Fedor Kolchenko
It is not possible to generate java classes from XSD if the _complexType_
contains two {_}element{_}s with a name that differ only by register.
Example (xsd part):
{code:xml}
<xs:complexType>
<xs:sequence>
<xs:element name="TEST_test">
<xs:simpleType>
<xs:restriction base="xs:string"/>
</xs:simpleType>
</xs:element>
<xs:element name="test_test" type="xs:string" minOccurs="1"/>
</xs:sequence>
</xs:complexType> {code}
Without -X mvn flag its not posible to know why sources not generating - i got
only _Failed to execute goal org.apache.cxf:cxf-xjc-plugin:4.0.2:xsdtojava
(Exit code: 1)._
Enabling -X flag show logs:
{code:java}
Exception in thread "main" java.lang.IllegalArgumentException: trying to create
the same field twice: testTest
at com.sun.codemodel.JDefinedClass.field(JDefinedClass.java:414)
at com.sun.codemodel.JDefinedClass.field(JDefinedClass.java:385)
at
com.sun.tools.xjc.generator.bean.field.AbstractFieldWithVar.createField(AbstractFieldWithVar.java:46)
at
com.sun.tools.xjc.generator.bean.field.SingleField.<init>(SingleField.java:64)
at
com.sun.tools.xjc.generator.bean.field.SingleField.<init>(SingleField.java:51)
at
java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at
com.sun.tools.xjc.generator.bean.field.GenericFieldRenderer.generate(GenericFieldRenderer.java:39)
at
com.sun.tools.xjc.generator.bean.field.DefaultFieldRenderer.generate(DefaultFieldRenderer.java:52)
at
com.sun.tools.xjc.generator.bean.BeanGenerator.generateFieldDecl(BeanGenerator.java:751)
at
com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassBody(BeanGenerator.java:532)
at
com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:233)
at
com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:141)
at com.sun.tools.xjc.model.Model.generateCode(Model.java:258)
at org.apache.cxf.maven_plugin.XSDToJavaRunner.run(XSDToJavaRunner.java:179)
at
org.apache.cxf.maven_plugin.XSDToJavaRunner.main(XSDToJavaRunner.java:360)
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)