Commit b4b77ebd by ichuang

minor changes to make error handling of eternalresponse more robust

parent c5ff830c
......@@ -252,11 +252,22 @@ def textbox(element, value, status, render_template, msg=''):
try:
xhtml = etree.XML(html)
except Exception as err:
newmsg = 'error %s in rendering message' % (str(err).replace('<','&lt;'))
newmsg += '<br/>Original message: %s' % msg.replace('<','&lt;')
log.debug('error in textbox BAD HTML is : %s' % html)
newmsg = 'error %s in rendering message' % (str(err).replace('<','&lt;').replace('>','&gt;').replace(']]','&#93;&#93;'))
newmsg += '<br/>Original message: %s' % msg.replace('<','&lt;').replace('>','&gt;').replace(']]','&#93;&#93;')
context['msg'] = newmsg
log.debug('error in textbox: %s' % newmsg)
html = render_template("textbox.html", context)
xhtml = etree.XML(html)
try:
xhtml = etree.XML(html)
except Exception as err:
log.debug('SECONDARY error in textbox, giving up on status and msg')
newmsg = 'error %s in rendering message' % (str(err).replace('<','&lt;').replace('>','&gt;').replace(']]','&#93;&#93;'))
context['msg'] = newmsg
context['status'] = ''
log.debug('error in textbox: %s' % newmsg)
html = render_template("textbox.html", context)
xhtml = etree.XML(html)
return xhtml
#-----------------------------------------------------------------------------
......
......@@ -795,7 +795,10 @@ main()
try:
rxml = etree.fromstring(r.text) # response is XML; prase it
except Exception as err:
msg = 'Error %s - cannot parse response from external server r.text=%s' % (err,r.text)
etext = r.text
#etext = etext.replace('<![CDATA[','< ![ CDATA [')
etext = etext.replace('<','&lt;').replace('>','&gt;') # escape
msg = 'Error %s - cannot parse response from external server r.text=%s' % (err,etext)
log.error(msg)
raise Exception(msg)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment