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 "Alan Xu (JIRA)" <ji...@apache.org> on 2007/05/04 00:22:15 UTC

[jira] Created: (AXIS2-2635) Exception in XML serialization causes malformed/corrupted response

Exception in XML serialization causes malformed/corrupted response
------------------------------------------------------------------

                 Key: AXIS2-2635
                 URL: https://issues.apache.org/jira/browse/AXIS2-2635
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: kernel
    Affects Versions: 1.1.1, 1.2
         Environment: Windows Vista, Tomcat 5.5.20, JDK 1.5.0_10
            Reporter: Alan Xu


Hi there,

We have a simple SOAP layer that returns data pulled from the DB using Axis.  Nothing special here.

In our testing, one of the objects happened to have an invalid XML 1.0 character (0x10) in its description field.  As it's not an application Fault (our application currently doesn't check for it.  It no doubt should, obviously), Axis2 wasn't aware of it until it's notified by the Woodstox BufferingXMLWriter of an invalid character (through IOException).  Axis2 caught the exception (at , and raised an AxisFault.  It then proceeded to send the Fault as its own message (envelope) back to the client.  All is well, except that Axis2 was in the middle of writing out response provided by the business application.  That led to a corrupted byte stream that contained a partial, not well-formed envelope, followed immediately by the Fault envelope.  Something to the effect of a purging (not flushing) to clear the output stream before sending out the Fault message would seem desirable.

It may not be so bad if the client receives such a corrupted stream, and throws some sort of error.  The Fault message becomes meaningless, obviously, which isn't great either.  But, what's worse is that the Axis2 client (ServiceClient.sendReceive) actually was able to parse the corrupted byte stream, and somehow considered the Fault message be the content of the last XML element that contained the invalid character.  Now, that's really bad.

This may have been logged in JIRA, but I couldn't seem to find it.

-Alan

Stack track of the exception caught by Axis2 during serialization:

 com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x10) in text to output
	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:520)
	at org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:209)
	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerializeLocal(OMTextImpl.java:368)
	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:197)
	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:564)
	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:551)
	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serialize(OMSourcedElementImpl.java:592)
	at org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:907)
	... 30 more
Caused by: java.io.IOException: Invalid white space character (0x10) in text to output
	at com.ctc.wstx.sw.XmlWriter.throwInvalidChar(XmlWriter.java:545)
	at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:453)
	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:518)
	... 43 more


This is the call stack from Eclipse debugger:

CoyoteOutputStream.write(byte[], int, int) line: 88	
UTF8Writer.flush() line: 96	
BufferingXmlWriter.flush() line: 214	
SimpleNsStreamWriter(BaseStreamWriter).flush() line: 311	
MTOMXMLStreamWriter.flush() line: 115	
SOAPEnvelopeImpl(OMNodeImpl).serializeAndConsume(OutputStream, OMOutputFormat) line: 419	
SOAPMessageFormatter.writeTo(MessageContext, OMOutputFormat, OutputStream, boolean) line: 55	
CommonsHTTPTransportSender.sendUsingOutputStream(MessageContext, OMOutputFormat) line: 275	
CommonsHTTPTransportSender.invoke(MessageContext) line: 203	
AxisEngine.sendFault(MessageContext) line: 533	
AxisServlet.handleFault(MessageContext, OutputStream, AxisFault) line: 393	
AxisServlet.processAxisFault(MessageContext, HttpServletResponse, OutputStream, AxisFault) line: 355	
AxisServlet.doPost(HttpServletRequest, HttpServletResponse) line: 152	
AxisServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 709	
AxisServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 802	
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 252	
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
HibernateFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 95	
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 202	
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
StandardWrapperValve.invoke(Request, Response) line: 213	
StandardContextValve.invoke(Request, Response) line: 178	
StandardHostValve.invoke(Request, Response) line: 126	
ErrorReportValve.invoke(Request, Response) line: 105	
FastCommonAccessLogValve.invoke(Request, Response) line: 495	
StandardEngineValve.invoke(Request, Response) line: 107	
CoyoteAdapter.service(Request, Response) line: 148	
Http11Processor.process(InputStream, OutputStream) line: 869	
Http11Protocol$JmxHttp11ConnectionHandler(Http11BaseProtocol$Http11ConnectionHandler).processConnection(TcpConnection, Object[]) line: 664	
PoolTcpEndpoint.processSocket(Socket, TcpConnection, Object[]) line: 527	
LeaderFollowerWorkerThread.runIt(Object[]) line: 80	
ThreadPool$ControlRunnable.run() line: 684	
ThreadWithAttributes(Thread).run() line: 595	


