You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Ales St <st...@seznam.cz> on 2006/01/22 22:25:15 UTC

Exception - java.lang.StackOverflowError - when cycle in complexTypes is created

Hi
I need help, i have some *.xsd file which I need to import in my project. 
Elements are defined, that they create cycle(recursion) first contains 
another, which contains another, and that contain first. And when I generate 
java classes and copy then to server and want to see a wsdl Axis error is 
generated:
AXIS error
Sorry, something seems to have gone wrong... here are the details:
Exception - java.lang.StackOverflowError

I thing, that is because there is cycle. Does somebody know, if this is in 
Axis possible, I use Axis 1.3.  Or some solution how I can do this cycle?

Here is part of my xsd which create cycle:

 <xsd:element name="Graphic">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
          <xsd:element ref="sld:Mark"/>
        </xsd:choice>
         </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="Mark">
       <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="sld:Fill" minOccurs="0"/>
        <xsd:element ref="sld:Stroke" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

 <xsd:element name="Stroke">
       <xsd:complexType>
      <xsd:sequence>
        <xsd:choice minOccurs="0">
          <xsd:element ref="sld:GraphicFill"/>
          <xsd:element ref="sld:GraphicStroke"/>
        </xsd:choice>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

<!-- !!!!!!!!!!!!!
 here is problem, when this element contain <xsd:element ref="sld:Graphic"/> 
,
 so some cycle(recursion)  is created and server write:
AXIS error
Sorry, something seems to have gone wrong... here are the details:
Exception - java.lang.StackOverflowError

if i change <xsd:element ref="sld:Graphic"/> to <xsd:element 
ref="sld:Name"/> everything is OK.
 -->

 <xsd:element name="GraphicStroke">
        <xsd:complexType>
      <xsd:sequence>
       <xsd:element ref="sld:Graphic"/>
 <!-- <xsd:element ref="sld:Name"/> -->
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

I enclose my wsdl and xsd files, this problem is in end of 
StyledLayerDescriptor.xsd file.
It is very important for me, to solve this problem.
Thanks for help
            Ales Stanko