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

Reply via email to