What got sent over the wire back to the client:

<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"><xml version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope>


What the client (Axis2 ServiceClient) thought it was getting:

<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"> version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope></s48:description></ns2:record></ns2:getSKUListResponse></soapenv:Body>

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Resolved: (AXIS2-2635) Exception in XML serialization causes malformed/corrupted response

Posted by "Glen Daniels (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-2635?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Glen Daniels resolved AXIS2-2635.
---------------------------------

    Resolution: Fixed

Fixed in trunk.  We now catch errors that occur WHILE writing responses, and simply stop processing after logging them.

Thanks for the bug report!  Please let us know if this doesn't resolve the problem for you.


> Exception in XML serialization causes malformed/corrupted response
> ------------------------------------------------------------------
>
>                 Key: AXIS2-2635
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2635
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.2, 1.1.1
>         Environment: Windows Vista, Tomcat 5.5.20, JDK 1.5.0_10
>            Reporter: Alan Xu
>            Assignee: Glen Daniels
>            Priority: Blocker
>             Fix For: 1.3
>
>
> Hi there,
> We have a simple SOAP layer that returns data pulled from the DB using Axis.  Nothing special here.
> In our testing, one of the objects happened to have an invalid XML 1.0 character (0x10) in its description field.  As it's not an application Fault (our application currently doesn't check for it.  It no doubt should, obviously), Axis2 wasn't aware of it until it's notified by the Woodstox BufferingXMLWriter of an invalid character (through IOException).  Axis2 caught the exception (at , and raised an AxisFault.  It then proceeded to send the Fault as its own message (envelope) back to the client.  All is well, except that Axis2 was in the middle of writing out response provided by the business application.  That led to a corrupted byte stream that contained a partial, not well-formed envelope, followed immediately by the Fault envelope.  Something to the effect of a purging (not flushing) to clear the output stream before sending out the Fault message would seem desirable.
> It may not be so bad if the client receives such a corrupted stream, and throws some sort of error.  The Fault message becomes meaningless, obviously, which isn't great either.  But, what's worse is that the Axis2 client (ServiceClient.sendReceive) actually was able to parse the corrupted byte stream, and somehow considered the Fault message be the content of the last XML element that contained the invalid character.  Now, that's really bad.
> This may have been logged in JIRA, but I couldn't seem to find it.
> -Alan
> Stack track of the exception caught by Axis2 during serialization:
>  com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:520)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:209)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerializeLocal(OMTextImpl.java:368)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:197)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:564)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:551)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serialize(OMSourcedElementImpl.java:592)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:907)
> 	... 30 more
> Caused by: java.io.IOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.XmlWriter.throwInvalidChar(XmlWriter.java:545)
> 	at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:453)
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:518)
> 	... 43 more
> This is the call stack from Eclipse debugger:
> CoyoteOutputStream.write(byte[], int, int) line: 88	
> UTF8Writer.flush() line: 96	
> BufferingXmlWriter.flush() line: 214	
> SimpleNsStreamWriter(BaseStreamWriter).flush() line: 311	
> MTOMXMLStreamWriter.flush() line: 115	
> SOAPEnvelopeImpl(OMNodeImpl).serializeAndConsume(OutputStream, OMOutputFormat) line: 419	
> SOAPMessageFormatter.writeTo(MessageContext, OMOutputFormat, OutputStream, boolean) line: 55	
> CommonsHTTPTransportSender.sendUsingOutputStream(MessageContext, OMOutputFormat) line: 275	
> CommonsHTTPTransportSender.invoke(MessageContext) line: 203	
> AxisEngine.sendFault(MessageContext) line: 533	
> AxisServlet.handleFault(MessageContext, OutputStream, AxisFault) line: 393	
> AxisServlet.processAxisFault(MessageContext, HttpServletResponse, OutputStream, AxisFault) line: 355	
> AxisServlet.doPost(HttpServletRequest, HttpServletResponse) line: 152	
> AxisServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 709	
> AxisServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 802	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 252	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> HibernateFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 95	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 202	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> StandardWrapperValve.invoke(Request, Response) line: 213	
> StandardContextValve.invoke(Request, Response) line: 178	
> StandardHostValve.invoke(Request, Response) line: 126	
> ErrorReportValve.invoke(Request, Response) line: 105	
> FastCommonAccessLogValve.invoke(Request, Response) line: 495	
> StandardEngineValve.invoke(Request, Response) line: 107	
> CoyoteAdapter.service(Request, Response) line: 148	
> Http11Processor.process(InputStream, OutputStream) line: 869	
> Http11Protocol$JmxHttp11ConnectionHandler(Http11BaseProtocol$Http11ConnectionHandler).processConnection(TcpConnection, Object[]) line: 664	
> PoolTcpEndpoint.processSocket(Socket, TcpConnection, Object[]) line: 527	
> LeaderFollowerWorkerThread.runIt(Object[]) line: 80	
> ThreadPool$ControlRunnable.run() line: 684	
> ThreadWithAttributes(Thread).run() line: 595	
> What got sent over the wire back to the client:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"><xml version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope>
> What the client (Axis2 ServiceClient) thought it was getting:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"> version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope></s48:description></ns2:record></ns2:getSKUListResponse></soapenv:Body>

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Updated: (AXIS2-2635) Exception in XML serialization causes malformed/corrupted response

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-2635?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Davanum Srinivas updated AXIS2-2635:
------------------------------------

    Assignee: Glen Daniels

