[Erp5-report] r19264 - /erp5/trunk/products/CMFActivity/ActivityTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Feb 12 10:57:26 CET 2008


Author: vincent
Date: Tue Feb 12 10:57:22 2008
New Revision: 19264

URL: http://svn.erp5.org?rev=19264&view=rev
Log:
Set exc_value and traceback on failed messages in invokeGroup.

Modified:
    erp5/trunk/products/CMFActivity/ActivityTool.py

Modified: erp5/trunk/products/CMFActivity/ActivityTool.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/ActivityTool.py?rev=19264&r1=19263&r2=19264&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/ActivityTool.py (original)
+++ erp5/trunk/products/CMFActivity/ActivityTool.py Tue Feb 12 10:57:22 2008
@@ -863,10 +863,14 @@
           new_message_list.append(m)
         except:
           m.is_executed = 0
-          m.exc_type = sys.exc_info()[0]
+          exc_info = sys.exc_info()
+          m.exc_type = exc_info[0]
+          m.exc_value = str(exc_info[1])
+          m.traceback = ''.join(ExceptionFormatter.format_exception(
+                                *exc_info))
           LOG('WARNING ActivityTool', 0,
               'Could not call method %s on object %s' %
-              (m.method_id, m.object_path), error=sys.exc_info())
+              (m.method_id, m.object_path), error=exc_info)
 
       try:
         if len(expanded_object_list) > 0:
@@ -879,12 +883,19 @@
           result = None
       except:
         # In this case, the group method completely failed.
+        exc_info = sys.exc_info()
+        exc_type = exc_info[0]
+        exc_value = str(exc_info[1])
+        traceback = ''.join(ExceptionFormatter.format_exception(
+                            *exc_info))
         for m in new_message_list:
           m.is_executed = 0
-          m.exc_type = sys.exc_info()[0]
+          m.exc_type = exc_type
+          m.exc_value = exc_value
+          m.traceback = traceback
         LOG('WARNING ActivityTool', 0,
             'Could not call method %s on objects %s' %
-            (method_id, expanded_object_list), error=sys.exc_info())
+            (method_id, expanded_object_list), error=exc_info)
       else:
         # Obtain all indices of failed messages. Note that this can be a partial failure.
         failed_message_dict = {}




More information about the Erp5-report mailing list