Handle case where parser returns a null document.
authorScott Cantor <cantor.2@osu.edu>
Fri, 30 Jan 2009 21:48:06 +0000 (21:48 +0000)
committerScott Cantor <cantor.2@osu.edu>
Fri, 30 Jan 2009 21:48:06 +0000 (21:48 +0000)
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);