Steve Armstrong created CXF-8305:
------------------------------------
Summary: WSDL2Java generates java code that won't compile for
array of byte arrays
Key: CXF-8305
URL: https://issues.apache.org/jira/browse/CXF-8305
Project: CXF
Issue Type: Bug
Components: Tooling
Affects Versions: 3.3.6
Reporter: Steve Armstrong
I am using a wsdl snippet that looks like the following:
{code:xml}
<xsd:complexType name="CACertificateLDAPGetResult">
<xsd:annotation>
<xsd:documentation>
Defines the results of a caCertificateLDAPGet operation
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Binary" type="xsd:boolean"
nillable="true">
<xsd:annotation>
<xsd:documentation>
Indicates whether the returns attribute is
string data or binary data.
True if the attribute is binary.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="StringAttribute" maxOccurs="unbounded"
minOccurs="0" type="xsd:string" nillable="true" >
<xsd:annotation>
<xsd:documentation>
A list of the strings found at a string
attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="BinaryAttribute" maxOccurs="unbounded"
minOccurs="0" type="xsd:base64Binary"
nillable="true" >
<xsd:annotation>
<xsd:documentation>
A list of the base64 encoded data found at a
binary attribute.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
{code}
In is the BinaryAttribute above that is of interest.
When this gets compiled using WSDL2Java and Java 8 with
collectionType="indexed", the following code snipped is produced.
{code:java}
/**
*
*
* @param values
* allowed objects are
* byte[]
*/
public void setBinaryAttribute(byte[][] values) {
int len = values.length;
this.binaryAttribute = ((byte[][]) new byte[][len] );
for (int i = 0; (i<len); i ++) {
this.binaryAttribute[i] = ((byte[]) values[i]);
}
}
{code}
Clearly, this is invalid Java since you need to set len on the first dimension
of the array, not the second.
Java can't compile the code generated by WSDL2Java so that's the end of things.
If you know of any work-around (other than *not* using
collectionType="indexed", please let me know. Thanks!
--
This message was sent by Atlassian Jira
(v8.3.4#803005)