From 1b21d1f5c426e7d8de02f510d9af543b00d28873 Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Fri, 30 Jan 2009 21:48:06 +0000 Subject: [PATCH] Handle case where parser returns a null document. --- xmltooling/util/ParserPool.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xmltooling/util/ParserPool.cpp b/xmltooling/util/ParserPool.cpp index 1ac8ef8..9397978 100644 --- a/xmltooling/util/ParserPool.cpp +++ b/xmltooling/util/ParserPool.cpp @@ -122,7 +122,8 @@ DOMDocument* ParserPool::parse(DOMLSInput& domsrc) parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, dynamic_cast(&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); -- 2.1.4