RE: Crash in XercesHandler.cpp with & in response

2006-05-16 Thread Adrian Dick
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

2006-05-16 Thread Iwan Tomlow
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

2006-05-16 Thread Iwan Tomlow
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

2006-05-16 Thread Adrian Dick
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

2006-05-16 Thread Iwan Tomlow
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

2006-05-16 Thread Adrian Dick
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

2006-05-15 Thread Iwan Tomlow
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

2006-05-15 Thread Adrian Dick
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