[ 
https://issues.apache.org/jira/browse/WSCOMMONS-341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rich Scheuerle resolved WSCOMMONS-341.
--------------------------------------

    Resolution: Fixed

Committed revision 654534.

> When serializing CDATA STAX Parser throws IllegalArgumentException
> ------------------------------------------------------------------
>
>                 Key: WSCOMMONS-341
>                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-341
>             Project: WS-Commons
>          Issue Type: Bug
>          Components: AXIOM
>            Reporter: Tim Mitchell
>            Assignee: Rich Scheuerle
>
> We are hitting a problem when a SOAPEnvelope containing CDATA is serialised 
> using the SOAPEnvelope.serializeAndConsume():
> java.lang.IllegalArgumentException: The specified CDATA text was null.
>       at 
> com.ibm.xml.xlxp.api.stax.msg.StAXMessageProvider.throwIllegalArgumentException(StAXMessageProvider.java:41)
>       at 
> com.ibm.xml.xlxp.api.stax.XMLStreamWriterImpl.writeCData(XMLStreamWriterImpl.java:675)
>       at 
> com.ibm.xml.xlxp.api.stax.XMLOutputFactoryImpl$XMLStreamWriterProxy.writeCData(XMLOutputFactoryImpl.java:163)
>       at 
> org.apache.axiom.om.impl.MTOMXMLStreamWriter.writeCData(MTOMXMLStreamWriter.java:212)
>       at 
> org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeCData(StreamingOMSerializer.java:426)
>       at 
> org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeNode(StreamingOMSerializer.java:137)
>       at 
> org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serialize(StreamingOMSerializer.java:92)
>       at 
> org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serialize(StreamingOMSerializer.java:76)
>       at 
> org.apache.axiom.om.impl.util.OMSerializerUtil.serializeByPullStream(OMSerializerUtil.java:572)
>       at 
> org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.internalSerialize(SOAPEnvelopeImpl.java:232)
>       at 
> org.apache.axiom.om.impl.llom.OMElementImpl.internalSerializeAndConsume(OMElementImpl.java:958)
>       at 
> org.apache.axiom.om.impl.llom.OMNodeImpl.serializeAndConsume(OMNodeImpl.java:471)
>       at 
> org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:68)
>       at 
> org.apache.axis2.transport.http.AxisRequestEntity.writeRequest(AxisRequestEntity.java:84)
>       at 
> org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:499)
>       at 
> org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114)
>       at 
> org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
>       at 
> org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
>       at 
> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
>       at 
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
>       at 
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
>       at 
> org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:542)
>       at 
> org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:189)
>       at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75)
>       at 
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:364)
>       at 
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:208)
>       at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:450)
>       at 
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:401)
>       at 
> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
>       at 
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
>       at 
> org.prototype.PrototypeHTTPClient.sendMessage(PrototypeHTTPClient.java:275)
> I have debugged the problem and have found that in 
> org.apache.axiom.om.impl.serialize.StreamingOMSerializer.serializeCData() it 
> does writer.writeCData(reader.getText());. The reader.getText() invokes the 
> OMStAXWrapper.getText() which checks to see if it the currentElement  is of a 
> certain type, and CData isn't one of the types it checks, so it returns null, 
> and this causes the exception.
> Should the CDATA type be added to hasText() ? 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to