[Mobies-commit] [commit] r3671 - UDM/trunk/src/UdmDom
ksmyth at redhat1.isis.vanderbilt.edu
ksmyth at redhat1.isis.vanderbilt.edu
Thu Mar 24 13:20:27 CDT 2011
Author: ksmyth
Date: Thu Mar 24 13:20:26 2011
New Revision: 3671
Log:
Need to parser.setErrorHandler for parser->parse to throw a udm_exception (or any exception). Fixes crash when setting metalocator to a directory
Modified:
UDM/trunk/src/UdmDom/UdmDom.cpp
Modified: UDM/trunk/src/UdmDom/UdmDom.cpp
==============================================================================
--- UDM/trunk/src/UdmDom/UdmDom.cpp Wed Mar 23 17:49:45 2011 (r3670)
+++ UDM/trunk/src/UdmDom/UdmDom.cpp Thu Mar 24 13:20:26 2011 (r3671)
@@ -3181,14 +3181,17 @@
<?udm interface="UdmProject" version="1.00"?>
*/
- XercesDOMParser *parser = new XercesDOMParser();
+ XercesDOMParser parser;
- parser->setValidationScheme(XercesDOMParser::Val_Never);
- setDomParserExternalSchemaLocation(*parser);
+ parser.setValidationScheme(XercesDOMParser::Val_Never);
+ setDomParserExternalSchemaLocation(parser);
+
+ MobiesErrorHandler errorHandler;
+ parser.setErrorHandler(&errorHandler);
try
{
- parser->parse(*is);
+ parser.parse(*is);
}
catch(const udm_exception& toCatch)
@@ -3198,13 +3201,10 @@
description += "'. Exception message is: ";
description += toCatch.what();
- delete parser;
-
throw udm_exception(description);
-
}
- XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *pDoc = parser->getDocument();
+ XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *pDoc = parser.getDocument();
DOMNode *pNode = pDoc->getFirstChild();
while(pNode != 0)
{
@@ -3227,7 +3227,6 @@
if (name.size() && version.size()) vinfo = true;
- delete parser;
return true;
}
@@ -3235,7 +3234,6 @@
pNode=pNode->getNextSibling();
}
- delete parser;
return false;
};
public:
More information about the Mobies-commit
mailing list