Add parametrized messaging and serialization to exceptions.
[shibboleth/cpp-xmltooling.git] / xmltooling / util / ParserPool.cpp
index 3eb039d..5bec638 100644 (file)
@@ -169,6 +169,7 @@ bool ParserPool::loadCatalog(const XMLCh* pathname)
         if (!XMLHelper::isNodeNamed(root,CATALOG_NS,catalog)) {\r
             auto_ptr_char temp(pathname);\r
             log.error("unknown root element, failed to load XML catalog from %s", temp.get());\r
+            doc->release();\r
             return false;\r
         }\r
         \r
@@ -194,6 +195,7 @@ bool ParserPool::loadCatalog(const XMLCh* pathname)
         for_each(m_schemaLocMap.begin(),m_schemaLocMap.end(),doubleit<string>(m_schemaLocations,' '));\r
 #endif\r
         XMLPlatformUtils::unlockMutex(m_lock);\r
+        doc->release();\r
     }\r
     catch (XMLParserException& e) {\r
         log.error("catalog loader caught XMLParserException: %s", e.what());\r