New Issues have been created: SM-249, SM-250. /jonathan
> -----Original Message----- > From: Guillaume Nodet [mailto:[EMAIL PROTECTED] > Sent: Tuesday, January 03, 2006 4:12 PM > To: [email protected] > Subject: Re: [servicemix-user] Problems with JSM flow and > SOAP messages > > > Yes please, and attach your patches. > Thanks a lot ! > > Guillaume Nodet > > [EMAIL PROTECTED] wrote: > > >Should I open a jira for this? One for the new feature in > >HttpSoapClientMarshaller, and another for the potential defect in > >SaajMarshaller? > > > >/jonathan > > > > > > > >>-----Original Message----- > >>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > >>Sent: Tuesday, January 03, 2006 4:06 PM > >>To: [email protected] > >>Subject: RE: [servicemix-user] Problems with JSM flow and > >>SOAP messages > >> > >> > >>The earlier submission had a possible NullPointerException > waiting to > >>happen; I've cleaned it up. The same is true of the current > >>SaajMarshaller.toNMS() method - a check should be performed > >>on the result of > >>parent.getAttributes() before any further action is taken, or a > >>NullPointerException may be raised. > >> > >>/jonathan > >> > >>Code Follows > >> > >> public void toNMS(NormalizedMessage normalizedMessage, > HttpMethod > >>method) throws Exception { > >> addNmsProperties(normalizedMessage, method); > >> String response = method.getResponseBodyAsString(); > >> Node node = sourceTransformer.toDOMNode(new > >>StringSource(response)); > >> CachedXPathAPI cachedXPathAPI = new CachedXPathAPI(); > >> NodeIterator iterator = > >>cachedXPathAPI.selectNodeIterator(node, > >> "/*/*[local-name()='Body']/*"); > >> Node root = iterator.nextNode(); > >> > >> /* > >> * Copy embedded namespaces from the envelope into the body, > >>similarly > >> * to the SaajMarshaller.toNMS() method. > >> */ > >> for (Node parent = root.getParentNode(); parent != > >>null; parent = > >>parent.getParentNode()) { > >> NamedNodeMap attributes = parent.getAttributes(); > >> if (attributes != null) { > >> for (int i = 0; i < attributes.getLength(); i++) { > >> Attr att = (Attr) attributes.item(i); > >> if (att.getName().startsWith("xmlns:") > >> && > >>root.getAttributes().getNamedItemNS(att.getNamespaceURI(), > >> att.getLocalName()) == null) { > >> if (root.getNodeType() == > Node.ELEMENT_NODE) { > >> ((Element) > >>root).setAttributeNS(att.getNamespaceURI(), > >> att.getName(), > >> att.getValue()); > >> } > >> } > >> } > >> } > >> } > >> > >> normalizedMessage.setContent(new DOMSource(root)); > >> } > >> > >> > >> > > > > > > > > >
