RE: Crash in XercesHandler.cpp with & in response
Excellent news!!! When the final release becomes available in the next few days, you may wish to consider upgrading to Axis C++ 1.6 , as a number of memory issues (like this one) and leaks have been resolved since 1.5. Adrian ___ Adrian Dick ([EMAIL PROTECTED]) "Iwan Tomlow" <[EMAIL PROTECTED]> wrote on 16/05/2006 15:28:12: > Hi all, > > Just letting you know I think the problem is solved! > I was trying to get the 1.6 nightly build to work, but kept running into > other problems. > > However, I took a glance at the XercesHandler.cpp included in the 1.6, > and it seems the part that was causing me problems has been changed > significantly (more then described in AXISCPP-825). > > I applied this change to my 1.5 sources, rebuild AxisXmlParser.xml, and > don't get the crash anymore on any machine! > Just for reference, the code for the 'PreviousNameOrValue' case in > XercesHandler::characters was changed to: > > // The following code is necessary as it is important to get the correct > heap > // (i.e the one that XMLString is using!) when creating a memory object > to put > // back into 'm_pNextElement->m_pchNameOrValue'. By using the XMLString > // function, we can ensure that only the memory belonging to (and thus > able to > // destroy) the same segment as XMLString is used. If you don't > understand > // what is going on, don't change it! > if (cp_PreviousNameOrValue) > { > // Get a pointer to the transcoded character. > char * pTransChar = XMLString::transcode( chars); > // Create a dummy string and populate. > char * psDummy = new char[ strlen( > m_pNextElement->m_pchNameOrValue) + > > strlen( pTransChar) + 1]; > strcpy( psDummy, m_pNextElement->m_pchNameOrValue); > strcat( psDummy, pTransChar); > // Create pointer to new Name or Value string. > char * pNewNameOrValue = XMLString::replicate( > psDummy); > // Delete the old Name and Value string. > XMLString::release( const_cast > (&(m_pCurrElement->m_pchNameOrValue))); > // Assign the new value of Name or Value string. > m_pNextElement->m_pchNameOrValue = pNewNameOrValue; > // Clean up. > delete [] psDummy; > XMLString::release( &pTransChar); > } > > Regards, > Iwan > > -Original Message- > From: Iwan Tomlow [mailto:[EMAIL PROTECTED] > Sent: dinsdag 16 mei 2006 15:13 > To: Apache AXIS C User List > Subject: RE: Crash in XercesHandler.cpp with & in response > > Ah, that's more difficult, since the webservice is only made available > over HTTPS, so I can't just drop tcpmon in between. > The xml-data is actually taken from the log the server has written just > before posting the reply. > > I really think it's more of a memory issue as described in AXISCPP-825, > but that fix alone doesn't seem enough. > I've been experimenting some more, and it doesn't always crash: in debug > mode it works fine most of the time; on Windows XP the release mode > crashes sometimes; on Windows 2000 however, the release version crashes > consistently - and the production client-app must run on a Windows 2000 > touchscreen terminal :( > > Regards, > Iwan > > -Original Message- > From: Adrian Dick [mailto:[EMAIL PROTECTED] > Sent: dinsdag 16 mei 2006 14:55 > To: Apache AXIS C User List > Subject: RE: Crash in XercesHandler.cpp with & in response > > Hi, > > Ok, I can't see anything obviously wrong with your SOAP message ... I > wouldn't expect the & to cause problems, as we have a passing > testcase to check the correct encoding/decoding of this, and looking > through the SVN history the code which handles encoding/decoding hasn't > been touched since before the release of 1.5. > > I'm wondering if perhaps you're hitting a problem with the > transport/parser interaction. > I should have asked before, can you also include the HTTP headers, etc. > so I can check if there are any content/chunk length issues here. > > Regards, > Adrian > ___ > Adrian Dick ([EMAIL PROTECTED]) > > > "Iwan Tomlow" <[EMAIL PROTECTED]> wrote on 16/05/2006 10:01:03: > > > Sure, this is the on-the-wire message (in which I had to replace some > > personal data for confidentiality). > > The & in causes XercesHandler to parse the data in > > 2 steps, and the 2nd call to XercesHandler::characters is causing > > problems in the use of 'cp_PreviousNameOrValue'. > > > > Thanks for your assistan
RE: Crash in XercesHandler.cpp with & in response
Hi all, Just letting you know I think the problem is solved! I was trying to get the 1.6 nightly build to work, but kept running into other problems. However, I took a glance at the XercesHandler.cpp included in the 1.6, and it seems the part that was causing me problems has been changed significantly (more then described in AXISCPP-825). I applied this change to my 1.5 sources, rebuild AxisXmlParser.xml, and don't get the crash anymore on any machine! Just for reference, the code for the 'PreviousNameOrValue' case in XercesHandler::characters was changed to: // The following code is necessary as it is important to get the correct heap // (i.e the one that XMLString is using!) when creating a memory object to put // back into 'm_pNextElement->m_pchNameOrValue'. By using the XMLString // function, we can ensure that only the memory belonging to (and thus able to // destroy) the same segment as XMLString is used. If you don't understand // what is going on, don't change it! if (cp_PreviousNameOrValue) { // Get a pointer to the transcoded character. char * pTransChar = XMLString::transcode( chars); // Create a dummy string and populate. char * psDummy = new char[ strlen( m_pNextElement->m_pchNameOrValue) + strlen( pTransChar) + 1]; strcpy( psDummy, m_pNextElement->m_pchNameOrValue); strcat( psDummy, pTransChar); // Create pointer to new Name or Value string. char * pNewNameOrValue = XMLString::replicate( psDummy); // Delete the old Name and Value string. XMLString::release( const_cast (&(m_pCurrElement->m_pchNameOrValue))); // Assign the new value of Name or Value string. m_pNextElement->m_pchNameOrValue = pNewNameOrValue; // Clean up. delete [] psDummy; XMLString::release( &pTransChar); } Regards, Iwan -Original Message- From: Iwan Tomlow [mailto:[EMAIL PROTECTED] Sent: dinsdag 16 mei 2006 15:13 To: Apache AXIS C User List Subject: RE: Crash in XercesHandler.cpp with & in response Ah, that's more difficult, since the webservice is only made available over HTTPS, so I can't just drop tcpmon in between. The xml-data is actually taken from the log the server has written just before posting the reply. I really think it's more of a memory issue as described in AXISCPP-825, but that fix alone doesn't seem enough. I've been experimenting some more, and it doesn't always crash: in debug mode it works fine most of the time; on Windows XP the release mode crashes sometimes; on Windows 2000 however, the release version crashes consistently - and the production client-app must run on a Windows 2000 touchscreen terminal :( Regards, Iwan -Original Message- From: Adrian Dick [mailto:[EMAIL PROTECTED] Sent: dinsdag 16 mei 2006 14:55 To: Apache AXIS C User List Subject: RE: Crash in XercesHandler.cpp with & in response Hi, Ok, I can't see anything obviously wrong with your SOAP message ... I wouldn't expect the & to cause problems, as we have a passing testcase to check the correct encoding/decoding of this, and looking through the SVN history the code which handles encoding/decoding hasn't been touched since before the release of 1.5. I'm wondering if perhaps you're hitting a problem with the transport/parser interaction. I should have asked before, can you also include the HTTP headers, etc. so I can check if there are any content/chunk length issues here. Regards, Adrian ___ Adrian Dick ([EMAIL PROTECTED]) "Iwan Tomlow" <[EMAIL PROTECTED]> wrote on 16/05/2006 10:01:03: > Sure, this is the on-the-wire message (in which I had to replace some > personal data for confidentiality). > The & in causes XercesHandler to parse the data in > 2 steps, and the 2nd call to XercesHandler::characters is causing > problems in the use of 'cp_PreviousNameOrValue'. > > Thanks for your assistance, > Iwan > > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; > xmlns:xsd="http://www.w3.org/2001/XMLSchema"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> > > http://thenamespace";> > 12345 104 > 03/11/2008 > 0 > 0 > 01/01/1975 > SOMEWHERE > XXBOOT & > BUTEIJN > 1234/999.999.999 em > ployerPhone> > THERE > 9999AA > FIRST > 1 > CITY > XX > STREET 11 > AA > > LAST > XX > > xsi:nil="true"/> xsi:nil="true"/> > > > -Original Message- > From: Adrian Dick [mailto:[EMAIL PROTECTED] > Sent: dinsdag 16 mei 2006 10:21
RE: Crash in XercesHandler.cpp with & in response
Ah, that's more difficult, since the webservice is only made available over HTTPS, so I can't just drop tcpmon in between. The xml-data is actually taken from the log the server has written just before posting the reply. I really think it's more of a memory issue as described in AXISCPP-825, but that fix alone doesn't seem enough. I've been experimenting some more, and it doesn't always crash: in debug mode it works fine most of the time; on Windows XP the release mode crashes sometimes; on Windows 2000 however, the release version crashes consistently - and the production client-app must run on a Windows 2000 touchscreen terminal :( Regards, Iwan -Original Message- From: Adrian Dick [mailto:[EMAIL PROTECTED] Sent: dinsdag 16 mei 2006 14:55 To: Apache AXIS C User List Subject: RE: Crash in XercesHandler.cpp with & in response Hi, Ok, I can't see anything obviously wrong with your SOAP message ... I wouldn't expect the & to cause problems, as we have a passing testcase to check the correct encoding/decoding of this, and looking through the SVN history the code which handles encoding/decoding hasn't been touched since before the release of 1.5. I'm wondering if perhaps you're hitting a problem with the transport/parser interaction. I should have asked before, can you also include the HTTP headers, etc. so I can check if there are any content/chunk length issues here. Regards, Adrian ___ Adrian Dick ([EMAIL PROTECTED]) "Iwan Tomlow" <[EMAIL PROTECTED]> wrote on 16/05/2006 10:01:03: > Sure, this is the on-the-wire message (in which I had to replace some > personal data for confidentiality). > The & in causes XercesHandler to parse the data in > 2 steps, and the 2nd call to XercesHandler::characters is causing > problems in the use of 'cp_PreviousNameOrValue'. > > Thanks for your assistance, > Iwan > > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; > xmlns:xsd="http://www.w3.org/2001/XMLSchema"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> > > http://thenamespace";> > 12345 104 > 03/11/2008 > 0 > 0 > 01/01/1975 > SOMEWHERE > XXBOOT & > BUTEIJN > 1234/999.999.999 em > ployerPhone> > THERE > AA > FIRST > 1 > CITY > XX > STREET 11 > 9999AA > > LAST > XX > 9999 > xsi:nil="true"/> xsi:nil="true"/> > > > -Original Message- > From: Adrian Dick [mailto:[EMAIL PROTECTED] > Sent: dinsdag 16 mei 2006 10:21 > To: Apache AXIS C User List > Subject: RE: Crash in XercesHandler.cpp with & in response > > Hi, > > As we've now excluded the illegal use of '&', it could be related to > how the SOAP message is being received, I know of some bugs fixed in > 1.6 which could cause similar problems to those you describe. > Is it possible for you to attach the "on-the-wire" SOAP/HTTP message > causing this problem? > > Thanks, > Adrian > ___ > Adrian Dick ([EMAIL PROTECTED]) > > > "Iwan Tomlow" <[EMAIL PROTECTED]> wrote on 15/05/2006 16:41:16: > > > 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 BOOT & BUTEIJN. > > 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 "&". > &
RE: Crash in XercesHandler.cpp with & in response
Hi, Ok, I can't see anything obviously wrong with your SOAP message ... I wouldn't expect the & to cause problems, as we have a passing testcase to check the correct encoding/decoding of this, and looking through the SVN history the code which handles encoding/decoding hasn't been touched since before the release of 1.5. I'm wondering if perhaps you're hitting a problem with the transport/parser interaction. I should have asked before, can you also include the HTTP headers, etc. so I can check if there are any content/chunk length issues here. Regards, Adrian ___ Adrian Dick ([EMAIL PROTECTED]) "Iwan Tomlow" <[EMAIL PROTECTED]> wrote on 16/05/2006 10:01:03: > Sure, this is the on-the-wire message (in which I had to replace some > personal data for confidentiality). > The & in causes XercesHandler to parse the data in 2 > steps, and the 2nd call to XercesHandler::characters is causing problems > in the use of 'cp_PreviousNameOrValue'. > > Thanks for your assistance, > Iwan > > > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; > xmlns:xsd="http://www.w3.org/2001/XMLSchema"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> > > http://thenamespace";> > > 12345 > 104 > 03/11/2008 > 0 > 0 > 01/01/1975 > SOMEWHERE > XXBOOT & > BUTEIJN > 1234/999.999.999 ployerPhone> > THERE > AA > FIRST > 1 > CITY > XX > STREET 11 > AA > > LAST > XX > > xsi:nil="true"/> xsi:nil="true"/> > > > > > > -Original Message- > From: Adrian Dick [mailto:[EMAIL PROTECTED] > Sent: dinsdag 16 mei 2006 10:21 > To: Apache AXIS C User List > Subject: RE: Crash in XercesHandler.cpp with & in response > > Hi, > > As we've now excluded the illegal use of '&', it could be related to how > the SOAP message is being received, I know of some bugs fixed in 1.6 > which could cause similar problems to those you describe. > Is it possible for you to attach the "on-the-wire" SOAP/HTTP message > causing this problem? > > Thanks, > Adrian > ___ > Adrian Dick ([EMAIL PROTECTED]) > > > "Iwan Tomlow" <[EMAIL PROTECTED]> wrote on 15/05/2006 16:41:16: > > > 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 BOOT & BUTEIJN. > > 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 A
RE: Crash in XercesHandler.cpp with & in response
Sure, this is the on-the-wire message (in which I had to replace some personal data for confidentiality). The & in causes XercesHandler to parse the data in 2 steps, and the 2nd call to XercesHandler::characters is causing problems in the use of 'cp_PreviousNameOrValue'. Thanks for your assistance, Iwan http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> http://thenamespace";> 12345 104 03/11/2008 0 0 01/01/1975 SOMEWHERE XXBOOT & BUTEIJN 1234/999.999.999 THERE AA FIRST 1 CITY XX STREET 11 AA LAST XX -Original Message- From: Adrian Dick [mailto:[EMAIL PROTECTED] Sent: dinsdag 16 mei 2006 10:21 To: Apache AXIS C User List Subject: RE: Crash in XercesHandler.cpp with & in response Hi, As we've now excluded the illegal use of '&', it could be related to how the SOAP message is being received, I know of some bugs fixed in 1.6 which could cause similar problems to those you describe. Is it possible for you to attach the "on-the-wire" SOAP/HTTP message causing this problem? Thanks, Adrian ___ Adrian Dick ([EMAIL PROTECTED]) "Iwan Tomlow" <[EMAIL PROTECTED]> wrote on 15/05/2006 16:41:16: > 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 BOOT & BUTEIJN. > 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 BOOT & BUTEIJN. > > > > 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 (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 >
RE: Crash in XercesHandler.cpp with & in response
Hi, As we've now excluded the illegal use of '&', it could be related to how the SOAP message is being received, I know of some bugs fixed in 1.6 which could cause similar problems to those you describe. Is it possible for you to attach the "on-the-wire" SOAP/HTTP message causing this problem? Thanks, Adrian ___ Adrian Dick ([EMAIL PROTECTED]) "Iwan Tomlow" <[EMAIL PROTECTED]> wrote on 15/05/2006 16:41:16: > 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 BOOT & BUTEIJN. > 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 BOOT & BUTEIJN. > > > > 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 (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 >
RE: Crash in XercesHandler.cpp with & in response
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 BOOT & BUTEIJN. 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 BOOT & BUTEIJN. > > 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 (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
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 BOOT & BUTEIJN. > > 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 (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