SAX2 parse method starts parsing XML document and hangs
-------------------------------------------------------
Key: XERCESC-1511
URL: http://issues.apache.org/jira/browse/XERCESC-1511
Project: Xerces-C++
Type: Bug
Components: SAX/SAX2
Versions: 2.5.0
Environment: Xerces-C++ version number :- xerces-c_2_5_0-hpux_11-acc_a03
Platform :- HP-UX 11
Operating system and version number :- HP-UX Unix Version 11.0
Compiler and version number :- aCC compiler - HP aC++ Version A.03.37
Reporter: Sunil Ramchandra
Priority: Blocker
Xerces-C++ version number xerces-c_2_5_0-hpux_11-acc_a03
Platform HP-UX 11
Operating system and version number HP-UX Unix Version 11.0
Compiler and version number aCC compiler - HP aC++ Version A.03.37
The schema document has no issues and the the XML string also has no issues,
because both work well when i used ALTOVA tool for parsing.
The XML document (or excerpt) that failed
<?xml version="1.0" encoding="UTF-8"?><NumberManagerXML2.0
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="/opt/lnpsite/nimnm00/flat/schema/NMXMLInterface.xsd"><CreateSV><RequestHandleInfo
RequestHandle="1319"></RequestHandleInfo><TnInfo
STARTTN="1501502001" ENDTN="1501502001"></TnInfo><SVIDInfo
SVID="43774"></SVIDInfo><LRNInfo
LRN="4004000000"></LRNInfo><BlockHolderReturnInfo
BlockHolderReturnFlag=""></BlockHolderReturnInfo><SPIDInfo
SPID="SP00"></SPIDInfo><GTTDataInfo ClassDPC="222222222" ClassSSN="222"
ClassGTA="1" ClassTT="111" CnamDPC="222222222" CnamSSN="222" CnamTT="111"
CnamGTA="1" IsvmDPC="222222222" IsvmSSN="222" IsvmTT="111" IsvmGTA="1"
LidbDPC="222222222" LidbSSN="222" LidbTT="111" LidbGTA="1" WsmscDPC=""
WsmscSSN="" WsmscTT="" WsmscGTA=""></GTTDataInfo><LocationInfo
Location=""></LocationInfo><LocationTypeInfo
LocationType=""></LocationTypeInfo><BillingIdInfo
BillingId=""></BillingIdInfo><ActivationDateInfo
ActivationDate="2005-10-05"></ActivationDateInfo><ActivationTimeInfo
ActivationTime="15:43:46"></ActivationTimeInfo><NPACRegionInfo
NPACRegionId="1"></NPACRegionInfo><LNPTypeInfo
LNPTypeIndicator="0"></LNPTypeInfo><UpdateInfo
UpdateIndicator="1"></UpdateInfo><CreateDeleteInfo
CreateDeleteReason="0"></CreateDeleteInfo><ContaminateStatusInfo
ContaminateStatus="0"></ContaminateStatusInfo><MessageContext
Indicator="0"></MessageContext></CreateSV></NumberManagerXML2.0>
The C++ application code that failed
parser = (SAX2XMLReader*) XMLReaderFactory::createXMLReader();
parser->setContentHandler(this);
parser->setErrorHandler(this);
parser->setFeature(XMLUni::fgXercesSchema, true);
ofstream outfile;
RWCString msgFileName;
RWCString uniqName(tempnam("/tmp","XML_"));
msgFileName.append(uniqName);
msgFileName.append(LTime::now().asString("_%Y""%m""%d",RWZone::utc()));
msgFileName.append(LTime::now().asString("%H""%M""%S",RWZone::utc()));
msgFileName.append(".xml");
outfile.open (msgFileName, ofstream::out); ----> I am creating a
temporary xml file here
outfile<<XMLStringBuffer; ---> This string buffer has the XML string
mentioned above
outfile.close();
cout<<"I am here: abt to errorReset"<<endl;
this->resetErrors();
cout<<"I am here: abt to parse"<<msgFileName<<endl;
parser->parse(msgFileName); --> Sending the file to the parser (After
this i am able to see the start document method call in my logs, but after that
nothing)
cout<<"I am here: Done with parse - going to remove
file"<<msgFileName<<endl;
remove(msgFileName); --> i am removing the file
Whether you built the Xerces-C++ library yourself or used the binary
distribution - NO I sued the 2_5_7 libraries.
What happened
I am using the SAX2 parser to parse my XML files.
I dont use any threads here, its a single flow of events from parser creation
till the parsing of the xml file.
I observe that in my logs, once the XML string is created and sent to the piece
of code mentioned above. The parser hangs in the parse method.
As per its behaviour, it is supposed to call the "start document" "statrt
element" functions whihc are overloaded in my classes.
The last log statement that i see is the " start document " after that i dont
get anything. My application proceeds with other threads where i do socket
operations totally un-related to the XML logic or piece of code.
Here are the logs
TRACELOG_MSG : 10/05/05 09:56:51.236 : - XML string is being validated:[<?xml
version="1.0" encoding="UTF-8"?>
<NumberManagerXML2.0 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="/opt/lnpsite/nimnm00/flat/schema/NMXMLInterface.xsd"><CreateSV><RequestHandleInfo
RequestHandle="1319"></RequestHandleInfo><TnInfo STARTTN="1501502001"
ENDTN="1501502001"></TnInfo><SVIDInfo SVID="43774"></SVIDInfo><LRNInfo
LRN="4004000000"></LRNInfo><BlockHolderReturnInfo
BlockHolderReturnFlag=""></BlockHolderReturnInfo><SPIDInfo
SPID="SP00"></SPIDInfo><GTTDataInfo ClassDPC="222222222" ClassSSN="222"
ClassGTA="1" ClassTT="111" CnamDPC="222222222" CnamSSN="222" CnamTT="111"
CnamGTA="1" IsvmDPC="222222222" IsvmSSN="222" IsvmTT="111" IsvmGTA="1"
LidbDPC="222222222" LidbSSN="222" LidbTT="111" LidbGTA="1" WsmscDPC=""
WsmscSSN="" WsmscTT="" WsmscGTA=""></GTTDataInfo><LocationInfo
Location=""></LocationInfo><LocationTypeInfoLocationType=""></LocationTypeInfo><BillingIdInfo
BillingId=""></BillingIdInfo><ActivationDateInfo
ActivationDate="2005-10-05"></ActivationDateInfo><ActivationTimeInfo
ActivationTime="15:43:46"></ActivationTimeInfo><NPACRegionInfo
NPACRegionId="1"></NPACRegionInfo><LNPTypeInfo
LNPTypeIndicator="0"></LNPTypeInfo><UpdateInfo
UpdateIndicator="1"></UpdateInfo><CreateDeleteInfo
CreateDeleteReason="0"></CreateDeleteInfo><ContaminateStatusInfo
ContaminateStatus="0"></ContaminateStatusInfo><MessageContext
Indicator="0"></MessageContext></CreateSV></NumberManagerXML2.0>]
(XMLConverter.C, 131)
TRACELOG_MSG : 10/05/05 09:56:51.237 : - Xml schema file was
obtained:[/opt/lnpsite/nimnm00/flat/schema/NMXMLInterface.xsd]
(XMLConverter.C, 151)
I am here: abt to errorReset
I am here: abt to parse/tmp/XML_EAAa26861_20051005155651.xml
TRACELOG_MSG : 10/05/05 09:56:51.240 : - Function entry
CXMLConverter::startDocument (XMLConverter.C, 241)
TRACELOG_MSG : 10/05/05 09:56:51.240 : - Function exit
CXMLConverter::startDocument (XMLConverter.C, 242)
TRACELOG_MSG : 10/05/05 09:56:51.598 : - Function entry
ServiceBuilderSocket::PollRead (ServiceBuilderSocket.C, 160) --> other
processing continues
TRACELOG_MSG : 10/05/05 09:56:51.598 : - LOCKING Mutex 'SBSocketLock' stat=0
[???:0] (SThreadMutex.C, 167)
--
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
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]