[FIX] session: properly handle exceptions with unicode messages during dispatching
String formatting with an Exception param will use str(Exception), raising an error if the exception has non-ascii characters in the message. bzr revid: odo@openerp.com-20130124140538-1wjjl4a12xnwn38o
This commit is contained in:
parent
e7547a13db
commit
611ff620ce
|
@ -85,7 +85,7 @@ class OpenERPSession(object):
|
|||
self.jsonp_requests = {} # FIXME use a LRU
|
||||
|
||||
def send(self, service_name, method, *args):
|
||||
code_string = "warning -- %s\n\n%s"
|
||||
code_string = u"warning -- %s\n\n%s"
|
||||
try:
|
||||
return openerp.netsvc.dispatch_rpc(service_name, method, args)
|
||||
except openerp.osv.osv.except_osv, e:
|
||||
|
@ -95,13 +95,13 @@ class OpenERPSession(object):
|
|||
except openerp.exceptions.AccessError, e:
|
||||
raise xmlrpclib.Fault(code_string % ("AccessError", e), '')
|
||||
except openerp.exceptions.AccessDenied, e:
|
||||
raise xmlrpclib.Fault('AccessDenied', str(e))
|
||||
raise xmlrpclib.Fault('AccessDenied', openerp.tools.ustr(e))
|
||||
except openerp.exceptions.DeferredException, e:
|
||||
formatted_info = "".join(traceback.format_exception(*e.traceback))
|
||||
raise xmlrpclib.Fault(openerp.tools.ustr(e.message), formatted_info)
|
||||
raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)
|
||||
except Exception, e:
|
||||
formatted_info = "".join(traceback.format_exception(*(sys.exc_info())))
|
||||
raise xmlrpclib.Fault(openerp.tools.exception_to_unicode(e), formatted_info)
|
||||
raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)
|
||||
|
||||
def proxy(self, service):
|
||||
return Service(self, service)
|
||||
|
|
Loading…
Reference in New Issue