> Exception in XML serialization causes malformed/corrupted response
> ------------------------------------------------------------------
>
>                 Key: AXIS2-2635
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2635
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.2, 1.1.1
>         Environment: Windows Vista, Tomcat 5.5.20, JDK 1.5.0_10
>            Reporter: Alan Xu
>            Assignee: Glen Daniels
>
> Hi there,
> We have a simple SOAP layer that returns data pulled from the DB using Axis.  Nothing special here.
> In our testing, one of the objects happened to have an invalid XML 1.0 character (0x10) in its description field.  As it's not an application Fault (our application currently doesn't check for it.  It no doubt should, obviously), Axis2 wasn't aware of it until it's notified by the Woodstox BufferingXMLWriter of an invalid character (through IOException).  Axis2 caught the exception (at , and raised an AxisFault.  It then proceeded to send the Fault as its own message (envelope) back to the client.  All is well, except that Axis2 was in the middle of writing out response provided by the business application.  That led to a corrupted byte stream that contained a partial, not well-formed envelope, followed immediately by the Fault envelope.  Something to the effect of a purging (not flushing) to clear the output stream before sending out the Fault message would seem desirable.
> It may not be so bad if the client receives such a corrupted stream, and throws some sort of error.  The Fault message becomes meaningless, obviously, which isn't great either.  But, what's worse is that the Axis2 client (ServiceClient.sendReceive) actually was able to parse the corrupted byte stream, and somehow considered the Fault message be the content of the last XML element that contained the invalid character.  Now, that's really bad.
> This may have been logged in JIRA, but I couldn't seem to find it.
> -Alan
> Stack track of the exception caught by Axis2 during serialization:
>  com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:520)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:209)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerializeLocal(OMTextImpl.java:368)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:197)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:564)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:551)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serialize(OMSourcedElementImpl.java:592)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:907)
> 	... 30 more
> Caused by: java.io.IOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.XmlWriter.throwInvalidChar(XmlWriter.java:545)
> 	at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:453)
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:518)
> 	... 43 more
> This is the call stack from Eclipse debugger:
> CoyoteOutputStream.write(byte[], int, int) line: 88	
> UTF8Writer.flush() line: 96	
> BufferingXmlWriter.flush() line: 214	
> SimpleNsStreamWriter(BaseStreamWriter).flush() line: 311	
> MTOMXMLStreamWriter.flush() line: 115	
> SOAPEnvelopeImpl(OMNodeImpl).serializeAndConsume(OutputStream, OMOutputFormat) line: 419	
> SOAPMessageFormatter.writeTo(MessageContext, OMOutputFormat, OutputStream, boolean) line: 55	
> CommonsHTTPTransportSender.sendUsingOutputStream(MessageContext, OMOutputFormat) line: 275	
> CommonsHTTPTransportSender.invoke(MessageContext) line: 203	
> AxisEngine.sendFault(MessageContext) line: 533	
> AxisServlet.handleFault(MessageContext, OutputStream, AxisFault) line: 393	
> AxisServlet.processAxisFault(MessageContext, HttpServletResponse, OutputStream, AxisFault) line: 355	
> AxisServlet.doPost(HttpServletRequest, HttpServletResponse) line: 152	
> AxisServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 709	
> AxisServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 802	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 252	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> HibernateFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 95	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 202	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> StandardWrapperValve.invoke(Request, Response) line: 213	
> StandardContextValve.invoke(Request, Response) line: 178	
> StandardHostValve.invoke(Request, Response) line: 126	
> ErrorReportValve.invoke(Request, Response) line: 105	
> FastCommonAccessLogValve.invoke(Request, Response) line: 495	
> StandardEngineValve.invoke(Request, Response) line: 107	
> CoyoteAdapter.service(Request, Response) line: 148	
> Http11Processor.process(InputStream, OutputStream) line: 869	
> Http11Protocol$JmxHttp11ConnectionHandler(Http11BaseProtocol$Http11ConnectionHandler).processConnection(TcpConnection, Object[]) line: 664	
> PoolTcpEndpoint.processSocket(Socket, TcpConnection, Object[]) line: 527	
> LeaderFollowerWorkerThread.runIt(Object[]) line: 80	
> ThreadPool$ControlRunnable.run() line: 684	
> ThreadWithAttributes(Thread).run() line: 595	
> What got sent over the wire back to the client:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"><xml version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope>
> What the client (Axis2 ServiceClient) thought it was getting:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"> version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope></s48:description></ns2:record></ns2:getSKUListResponse></soapenv:Body>

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-2635) Exception in XML serialization causes malformed/corrupted response

Posted by "Glen Daniels (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-2635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12505011 ] 

Glen Daniels commented on AXIS2-2635:
-------------------------------------

Tricky one.  I agree that the solution definitely involves making sure SOME kind of error happens on the client.  Coincidentally we've been working on fault handling in various places in the Axis2 framework at the hackathon, so perhaps we'll get around to trying something like this.  I'm a little torn as to what to do - the simplest approach would be just to cut off the output when the error happens and let the client deal with malformed XML.  However, there's also a part of me that rather likes injecting the fault there, so that you can actually tell what's going on by tracing the message.

We could go so far as to have some kind of "flag" element that indicates to Axiom that the document currently being parsed should be thrown away and the remainder of the content is a fault... but it might be expensive constantly checking for that QName while we parse.

For now I'd propose we adopt the simple solution where the error gets logged on the server and output is simply truncated. What do you guys think?


> Exception in XML serialization causes malformed/corrupted response
> ------------------------------------------------------------------
>
>                 Key: AXIS2-2635
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2635
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.2, 1.1.1
>         Environment: Windows Vista, Tomcat 5.5.20, JDK 1.5.0_10
>            Reporter: Alan Xu
>            Assignee: Glen Daniels
>            Priority: Blocker
>
> Hi there,
> We have a simple SOAP layer that returns data pulled from the DB using Axis.  Nothing special here.
> In our testing, one of the objects happened to have an invalid XML 1.0 character (0x10) in its description field.  As it's not an application Fault (our application currently doesn't check for it.  It no doubt should, obviously), Axis2 wasn't aware of it until it's notified by the Woodstox BufferingXMLWriter of an invalid character (through IOException).  Axis2 caught the exception (at , and raised an AxisFault.  It then proceeded to send the Fault as its own message (envelope) back to the client.  All is well, except that Axis2 was in the middle of writing out response provided by the business application.  That led to a corrupted byte stream that contained a partial, not well-formed envelope, followed immediately by the Fault envelope.  Something to the effect of a purging (not flushing) to clear the output stream before sending out the Fault message would seem desirable.
> It may not be so bad if the client receives such a corrupted stream, and throws some sort of error.  The Fault message becomes meaningless, obviously, which isn't great either.  But, what's worse is that the Axis2 client (ServiceClient.sendReceive) actually was able to parse the corrupted byte stream, and somehow considered the Fault message be the content of the last XML element that contained the invalid character.  Now, that's really bad.
> This may have been logged in JIRA, but I couldn't seem to find it.
> -Alan
> Stack track of the exception caught by Axis2 during serialization:
>  com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:520)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:209)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerializeLocal(OMTextImpl.java:368)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:197)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:564)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:551)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serialize(OMSourcedElementImpl.java:592)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:907)
> 	... 30 more
> Caused by: java.io.IOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.XmlWriter.throwInvalidChar(XmlWriter.java:545)
> 	at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:453)
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:518)
> 	... 43 more
> This is the call stack from Eclipse debugger:
> CoyoteOutputStream.write(byte[], int, int) line: 88	
> UTF8Writer.flush() line: 96	
> BufferingXmlWriter.flush() line: 214	
> SimpleNsStreamWriter(BaseStreamWriter).flush() line: 311	
> MTOMXMLStreamWriter.flush() line: 115	
> SOAPEnvelopeImpl(OMNodeImpl).serializeAndConsume(OutputStream, OMOutputFormat) line: 419	
> SOAPMessageFormatter.writeTo(MessageContext, OMOutputFormat, OutputStream, boolean) line: 55	
> CommonsHTTPTransportSender.sendUsingOutputStream(MessageContext, OMOutputFormat) line: 275	
> CommonsHTTPTransportSender.invoke(MessageContext) line: 203	
> AxisEngine.sendFault(MessageContext) line: 533	
> AxisServlet.handleFault(MessageContext, OutputStream, AxisFault) line: 393	
> AxisServlet.processAxisFault(MessageContext, HttpServletResponse, OutputStream, AxisFault) line: 355	
> AxisServlet.doPost(HttpServletRequest, HttpServletResponse) line: 152	
> AxisServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 709	
> AxisServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 802	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 252	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> HibernateFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 95	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 202	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> StandardWrapperValve.invoke(Request, Response) line: 213	
> StandardContextValve.invoke(Request, Response) line: 178	
> StandardHostValve.invoke(Request, Response) line: 126	
> ErrorReportValve.invoke(Request, Response) line: 105	
> FastCommonAccessLogValve.invoke(Request, Response) line: 495	
> StandardEngineValve.invoke(Request, Response) line: 107	
> CoyoteAdapter.service(Request, Response) line: 148	
> Http11Processor.process(InputStream, OutputStream) line: 869	
> Http11Protocol$JmxHttp11ConnectionHandler(Http11BaseProtocol$Http11ConnectionHandler).processConnection(TcpConnection, Object[]) line: 664	
> PoolTcpEndpoint.processSocket(Socket, TcpConnection, Object[]) line: 527	
> LeaderFollowerWorkerThread.runIt(Object[]) line: 80	
> ThreadPool$ControlRunnable.run() line: 684	
> ThreadWithAttributes(Thread).run() line: 595	
> What got sent over the wire back to the client:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"><xml version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope>
> What the client (Axis2 ServiceClient) thought it was getting:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"> version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope></s48:description></ns2:record></ns2:getSKUListResponse></soapenv:Body>

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-2635) Exception in XML serialization causes malformed/corrupted response

Posted by "Davanum Srinivas (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-2635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12502189 ] 

Davanum Srinivas commented on AXIS2-2635:
-----------------------------------------

Glen, Any ideas on how to handle this?

thanks,
dims

> Exception in XML serialization causes malformed/corrupted response
> ------------------------------------------------------------------
>
>                 Key: AXIS2-2635
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2635
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.2, 1.1.1
>         Environment: Windows Vista, Tomcat 5.5.20, JDK 1.5.0_10
>            Reporter: Alan Xu
>            Assignee: Glen Daniels
>
> Hi there,
> We have a simple SOAP layer that returns data pulled from the DB using Axis.  Nothing special here.
> In our testing, one of the objects happened to have an invalid XML 1.0 character (0x10) in its description field.  As it's not an application Fault (our application currently doesn't check for it.  It no doubt should, obviously), Axis2 wasn't aware of it until it's notified by the Woodstox BufferingXMLWriter of an invalid character (through IOException).  Axis2 caught the exception (at , and raised an AxisFault.  It then proceeded to send the Fault as its own message (envelope) back to the client.  All is well, except that Axis2 was in the middle of writing out response provided by the business application.  That led to a corrupted byte stream that contained a partial, not well-formed envelope, followed immediately by the Fault envelope.  Something to the effect of a purging (not flushing) to clear the output stream before sending out the Fault message would seem desirable.
> It may not be so bad if the client receives such a corrupted stream, and throws some sort of error.  The Fault message becomes meaningless, obviously, which isn't great either.  But, what's worse is that the Axis2 client (ServiceClient.sendReceive) actually was able to parse the corrupted byte stream, and somehow considered the Fault message be the content of the last XML element that contained the invalid character.  Now, that's really bad.
> This may have been logged in JIRA, but I couldn't seem to find it.
> -Alan
> Stack track of the exception caught by Axis2 during serialization:
>  com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:520)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:209)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerializeLocal(OMTextImpl.java:368)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:197)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:564)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:551)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serialize(OMSourcedElementImpl.java:592)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:907)
> 	... 30 more
> Caused by: java.io.IOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.XmlWriter.throwInvalidChar(XmlWriter.java:545)
> 	at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:453)
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:518)
> 	... 43 more
> This is the call stack from Eclipse debugger:
> CoyoteOutputStream.write(byte[], int, int) line: 88	
> UTF8Writer.flush() line: 96	
> BufferingXmlWriter.flush() line: 214	
> SimpleNsStreamWriter(BaseStreamWriter).flush() line: 311	
> MTOMXMLStreamWriter.flush() line: 115	
> SOAPEnvelopeImpl(OMNodeImpl).serializeAndConsume(OutputStream, OMOutputFormat) line: 419	
> SOAPMessageFormatter.writeTo(MessageContext, OMOutputFormat, OutputStream, boolean) line: 55	
> CommonsHTTPTransportSender.sendUsingOutputStream(MessageContext, OMOutputFormat) line: 275	
> CommonsHTTPTransportSender.invoke(MessageContext) line: 203	
> AxisEngine.sendFault(MessageContext) line: 533	
> AxisServlet.handleFault(MessageContext, OutputStream, AxisFault) line: 393	
> AxisServlet.processAxisFault(MessageContext, HttpServletResponse, OutputStream, AxisFault) line: 355	
> AxisServlet.doPost(HttpServletRequest, HttpServletResponse) line: 152	
> AxisServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 709	
> AxisServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 802	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 252	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> HibernateFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 95	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 202	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> StandardWrapperValve.invoke(Request, Response) line: 213	
> StandardContextValve.invoke(Request, Response) line: 178	
> StandardHostValve.invoke(Request, Response) line: 126	
> ErrorReportValve.invoke(Request, Response) line: 105	
> FastCommonAccessLogValve.invoke(Request, Response) line: 495	
> StandardEngineValve.invoke(Request, Response) line: 107	
> CoyoteAdapter.service(Request, Response) line: 148	
> Http11Processor.process(InputStream, OutputStream) line: 869	
> Http11Protocol$JmxHttp11ConnectionHandler(Http11BaseProtocol$Http11ConnectionHandler).processConnection(TcpConnection, Object[]) line: 664	
> PoolTcpEndpoint.processSocket(Socket, TcpConnection, Object[]) line: 527	
> LeaderFollowerWorkerThread.runIt(Object[]) line: 80	
> ThreadPool$ControlRunnable.run() line: 684	
> ThreadWithAttributes(Thread).run() line: 595	
> What got sent over the wire back to the client:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"><xml version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope>
> What the client (Axis2 ServiceClient) thought it was getting:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"> version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope></s48:description></ns2:record></ns2:getSKUListResponse></soapenv:Body>

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Commented: (AXIS2-2635) Exception in XML serialization causes malformed/corrupted response

