You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Renaud Bruyeron (JIRA)" <ji...@apache.org> on 2006/10/26 16:56:02 UTC

[jira] Commented: (SM-722) ExtendedXMLStreamReader strips whitespaces, which breaks servicemix-http when a SOAP invocation contains whitespace nodes

    [ https://issues.apache.org/activemq/browse/SM-722?page=comments#action_37286 ] 
            
Renaud Bruyeron commented on SM-722:
------------------------------------

Sorry about this mess, I think jira saw something special in the code :)
Here's the code again:
{code:title=org.apache.servicemix.jbi.jaxp.ExtendedXMLStreamReader}
    public int nextTag() throws XMLStreamException {
    	int eventType = next();
    	 while((eventType == XMLStreamConstants.CHARACTERS && isWhiteSpace()) // skip whitespace
	    	 || (eventType == XMLStreamConstants.CDATA && isWhiteSpace()) 
	    	 // skip whitespace
	    	 || eventType == XMLStreamConstants.SPACE
	    	 || eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
	    	 || eventType == XMLStreamConstants.COMMENT
	    	 ) {
	    	 eventType = next();
    	 }
    	 if (eventType != XMLStreamConstants.START_ELEMENT && eventType != XMLStreamConstants.END_ELEMENT) {
    	 	throw new XMLStreamException("expected start or end tag", getLocation());
    	 }
    	 return eventType;
    }
{code}

> ExtendedXMLStreamReader strips whitespaces, which breaks servicemix-http when a SOAP invocation contains whitespace nodes
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SM-722
>                 URL: https://issues.apache.org/activemq/browse/SM-722
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-core
>    Affects Versions: 3.0
>            Reporter: Renaud Bruyeron
>             Fix For: 3.0.1
>
>
> The problem is in the code below in ExtendedXMLStreamReader, which is used by SoapMarshaler to extract the SOAP message from a http invocation, and put it in a NormalizedMessage.
> I have a SOAP message that has things like this: <text>  </text>. The whitespace is significant, and should not be trimmed, yet the message comes out as <text/>.
> Is there a reason for explicitely doing this?
>     public int nextTag() throws XMLStreamException {
>     	int eventType = next();
>     	 while((eventType == XMLStreamConstants.CHARACTERS && isWhiteSpace()) // skip whitespace
> 	    	 || (eventType == XMLStreamConstants.CDATA && isWhiteSpace()) 
> 	    	 // skip whitespace
> 	    	 || eventType == XMLStreamConstants.SPACE
> 	    	 || eventType == XMLStreamConstants.PROCESSING_INSTRUCTION
> 	    	 || eventType == XMLStreamConstants.COMMENT
> 	    	 ) {
> 	    	 eventType = next();
>     	 }
>     	 if (eventType != XMLStreamConstants.START_ELEMENT && eventType != XMLStreamConstants.END_ELEMENT) {
>     	 	throw new XMLStreamException("expected start or end tag", getLocation());
>     	 }
>     	 return eventType;
>     }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira