Thank you Andreas,

Any suggestion on how to deal with this while we wait for the next release?

On Sat, Nov 20, 2021, 8:38 AM Andreas Veithen-Knowles <
andreas.veit...@gmail.com> wrote:

> It's not a problem with the parser configuration, but a bug in the
> implementation of the getElementText method of the XMLStreamReader returned
> by getXMLStreamReaderWithoutCaching. This is fixed by
> https://github.com/apache/ws-axiom/commit/f8eb657ee0c9ee0fd4754ccdc6c96da20dc6de4d
> .
>
> Andreas
>
> On Fri, Nov 19, 2021 at 5:06 PM joey fedor <joeyfe...@gmail.com> wrote:
>
>> Hi,
>>
>> Ignore this if it is a duplicate, It seemed to be undeliverable on my
>> other email.
>>
>> Recently we updated AXIS2 from version 1.7.9 to version 1.8.0. After
>> running our server we quickly found some adverse behavior from the update.
>> Our clients will send a soap envelope to the server with several fields. If
>> one of these fields is wrapped in a CDATA tag it gets parsed as an empty
>> string.
>>
>>
>> *For example:*
>> <soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/
>>                   xmlns:web=http://testsite.partner.inbound>
>>     <soapenv:Header/>
>>     <soapenv:Body>
>>         <web:upload>
>>
>>             <!--Optional:-->
>>             <web:username>username</web:username>
>>
>>             <!--Optional:-->
>>             <web:password>password</web:password>
>>
>>             <!--Optional:-->
>>             <web:data><![CDATA[TestCdata]]></web:data>
>>
>>         </web:upload>
>>     </soapenv:Body>
>> </soapenv:Envelope>
>>
>>
>> *Code generated using wsdl2java:*
>> XMLStreamReader parser =
>> root.getBody().getFirstElement().getXMLStreamReaderWithoutCaching();
>>
>> Upload u = Upload.Factory.parse(parser);
>>
>> String username = u.getUsername());
>> String password = u.getPassword());
>> String data = u.getData());
>>
>>
>>
>> *our expected results for each variable is:*username =  “username”
>> password = “password”
>> data = “TestCdata”
>>
>>
>> *but we are getting the following:*username =  “username”
>> password = “password”
>> data = “”
>>
>> After some digging this appears to be due to a change in the way that the
>> newer version of axiom handles preserving Cdata as well as its change in
>> default coalescing. I have been reading through the axiom userguide with
>> the recommendation of changing javax.xml.stream.isCoalescing=true (ive
>> tried false as well), but its seems to have no effect.
>>
>> Am I missing something here or is CDATA not something that Axis2 is able
>> to handle as of 1.8.0 ?
>>
>> Thank you,
>> Joey
>>
>

Reply via email to