The following comment has been added to this issue:
Author: Fred Preston
Created: Thu, 16 Sep 2004 7:25 AM
Body:
When parsing the 78th infos block, the parser crashes as follows:-
+-------------------------------------------------------------------+
| Unhandled exception in AxisBench.exe (KERNEL32.DLL):0xE06D7363: |
| Microsoft C++ Exception. |
+-------------------------------------------------------------------+
KERNEL32! 7c57e592()
AXISTRANSPORT_D! 00398db9()
AXISTRANSPORT_D! 003828a8()
AXISXMLPARSER_D! 0032453e()
xercesc_2_2::XMLReader::refreshRawBuffer() line 1547 + 46 bytes
xercesc_2_2::XMLReader::xcodeMoreChars(unsigned short * const 0x00ffe5e4, unsigned
char * const 0x010065e8, const unsigned int 16384) line 1585
xercesc_2_2::XMLReader::refreshCharBuffer() line 530 + 42 bytes
xercesc_2_2::XMLReader::getName(xercesc_2_2::XMLBuffer & {...}, const unsigned char 0)
line 657 + 8 bytes
xercesc_2_2::ReaderMgr::getName(xercesc_2_2::XMLBuffer & {...}) line 387
xercesc_2_2::IGXMLScanner::scanStartTagNS(unsigned char & 1) line 1934 + 27 bytes
xercesc_2_2::IGXMLScanner::scanNext(xercesc_2_2::XMLPScanToken & {...}) line 368
xercesc_2_2::SAX2XMLReaderImpl::parseNext(xercesc_2_2::XMLPScanToken & {...}) line 651
AXISXMLPARSER_D! 0032c215()
axiscpp::SoapDeSerializer::getElementAsString(axiscpp::SoapDeSerializer * const
0x002f8ab0, const char * 0x00438680 `string', const char * 0x00000000) line 2433 + 21
bytes
Axis_DeSerialize_BenchBasicDataType(BenchBasicDataType * 0x01207e0c,
axiscpp::IWrapperSoapDeSerializer * 0x002f8ab0) line 48 + 21 bytes
axiscpp::SoapDeSerializer::getCmplxArray(axiscpp::SoapDeSerializer * const 0x002f8ab0,
void * 0x00401451 Axis_DeSerialize_BenchBasicDataType(class BenchBasicDataType *,class
axiscpp::IWrapperSoapDeSerializer *), void * 0x004011ea
Axis_Create_BenchBasicDataType(class BenchBasicDataType *,bool,int), void * ...) line
587 + 13 bytes
Axis_DeSerialize_BenchDataType(BenchDataType * 0x00311000,
axiscpp::IWrapperSoapDeSerializer * 0x002f8ab0) line 46 + 50 bytes
axiscpp::SoapDeSerializer::getCmplxObject(axiscpp::SoapDeSerializer * const
0x002f8ab0, void * 0x004012b2 Axis_DeSerialize_BenchDataType(class BenchDataType
*,class axiscpp::IWrapperSoapDeSerializer *), void * 0x0040102d
Axis_Create_BenchDataType(class BenchDataType *,bool,int), void * 0x004010b4
Axis_Delete_BenchDataType(class BenchDataType *,bool,int), const char * ...) line 1106
axiscpp::Call::getCmplxObject(axiscpp::Call * const 0x002f26d8, void * 0x004012b2
Axis_DeSerialize_BenchDataType(class BenchDataType *,class
axiscpp::IWrapperSoapDeSerializer *), void * 0x0040102d
Axis_Create_BenchDataType(class BenchDataType *,bool,int), void * 0x004010b4
Axis_Delete_BenchDataType(class BenchDataType *,bool,int), const char * 0x00438200
`string', ...) line 601 + 4
AxisBench::doBenchRequest(BenchDataType * 0x003139e0) line 59 + 45 bytes
main(int 1, char * * 0x003117a0) line 102 + 12 bytes
mainCRTStartup() line 206 + 25 bytes
And the reason it runs out of data is because there is no space left in the XMLByte
fRawByteBuf[kRawBufSize]; buffer. When kRawBufSize is increased, from 16 * 1024 to
160 * 1024 all is well.
---------------------------------------------------------------------
View this comment:
http://issues.apache.org/jira/browse/XERCESC-1271?page=comments#action_53142
---------------------------------------------------------------------
View the issue:
http://issues.apache.org/jira/browse/XERCESC-1271
Here is an overview of the issue:
---------------------------------------------------------------------
Key: XERCESC-1271
Summary: Problems parsing large XML strings
Type: Bug
Status: Unassigned
Priority: Major
Project: Xerces-C++
Assignee:
Reporter: Fred Preston
Created: Fri, 10 Sep 2004 5:00 AM
Updated: Thu, 16 Sep 2004 7:25 AM
Environment: n/a
Description:
When testing with large XML strings, xerces falls over when the size of the XML
exceeds the 16 * 1024 limit that is hardwired into the XMLReader.hpp file
(375:kCharBufSize = 16 * 1024). Would it be possible to dynamically allocate
space for this and other buffers (fCharBuf and fCharSizeBuf) and then to extend them
using the realloc function when necessary. This also applies to the fRawByteBuf
buffer that is also limited in size.
---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]