[ 
https://issues.apache.org/jira/browse/AXIS2C-796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12547974
 ] 

Bill Mitchell commented on AXIS2C-796:
--------------------------------------

When I tried to test this today, after waiting for other issues to be repaired 
in op_stax_builder.c, I discovered that the fix was lost, when rev 600441 was 
applied.  

> SOAP response message with leading XML comment is treated as invalid envelope
> -----------------------------------------------------------------------------
>
>                 Key: AXIS2C-796
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-796
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: xml/om
>    Affects Versions: 1.1.0
>         Environment: Windows XP, Visual Studio 2005
>            Reporter: Bill Mitchell
>            Assignee: Dinesh Premalal
>             Fix For: 1.2.0
>
>         Attachments: diff.txt
>
>
> In sending a SOAP request to a particular service, I receive a response of 
> the following form:
> <?xml version="1.0" encoding="UTF-8" ?> 
> <!-- SOAP 1.1 Message - Powered by Xcentrisityâ„¢ Frameware  --> 
> <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
> xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";>
> <env:Body>
> ...
> </env:Body>
> </env:Envelope>
> Unfortunately, when this response is received by Axis2C, it is diagnosed as 
> invalid, error 187, SOAP message does not contain a SOAP envelope element.  
> Stepping through the code reveals that axiom_stax_builder_create_om_comment() 
> treats a leading comment before the root node as discardable and returns a 
> null pointer. Then in axiom_stax_builder_next_with_token(), a null pointer 
> returned is treated as always being an error.  
> My suggested fix is that axiom_stax_builder_next_with_token() should complete 
> the comment element only if one is created, but should always return it as 
> valid and keep scanning.  In particular, the comment portion of the switch 
> statement that reads:
>     case AXIOM_XML_READER_COMMENT:
>         val = axiom_stax_builder_create_om_comment(om_builder, env);
>         if (!val)
>         {
>             return -1;
>         }
>         axiom_stax_builder_end_element(om_builder, env);
>         break;
> should read instead:
>     case AXIOM_XML_READER_COMMENT:
>         val = axiom_stax_builder_create_om_comment(om_builder, env);
>         if (val)
>         {
>             axiom_stax_builder_end_element(om_builder, env);
>         }
>         break;
> In my particular situation, I have verified that making this change allows 
> the returned SOAP response to be processed correctly.  I have not tested the 
> other case, of a malformed comment that runs off the document.  I hope that 
> the subsequent read for more tokens will terminate nicely when it finds the 
> document empty.  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to