DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9691>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9691 Memory leak when setCreateEntityReferenceNodes is true Summary: Memory leak when setCreateEntityReferenceNodes is true Product: Xerces-C++ Version: 1.7.0 Platform: Sun OS/Version: Solaris Status: NEW Severity: Normal Priority: Other Component: DOM AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] 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. 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]
