You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Michael Thome (JIRA)" <ax...@ws.apache.org> on 2005/02/17 20:05:50 UTC

[jira] Updated: (AXIS-1821) ?wsdl handler causes StackOverflowError in certain circumstances

     [ http://issues.apache.org/jira/browse/AXIS-1821?page=history ]

Michael Thome updated AXIS-1821:
--------------------------------

    Attachment: bogus.wsdl

To reproduce the problem:
1. wsdl2java -s -B bogus.wsdl
2. ant jar
3. deploy the service in the usual way.
4. invoke http://.../Bogus?wsdl

> ?wsdl handler causes StackOverflowError in certain circumstances
> ----------------------------------------------------------------
>
>          Key: AXIS-1821
>          URL: http://issues.apache.org/jira/browse/AXIS-1821
>      Project: Axis
>         Type: Bug
>   Components: WSDL processing
>     Versions: 1.2RC2
>  Environment: Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03)
> Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode)
>     Reporter: Michael Thome
>  Attachments: bogus.wsdl
>
> If a wsdl document or an included schema includes a self-referential element with an anonymous complex type, the code emitted by wsdl2java cannot be converted back into wsdl by the ?wsdl handler.  Instead, you'll get a StackOverflowError due to an infite recursion.
> here's a schema fragment (I'll attach a simple wsdl, too)
>  <xsd:element name="nest">
>    <xsd:complexType>
>      <xsd:sequence>
>        <xsd:element ref="nest" minOccurs="0" maxOccurs="unbounded"/>
>        <xsd:element ref="atom" minOccurs="0" maxOccurs="unbounded"/>
>      </xsd:sequence>
>    </xsd:complexType>
>  </xsd:element>
> The following similar fragement works fine:
>  <xsd:complexType name="NestType">
>    <xsd:sequence>
>      <xsd:element ref="nest" minOccurs="0" maxOccurs="unbounded"/>
>      <xsd:element ref="atom" minOccurs="0" maxOccurs="unbounded"/>
>    </xsd:sequence>
>  </xsd:complexType>
>  <xsd:element name="nest" type="NestType"/>
> And a sample stack trace:
> java.lang.StackOverflowError
>         at java.lang.String.charAt(String.java:443)
>         at org.apache.xerces.util.XMLChar.isValidName(Unknown Source)
>         at org.apache.xerces.dom.CoreDocumentImpl.isXMLName(Unknown Source)
>         at org.apache.xerces.dom.CoreDocumentImpl.createElement(Unknown Source)
>         at org.apache.axis.wsdl.fromJava.Types.createElementWithAnonymousType(Types.java:1699)
>         at org.apache.axis.encoding.ser.BeanSerializer.writeField(BeanSerializer.java:411)
>         at org.apache.axis.encoding.ser.BeanSerializer.writeSchema(BeanSerializer.java:346)
>         at org.apache.axis.wsdl.fromJava.Types.makeTypeElement(Types.java:1796)
>         at org.apache.axis.wsdl.fromJava.Types.createElementWithAnonymousType(Types.java:1712)
>         at org.apache.axis.encoding.ser.BeanSerializer.writeField(BeanSerializer.java:411)
>         at org.apache.axis.encoding.ser.BeanSerializer.writeSchema(BeanSerializer.java:346)
>         at org.apache.axis.wsdl.fromJava.Types.makeTypeElement(Types.java:1796)
>         at org.apache.axis.wsdl.fromJava.Types.createElementWithAnonymousType(Types.java:1712)
>         ... (time passes) ...
>         at org.apache.axis.wsdl.fromJava.Types.createElementWithAnonymousType(Types.java:1712)
>         at org.apache.axis.encoding.ser.BeanSerializer.writeField(BeanSerializer.java:411)
>         at org.apache.axis.encoding.ser.BeanSerializer.writeSchema(BeanSerializer.java:346)
>         at org.apache.axis.wsdl.fromJava.Types.makeTypeElement(Types.java:1796)
> Oddly, the java2wsdl program doesn't exhibit this behavior, though it may be that I'm simply not invoking it correctly.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira