Handle case where parser returns a null document.
authorcantor <cantor@de75baf8-a10c-0410-a50a-987c0e22f00f>
Fri, 30 Jan 2009 21:48:06 +0000 (21:48 +0000)
committercantor <cantor@de75baf8-a10c-0410-a50a-987c0e22f00f>
Fri, 30 Jan 2009 21:48:06 +0000 (21:48 +0000)
git-svn-id: https://svn.middleware.georgetown.edu/cpp-xmltooling/branches/REL_1@556 de75baf8-a10c-0410-a50a-987c0e22f00f

xmltooling/util/ParserPool.cpp

index 1ac8ef8..9397978 100644 (file)
@@ -122,7 +122,8 @@ DOMDocument* ParserPool::parse(DOMLSInput& domsrc)
         parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, dynamic_cast<DOMErrorHandler*>(&deh));
         DOMDocument* doc=parser->parse(&domsrc);
         if (deh.errors) {
-            doc->release();
+            if (doc)
+                doc->release();
             throw XMLParserException("XML error(s) during parsing, check log for specifics");
         }
         parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, (void*)NULL);
@@ -156,7 +157,8 @@ DOMDocument* ParserPool::parse(DOMInputSource& domsrc)
         parser->setErrorHandler(&deh);
         DOMDocument* doc=parser->parse(domsrc);
         if (deh.errors) {
-            doc->release();
+            if (doc)
+                doc->release();
             throw XMLParserException("XML error(s) during parsing, check log for specifics");
         }
         parser->setErrorHandler(NULL);