[Erp5-report] r29793 - /erp5/trunk/products/ERP5/Tool/TemplateTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Oct 19 14:14:48 CEST 2009


Author: nicolas.dumazet
Date: Mon Oct 19 14:14:46 2009
New Revision: 29793

URL: http://svn.erp5.org?rev=29793&view=rev
Log:
Catch xml.parser.expat.ExpatError when an invalid bt5 repo is passed along

Modified:
    erp5/trunk/products/ERP5/Tool/TemplateTool.py

Modified: erp5/trunk/products/ERP5/Tool/TemplateTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/TemplateTool.py?rev=29793&r1=29792&r2=29793&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/TemplateTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Tool/TemplateTool.py [utf8] Mon Oct 19 14:14:46 2009
@@ -45,6 +45,7 @@
 from urllib import pathname2url, urlopen, splittype, urlretrieve
 import re
 from xml.dom.minidom import parse
+from xml.parsers.expat import ExpatError
 import struct
 import cPickle
 import posixpath
@@ -526,7 +527,17 @@
         f = urlopen(url)
         property_dict_list = []
         try:
-          doc = parse(f)
+          try:
+            doc = parse(f)
+          except ExpatError:
+            if REQUEST is not None:
+              psm = translateString('Invalid repository: ${repo}',
+                                    mapping={'repo':repository})
+              REQUEST.RESPONSE.redirect("%s?portal_status_message=%s"
+                                       % (self.absolute_url(), psm))
+              return
+            else:
+              raise RuntimeError, 'Invalid repository: %s' % repository
           try:
             root = doc.documentElement
             for template in root.getElementsByTagName("template"):




More information about the Erp5-report mailing list