[ https://issues.apache.org/jira/browse/CXF-8305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17143058#comment-17143058 ]
Steve Armstrong commented on CXF-8305: -------------------------------------- Done. XJC bug report link added to Issue Links section above and that bug report back links here. Thanks. > 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 > Priority: Critical > Attachments: test.zip > > > 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)