[ https://issues.apache.org/jira/browse/ODE-1023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14214905#comment-14214905 ]
Igor Vorobiov commented on ODE-1023: ------------------------------------ Error is thrown when we serializing process in org.apache.ode.bpel.o.Serializer.writeOProcess(OProcess, OutputStream). When process is serialized then other service data like binding and operation is serialized too. But when operation in wsdl has *<wsdl:documentation>* element then it will be parsed as docEle field and will involve serialization of whole Document. {code} <wsdl:portType name="HelloPortType"> <wsdl:operation name="hello"> <!-- 2 START StackOverflowError changes --> <wsdl:documentation> StackOverflowError documentation </wsdl:documentation> <!-- 2 END StackOverflowError changes --> <wsdl:input message="tns:HelloMessage" name="TestIn" /> <wsdl:output message="tns:HelloMessage" name="TestOut" /> </wsdl:operation> </wsdl:portType> {code} I've attached quick fix for the problem where I set documentation element to null in WSDLReaderImpl. Problem with this documentation element causes memory leak for each deployment because after wsdl parsing Document is left in memory since there are references to it from docEle. > Deployment fails with StackOverflowError > ---------------------------------------- > > Key: ODE-1023 > URL: https://issues.apache.org/jira/browse/ODE-1023 > Project: ODE > Issue Type: Bug > Components: Deployment > Affects Versions: 1.3.6 > Reporter: Igor Vorobiov > Attachments: HelloWorld2.zip, > org.apache.ode.bpel.compiler.wsdl.WSDLReaderImpl.java > > > Deployment fails with StackOverflowError: > {code} > java.lang.StackOverflowError > at org.apache.xerces.dom.NamedNodeMapImpl.<init>(Unknown Source) > at org.apache.xerces.dom.AttributeMap.<init>(Unknown Source) > at org.apache.xerces.dom.ElementImpl.getAttributes(Unknown Source) > at > org.apache.xerces.dom.DeferredElementNSImpl.synchronizeData(Unknown Source) > at org.apache.xerces.dom.NodeImpl.writeObject(Unknown Source) > at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:606) > at > java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988) > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495) > at > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431) > ... > {code} > Problem appears when process contains wsdl which has very large type > definition for example: > {code} > <xs:simpleType name="typeValidElementName"> > <xs:restriction base="xs:string"> > <xs:enumeration value="acbGenStatementType" /> > ... 1.5k enumeration here > <xs:enumeration value="xsdStatus" /> > </xs:restriction> > </xs:simpleType> > {code} > Attached HelloWorld2.zip process to reproduce. This process is from ODE > examples but with modified HelloWorld2.wsdl. -- This message was sent by Atlassian JIRA (v6.3.4#6332)