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 & BUTEIJN</name>. The & 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:[EMAIL PROTECTED] 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 "&". 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 ([EMAIL PROTECTED]) "Iwan Tomlow" <[EMAIL PROTECTED]> 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