Posted by "Ajith Harshana Ranabahu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AXIS2-2635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12505429 ] 

Ajith Harshana Ranabahu commented on AXIS2-2635:
------------------------------------------------

The issue is that we get an exception while writing the output and we throw a AxisFault and try to handle it as a usual case.  My guess is this is one case we should not try to handle the usual way, primarily because we did the serialization half way and there is no way we can get it back  (One can write to  a big buffer and come up with a way of sending a nice little exception back to the client but that will kill us in terms of memory usage  and I'm hoping no one wants to do it for the sake of accuracy in this special case). The simplest (and most straightforward) thing we can do IMHO is to flush the buffers and log the error. 
The client will get a corrupted message but the server would have logged a proper error. So I'm with Glen on this (I guess by saying truncate he meant immediate flushing of the buffers)

> Exception in XML serialization causes malformed/corrupted response
> ------------------------------------------------------------------
>
>                 Key: AXIS2-2635
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2635
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.2, 1.1.1
>         Environment: Windows Vista, Tomcat 5.5.20, JDK 1.5.0_10
>            Reporter: Alan Xu
>            Assignee: Glen Daniels
>            Priority: Blocker
>
> Hi there,
> We have a simple SOAP layer that returns data pulled from the DB using Axis.  Nothing special here.
> In our testing, one of the objects happened to have an invalid XML 1.0 character (0x10) in its description field.  As it's not an application Fault (our application currently doesn't check for it.  It no doubt should, obviously), Axis2 wasn't aware of it until it's notified by the Woodstox BufferingXMLWriter of an invalid character (through IOException).  Axis2 caught the exception (at , and raised an AxisFault.  It then proceeded to send the Fault as its own message (envelope) back to the client.  All is well, except that Axis2 was in the middle of writing out response provided by the business application.  That led to a corrupted byte stream that contained a partial, not well-formed envelope, followed immediately by the Fault envelope.  Something to the effect of a purging (not flushing) to clear the output stream before sending out the Fault message would seem desirable.
> It may not be so bad if the client receives such a corrupted stream, and throws some sort of error.  The Fault message becomes meaningless, obviously, which isn't great either.  But, what's worse is that the Axis2 client (ServiceClient.sendReceive) actually was able to parse the corrupted byte stream, and somehow considered the Fault message be the content of the last XML element that contained the invalid character.  Now, that's really bad.
> This may have been logged in JIRA, but I couldn't seem to find it.
> -Alan
> Stack track of the exception caught by Axis2 during serialization:
>  com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:520)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:209)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerializeLocal(OMTextImpl.java:368)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:197)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:564)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:551)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serialize(OMSourcedElementImpl.java:592)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:907)
> 	... 30 more
> Caused by: java.io.IOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.XmlWriter.throwInvalidChar(XmlWriter.java:545)
> 	at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:453)
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:518)
> 	... 43 more
> This is the call stack from Eclipse debugger:
> CoyoteOutputStream.write(byte[], int, int) line: 88	
> UTF8Writer.flush() line: 96	
> BufferingXmlWriter.flush() line: 214	
> SimpleNsStreamWriter(BaseStreamWriter).flush() line: 311	
> MTOMXMLStreamWriter.flush() line: 115	
> SOAPEnvelopeImpl(OMNodeImpl).serializeAndConsume(OutputStream, OMOutputFormat) line: 419	
> SOAPMessageFormatter.writeTo(MessageContext, OMOutputFormat, OutputStream, boolean) line: 55	
> CommonsHTTPTransportSender.sendUsingOutputStream(MessageContext, OMOutputFormat) line: 275	
> CommonsHTTPTransportSender.invoke(MessageContext) line: 203	
> AxisEngine.sendFault(MessageContext) line: 533	
> AxisServlet.handleFault(MessageContext, OutputStream, AxisFault) line: 393	
> AxisServlet.processAxisFault(MessageContext, HttpServletResponse, OutputStream, AxisFault) line: 355	
> AxisServlet.doPost(HttpServletRequest, HttpServletResponse) line: 152	
> AxisServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 709	
> AxisServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 802	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 252	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> HibernateFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 95	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 202	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> StandardWrapperValve.invoke(Request, Response) line: 213	
> StandardContextValve.invoke(Request, Response) line: 178	
> StandardHostValve.invoke(Request, Response) line: 126	
> ErrorReportValve.invoke(Request, Response) line: 105	
> FastCommonAccessLogValve.invoke(Request, Response) line: 495	
> StandardEngineValve.invoke(Request, Response) line: 107	
> CoyoteAdapter.service(Request, Response) line: 148	
> Http11Processor.process(InputStream, OutputStream) line: 869	
> Http11Protocol$JmxHttp11ConnectionHandler(Http11BaseProtocol$Http11ConnectionHandler).processConnection(TcpConnection, Object[]) line: 664	
> PoolTcpEndpoint.processSocket(Socket, TcpConnection, Object[]) line: 527	
> LeaderFollowerWorkerThread.runIt(Object[]) line: 80	
> ThreadPool$ControlRunnable.run() line: 684	
> ThreadWithAttributes(Thread).run() line: 595	
> What got sent over the wire back to the client:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"><xml version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope>
> What the client (Axis2 ServiceClient) thought it was getting:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"> version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope></s48:description></ns2:record></ns2:getSKUListResponse></soapenv:Body>

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


[jira] Updated: (AXIS2-2635) Exception in XML serialization causes malformed/corrupted response

Posted by "Srinath Perera (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AXIS2-2635?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Srinath Perera updated AXIS2-2635:
----------------------------------

    Priority: Blocker  (was: Major)

> Exception in XML serialization causes malformed/corrupted response
> ------------------------------------------------------------------
>
>                 Key: AXIS2-2635
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2635
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.2, 1.1.1
>         Environment: Windows Vista, Tomcat 5.5.20, JDK 1.5.0_10
>            Reporter: Alan Xu
>            Assignee: Glen Daniels
>            Priority: Blocker
>
> Hi there,
> We have a simple SOAP layer that returns data pulled from the DB using Axis.  Nothing special here.
> In our testing, one of the objects happened to have an invalid XML 1.0 character (0x10) in its description field.  As it's not an application Fault (our application currently doesn't check for it.  It no doubt should, obviously), Axis2 wasn't aware of it until it's notified by the Woodstox BufferingXMLWriter of an invalid character (through IOException).  Axis2 caught the exception (at , and raised an AxisFault.  It then proceeded to send the Fault as its own message (envelope) back to the client.  All is well, except that Axis2 was in the middle of writing out response provided by the business application.  That led to a corrupted byte stream that contained a partial, not well-formed envelope, followed immediately by the Fault envelope.  Something to the effect of a purging (not flushing) to clear the output stream before sending out the Fault message would seem desirable.
> It may not be so bad if the client receives such a corrupted stream, and throws some sort of error.  The Fault message becomes meaningless, obviously, which isn't great either.  But, what's worse is that the Axis2 client (ServiceClient.sendReceive) actually was able to parse the corrupted byte stream, and somehow considered the Fault message be the content of the last XML element that contained the invalid character.  Now, that's really bad.
> This may have been logged in JIRA, but I couldn't seem to find it.
> -Alan
> Stack track of the exception caught by Axis2 during serialization:
>  com.ctc.wstx.exc.WstxIOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:520)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.writeOutput(OMTextImpl.java:209)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerializeLocal(OMTextImpl.java:368)
> 	at org.apache.axiom.om.impl.llom.OMTextImpl.internalSerialize(OMTextImpl.java:197)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:766)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:564)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.internalSerialize(OMElementImpl.java:750)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.internalSerialize(OMSourcedElementImpl.java:551)
> 	at org.apache.axiom.om.impl.llom.OMSourcedElementImpl.serialize(OMSourcedElementImpl.java:592)
> 	at org.apache.axiom.om.impl.llom.OMElementImpl.toString(OMElementImpl.java:907)
> 	... 30 more
> Caused by: java.io.IOException: Invalid white space character (0x10) in text to output
> 	at com.ctc.wstx.sw.XmlWriter.throwInvalidChar(XmlWriter.java:545)
> 	at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:453)
> 	at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:518)
> 	... 43 more
> This is the call stack from Eclipse debugger:
> CoyoteOutputStream.write(byte[], int, int) line: 88	
> UTF8Writer.flush() line: 96	
> BufferingXmlWriter.flush() line: 214	
> SimpleNsStreamWriter(BaseStreamWriter).flush() line: 311	
> MTOMXMLStreamWriter.flush() line: 115	
> SOAPEnvelopeImpl(OMNodeImpl).serializeAndConsume(OutputStream, OMOutputFormat) line: 419	
> SOAPMessageFormatter.writeTo(MessageContext, OMOutputFormat, OutputStream, boolean) line: 55	
> CommonsHTTPTransportSender.sendUsingOutputStream(MessageContext, OMOutputFormat) line: 275	
> CommonsHTTPTransportSender.invoke(MessageContext) line: 203	
> AxisEngine.sendFault(MessageContext) line: 533	
> AxisServlet.handleFault(MessageContext, OutputStream, AxisFault) line: 393	
> AxisServlet.processAxisFault(MessageContext, HttpServletResponse, OutputStream, AxisFault) line: 355	
> AxisServlet.doPost(HttpServletRequest, HttpServletResponse) line: 152	
> AxisServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 709	
> AxisServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 802	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 252	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> HibernateFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 95	
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 202	
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 173	
> StandardWrapperValve.invoke(Request, Response) line: 213	
> StandardContextValve.invoke(Request, Response) line: 178	
> StandardHostValve.invoke(Request, Response) line: 126	
> ErrorReportValve.invoke(Request, Response) line: 105	
> FastCommonAccessLogValve.invoke(Request, Response) line: 495	
> StandardEngineValve.invoke(Request, Response) line: 107	
> CoyoteAdapter.service(Request, Response) line: 148	
> Http11Processor.process(InputStream, OutputStream) line: 869	
> Http11Protocol$JmxHttp11ConnectionHandler(Http11BaseProtocol$Http11ConnectionHandler).processConnection(TcpConnection, Object[]) line: 664	
> PoolTcpEndpoint.processSocket(Socket, TcpConnection, Object[]) line: 527	
> LeaderFollowerWorkerThread.runIt(Object[]) line: 80	
> ThreadPool$ControlRunnable.run() line: 684	
> ThreadWithAttributes(Thread).run() line: 595	
> What got sent over the wire back to the client:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"><xml version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope>
> What the client (Axis2 ServiceClient) thought it was getting:
> <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns2:getSKUListResponse xmlns:ns2="http://mds.adserver.massive.com/xsd"><ns2:record><s41:createdOn xmlns:s41="http://types.mds.adserver.massive.com/">2005-09-20T19:56:21.000Z</s41:createdOn><s42:description xmlns:s42="http://types.mds.adserver.massive.com/">x</s42:description><s43:id xmlns:s43="http://types.mds.adserver.massive.com/">51</s43:id><s44:modifiedOn xmlns:s44="http://types.mds.adserver.massive.com/">2005-09-23T17:51:37.000Z</s44:modifiedOn><s45:name xmlns:s45="http://types.mds.adserver.massive.com/">EveryoneSKU</s45:name><s46:enabled xmlns:s46="http://types.mds.adserver.massive.com/">true</s46:enabled></ns2:record><ns2:record><s47:createdOn xmlns:s47="http://types.mds.adserver.massive.com/">2005-09-20T19:55:23.000Z</s47:createdOn><s48:description xmlns:s48="http://types.mds.adserver.massive.com/"> version='1.0' encoding='UTF-8'?><soapenv:Envelope><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Invalid white space character (0x10) in text to output</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope></s48:description></ns2:record></ns2:getSKUListResponse></soapenv:Body>

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


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org