You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Guillaume Nodet (JIRA)" <ji...@apache.org> on 2008/10/07 10:04:53 UTC
[jira] Updated: (SM-1144) Error in writeDetails method when I need
return fault messages
[ https://issues.apache.org/activemq/browse/SM-1144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guillaume Nodet updated SM-1144:
--------------------------------
Fix Version/s: servicemix-shared-2008.01
> Error in writeDetails method when I need return fault messages
> --------------------------------------------------------------
>
> Key: SM-1144
> URL: https://issues.apache.org/activemq/browse/SM-1144
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-soap
> Affects Versions: 3.1.2
> Environment: Servicemix 3.1.2
> Reporter: Jorge RodrÃguez Pedrianes
> Assignee: Guillaume Nodet
> Priority: Critical
> Fix For: 3.2.1, 3.3, servicemix-shared-2008.01
>
>
> Hi!
> Today I chage version of servicemix 3.1-incubating to 3.1.2. But now I don't return in my service fault message.
> I see in SoapWriter class in writeDetails method that:
> {code:title=SoapWriter.java|borderStyle=solid}
> private void writeDetails(XMLStreamWriter writer, Source details) throws ParserConfigurationException,
> IOException, SAXException, TransformerException, XMLStreamException {
> SourceTransformer st = new SourceTransformer();
> DOMSource domDetails = st.toDOMSource(details);
> Node detailsNode = domDetails.getNode().getFirstChild();
> if ( SoapMarshaler.MULTIPLE_DETAILS_NODE_WRAPPER.equals(detailsNode.getNodeName()) ) {
> NodeList children = detailsNode.getChildNodes();
> for ( int i = 0; i < children.getLength(); i++ ) {
> Node node = children.item(i);
> if ( node.getNodeType() == Node.ELEMENT_NODE ) {
> XMLStreamReader reader = marshaler.getSourceTransformer().toXMLStreamReader(new DOMSource(node));
> XMLStreamHelper.copy(reader, writer);
> }
> }
> } else {
> XMLStreamReader reader = marshaler.getSourceTransformer().toXMLStreamReader(details); // ERROR
> XMLStreamHelper.copy(reader, writer);
> }
> }
> {code}
> The correct code are:
> {code:title=SoapWriter.java|borderStyle=solid}
> private void writeDetails(XMLStreamWriter writer, Source details) throws ParserConfigurationException,
> IOException, SAXException, TransformerException, XMLStreamException {
> SourceTransformer st = new SourceTransformer();
> DOMSource domDetails = st.toDOMSource(details);
> Node detailsNode = domDetails.getNode().getFirstChild();
> if ( SoapMarshaler.MULTIPLE_DETAILS_NODE_WRAPPER.equals(detailsNode.getNodeName()) ) {
> NodeList children = detailsNode.getChildNodes();
> for ( int i = 0; i < children.getLength(); i++ ) {
> Node node = children.item(i);
> if ( node.getNodeType() == Node.ELEMENT_NODE ) {
> XMLStreamReader reader = marshaler.getSourceTransformer().toXMLStreamReader(new DOMSource(node));
> XMLStreamHelper.copy(reader, writer);
> }
> }
> } else {
> XMLStreamReader reader = marshaler.getSourceTransformer().toXMLStreamReader(domDetails); // OK
> XMLStreamHelper.copy(reader, writer);
> }
> }
> {code}
> Because if details param is a StreamSource when I do "st.toDOMSource(details);" I read the stream and when I create XMLStreamReader this Stream its empty
> Thanks
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.