I'm running on Solaris 5.7 with xerces 1.7 and I am seeing the following
problem:
My long running applications are leaking what appears to be the entire DOM
tree when setCreateEntityReferenceNodes() is set to true and the XML file
being parsed contains a entity reference. If I turn off the creatation of
entity references or pass in a file that does not contain entity-reference
everything is fine.
Any help would be appreciated.
Below is a sample of the code that fails. Just give it the below document
that contains an entity-reference and it leaks.
CODE
while(1) {
try {
fprintf(stderr,"Calling XMLPlatformUtils::Initialize()\n");
XMLPlatformUtils::Initialize();
}
catch(const XMLException& toCatch) {
char *cp = XMLString::transcode(toCatch.getMessage());
fprintf(stderr,"Error during Xerces-c Initialization: [%s]\n",cp);
delete [] cp;
return 1;
}
DOMParser * _parser = new DOMParser;
_parser->setDoValidation(false);
_parser->setValidationScheme(DOMParser::Val_Never);
_parser->setCreateEntityReferenceNodes(true);
_parser->setToCreateXMLDeclTypeNode(true);
_parser->setIncludeIgnorableWhitespace(true);
_parser->setDoNamespaces(false);
_parser->parse(filename);
delete _parser;
try {
fprintf(stderr,"Calling XMLPlatformUtils::Terminate()\n");
XMLPlatformUtils::Terminate();
}
catch(const XMLException& toCatch) {
char *cp = XMLString::transcode(toCatch.getMessage());
fprintf(stderr,"Error during Xerces-c Termination: [%s]\n",cp);
delete [] cp;
}
} // end forever
exit(0);
}
FILE
<!DOCTYPE foo [
<!ELEMENT foo (foo1|foo2) >
<!ELEMENT foo1 (#PCDATA)* >
<!ELEMENT foo2 (#PCDATA)* >
<!ENTITY entityfoo "entity-value">
]>
<foo><foo1>This a some test data &entityfoo; and more test data
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn</foo1></foo>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]