You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by "Rich Scheuerle (JIRA)" <ji...@apache.org> on 2008/05/08 16:06:55 UTC

[jira] Resolved: (WSCOMMONS-341) When serializing CDATA STAX Parser throws IllegalArgumentException

     [ 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.