You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by "Daniel James Matthews (JIRA)" <ji...@apache.org> on 2011/04/11 18:38:05 UTC
[jira] [Commented] (AXIOM-357) org.apache.axiom.om.util.CopyUtils
throws NPE when used to copy a SOAPEnvelope containing a SOAP 1.1 SOAPFault
[ https://issues.apache.org/jira/browse/AXIOM-357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13018421#comment-13018421 ]
Daniel James Matthews commented on AXIOM-357:
---------------------------------------------
Andreas, the following method can be added to org.apache.axiom.om.util.CopyUtilsTest.java in axiom\modules\axiom-tests\src\test\java\org\apache\axiom\om\util...
public void testSoap11fault() throws Exception {
copyAndCheck(createEnvelope(getTestResource("soap/soap11/soap11fault.xml")), true);
}
This will show the bug.
A possible fix for the bug is to update the copySOAPFaultCode method in CopyUtils.java as follows...
private static void copySOAPFaultCode(SOAPFactory factory,
SOAPFault targetFault,
SOAPFaultCode sourceCode) {
SOAPFaultCode targetCode = factory.createSOAPFaultCode(targetFault);
copyTagData(sourceCode, targetCode);
if(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(factory.getSoapVersionURI())) {
targetCode.setText(sourceCode.getText());
} else {
// Create the Value
SOAPFaultValue sourceValue = sourceCode.getValue();
if(sourceValue != null) {
SOAPFaultValue targetValue = factory.createSOAPFaultValue(targetCode);
copyTagData(sourceValue, targetValue);
// There should only be a text node for the value, but in case there is more
Iterator i = sourceValue.getChildren();
while (i.hasNext()) {
OMNode node = (OMNode) i.next();
copy(factory, targetValue, node);
}
}
}
// Now get process the SubCode
SOAPFaultSubCode sourceSubCode = sourceCode.getSubCode();
if (sourceSubCode != null) {
copySOAPFaultSubCode(factory, targetCode, sourceSubCode);
}
}
> org.apache.axiom.om.util.CopyUtils throws NPE when used to copy a SOAPEnvelope containing a SOAP 1.1 SOAPFault
> --------------------------------------------------------------------------------------------------------------
>
> Key: AXIOM-357
> URL: https://issues.apache.org/jira/browse/AXIOM-357
> Project: Axiom
> Issue Type: Bug
> Environment: All
> Reporter: Daniel James Matthews
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> NPE when using CopyUtils.copy on a SOAPEnvelope containing a SOAP 1.1 SOAPFault.
> This is because the copySOAPFaultCode method assumes that the SOAPFaultCode has a Value child element, but that's only true for SOAP 1.2.
> In SOAP 1.1 the SOAPFault contains a text element, not a Value element.
> I have a patch available where I copy the text or Value based on the namespace of the SOAPFactory.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org