Naresh(OpenERP) has proposed merging
lp:~openerp-dev/openobject-server/trunk-bug-869936-nch into
lp:openobject-server.
Requested reviews:
OpenERP R&D Team (openerp-dev)
Vo Minh Thu (OpenERP) (vmt-openerp)
Olivier Dony (OpenERP) (odo-openerp)
Related bugs:
Bug #869936 in OpenERP Server: "_sql_constraints and _constraints exceptions
open an application error window"
https://bugs.launchpad.net/openobject-server/+bug/869936
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-bug-869936-nch/+merge/85799
--
https://code.launchpad.net/~openerp-dev/openobject-server/trunk-bug-869936-nch/+merge/85799
Your team OpenERP R&D Team is requested to review the proposed merge of
lp:~openerp-dev/openobject-server/trunk-bug-869936-nch into
lp:openobject-server.
=== modified file 'openerp/service/netrpc_server.py'
--- openerp/service/netrpc_server.py 2011-11-22 08:58:48 +0000
+++ openerp/service/netrpc_server.py 2011-12-15 06:48:23 +0000
@@ -31,7 +31,7 @@
import sys
import threading
import traceback
-
+import openerp
import openerp.netsvc as netsvc
import openerp.tiny_socket as tiny_socket
import openerp.tools as tools
@@ -66,11 +66,11 @@
break
except Exception, e:
try:
- new_e = Exception(tools.exception_to_unicode(e)) # avoid problems of pickeling
- tb = getattr(e, 'traceback', sys.exc_info())
- tb_s = "".join(traceback.format_exception(*tb))
+ valid_exception = Exception(netrpc_handle_exception_legacy(e))
+ valid_traceback = getattr(e, 'traceback', sys.exc_info())
+ formatted_traceback = "".join(traceback.format_exception(*valid_traceback))
logging.getLogger('web-services').debug("netrpc: communication-level exception", exc_info=True)
- ts.mysend(new_e, exception=True, traceback=tb_s)
+ ts.mysend(valid_exception, exception=True, traceback=formatted_traceback)
break
except Exception, ex:
#terminate this channel if we can't properly send back the error
@@ -85,7 +85,17 @@
def stop(self):
self.running = False
-
+
+def netrpc_handle_exception_legacy(e):
+ if isinstance(e, openerp.osv.osv.except_osv):
+ return 'warning -- ' + e.name + '\n\n' + e.value
+ if isinstance(e, openerp.exceptions.Warning):
+ return 'warning -- Warning\n\n' + str(e)
+ if isinstance(e, openerp.exceptions.AccessError):
+ return 'warning -- AccessError\n\n' + str(e)
+ if isinstance(e, openerp.exceptions.AccessDenied):
+ return 'AccessDenied ' + str(e)
+ return openerp.tools.exception_to_unicode(e)
class TinySocketServerThread(threading.Thread,netsvc.Server):
def __init__(self, interface, port, secure=False):
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp