axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Iwan Tomlow" <iwan.tom...@seagha.com>
Subject RE: Crash in XercesHandler.cpp with & in response
Date Mon, 15 May 2006 15:41:16 GMT
Hm, sorry I didn't make this clear enough: when looking at the data over
the wire, the ampersand is escaped correctly.
The webservice is deployed with axis-java, so no problems there. My
example should read <name>BOOT &amp; BUTEIJN</name>.
The &amp; was already resolved by xerces when I copy/pasted the value to
this e-mail, sorry for the confusion.

So Xerces parser has no problems at all, but there seems to be a bug in
the XercesHandler implementation in Axis.
Btw, I have the problem with both Xerces 2.2.0 (as included in axis 1.5
release), and also when I build Axis 1.5 myself linked with Xerces
2.7.0.

I have not been able to use the 1.6 nightly build yet, and I would
rather be able to quickly fix the production problem with a 1.5 patch
first. 

Regards,
Iwan

-----Original Message-----
From: Adrian Dick [mailto:adrian.dick@uk.ibm.com] 
Sent: maandag 15 mei 2006 17:20
To: Apache AXIS C User List
Subject: Re: Crash in XercesHandler.cpp with & in response

Hi,


Under the SOAP (and underlying XML) standards the ampersand character is
reserved, so you are not permitted to use it within data.
You will need to ensure any occurances are correctly encoded   --- ie:
'&'
becomes "&amp;".

It looks quite likely the Xerces Parser is failing when it hits this
invalid use of '&'.

How is this XML data being produced?   Are you using xsd:any -- in which
case you'll need to ensure this encoding takes place -- or are you
seeing an error in the Axis serialization code, where this should be
taking place on your behalf.

Are you in a position to test if this problem is still present with the
latest Axis 1.6 nightly builds?

Regards,
Adrian
_______________________________________
Adrian Dick (adrian.dick@uk.ibm.com)


"Iwan Tomlow" <iwan.tomlow@seagha.com> wrote on 15/05/2006 13:34:04:

> Hi all,
>
> I'm using the Axis C++ 1.5 in a production project, and we are 
> experiencing problems when the response from the webservice contains 
> ampersands in the xml-data, like <name>BOOT & BUTEIJN</name>.
>
> The generated Axis-client stub crashes (with 'Invalid Address 
> specified to RtlFreeHeap' in MCVC6.0 debugger) on the following code 
> in XercesHandler::characters
> >>>   free(const_cast <char*> (cp_PreviousNameOrValue));
>    free(cp_CurrentNameOrValue);
>
> I found a jira-issue (AXISCPP-825) that seems to address this issue, 
> but the reported fix (change free to delete[]) does not work for me, 
> the result is the same.
>
> Does anyone have this issue, any hints?
> Strange thing: it appears everything works fine if a point my 
> XMLParser in axiscpp.conf to the debug-library 'AxisXMLParser_D.dll' 
> instead of the release-build, but I'm afraid that is just a
coincidence.
>
> Any help appreciated.
>
> Kind regards,
> Iwan Tomlow


Mime
View raw message