[
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