[Erp5-report] r24099 - /erp5/trunk/products/CMFActivity/Activity/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Oct 8 13:56:13 CEST 2008


Author: vincent
Date: Wed Oct  8 13:56:04 2008
New Revision: 24099

URL: http://svn.erp5.org?rev=24099&view=rev
Log:
Update all activity queues to use accessors instead of is_executed.

Modified:
    erp5/trunk/products/CMFActivity/Activity/RAMDict.py
    erp5/trunk/products/CMFActivity/Activity/RAMQueue.py
    erp5/trunk/products/CMFActivity/Activity/SQLDict.py
    erp5/trunk/products/CMFActivity/Activity/SQLQueue.py

Modified: erp5/trunk/products/CMFActivity/Activity/RAMDict.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/RAMDict.py?rev=24099&r1=24098&r2=24099&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/RAMDict.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/RAMDict.py Wed Oct  8 13:56:04 2008
@@ -86,7 +86,7 @@
     for key, m in self.getDict(path).items():
       if m.validate(self, activity_tool) is VALID:
         activity_tool.invoke(m)
-        if m.is_executed == MESSAGE_EXECUTED:
+        if m.getExecutionState() == MESSAGE_EXECUTED:
           del self.getDict(path)[key]
           get_transaction().commit()
           return 0
@@ -136,7 +136,7 @@
             # First Validate
             if m.validate(self, activity_tool) is VALID:
               activity_tool.invoke(m) # Try to invoke the message - what happens if invoke calls flushActivity ??
-              if m.is_executed != MESSAGE_EXECUTED:                                                 # Make sure message could be invoked
+              if m.getExecutionState() != MESSAGE_EXECUTED:                                                 # Make sure message could be invoked
                 # The message no longer exists
                 raise ActivityFlushError, (
                     'Could not evaluate %s on %s' % (method_id , path))
@@ -161,7 +161,7 @@
           LOG('CMFActivity RAMDict: ', 0, 'flushing object %s' % '/'.join(m.object_path))
           if invoke:
             activity_tool.invoke(m)
-            if m.is_executed == MESSAGE_EXECUTED:
+            if m.getExecutionState() == MESSAGE_EXECUTED:
               method_dict[m.method_id] = 1
               self.deleteMessage(activity_tool, m)
           else:

Modified: erp5/trunk/products/CMFActivity/Activity/RAMQueue.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/RAMQueue.py?rev=24099&r1=24098&r2=24099&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/RAMQueue.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/RAMQueue.py Wed Oct  8 13:56:04 2008
@@ -70,7 +70,7 @@
         get_transaction().commit() # Start a new transaction
         return 0    # Keep on ticking
       activity_tool.invoke(m)
-      if m.is_executed == MESSAGE_EXECUTED:
+      if m.getExecutionState() == MESSAGE_EXECUTED:
         self.deleteMessage(activity_tool, m) # Trash messages which are not validated (no error handling)
         get_transaction().commit() # Start a new transaction
         return 0    # Keep on ticking
@@ -117,7 +117,7 @@
         else:
           if invoke:
             activity_tool.invoke(m)
-            if m.is_executed == MESSAGE_EXECUTED:
+            if m.getExecutionState() == MESSAGE_EXECUTED:
               activity_tool.unregisterMessage(self, m)
           else:
             activity_tool.unregisterMessage(self, m)
@@ -130,7 +130,7 @@
         else:
           if invoke:
             activity_tool.invoke(m)
-            if m.is_executed == MESSAGE_EXECUTED:
+            if m.getExecutionState() == MESSAGE_EXECUTED:
               self.deleteMessage(activity_tool, m) # Only delete if no error happens
           else:
             self.deleteMessage(activity_tool, m)

Modified: erp5/trunk/products/CMFActivity/Activity/SQLDict.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLDict.py?rev=24099&r1=24098&r2=24099&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLDict.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLDict.py Wed Oct  8 13:56:04 2008
@@ -338,9 +338,9 @@
     message_with_active_process_list = []
     notify_user_list = []
     non_executable_message_list = []
-    something_failed = (len([x for x in message_uid_priority_list if x[1].is_executed == MESSAGE_NOT_EXECUTED]) != 0)
+    something_failed = (len([x for x in message_uid_priority_list if x[1].getExecutionState() == MESSAGE_NOT_EXECUTED]) != 0)
     for uid, m, priority in message_uid_priority_list:
-      if m.is_executed == MESSAGE_EXECUTED:
+      if m.getExecutionState() == MESSAGE_EXECUTED:
         if something_failed:
           make_available_uid_list.append(uid)
           make_available_uid_list.extend(uid_to_duplicate_uid_list_dict.get(uid, []))
@@ -351,7 +351,7 @@
             # XXX: Bug here: Even if a duplicate message has an active_process,
             # it won't be called on the duplicate.
             message_with_active_process_list.append(m)
-      elif m.is_executed == MESSAGE_NOT_EXECUTED:
+      elif m.getExecutionState() == MESSAGE_NOT_EXECUTED:
         # Should duplicate messages follow strictly the original message, or
         # should they be just made available again ?
         make_available_uid_list.extend(uid_to_duplicate_uid_list_dict.get(uid, []))
@@ -476,7 +476,7 @@
         else:
           LOG('SQLDict', TRACE, 'Freed messages %r' % (to_free_uid_list))
       # Abort if something failed.
-      if len([x for x in message_uid_priority_list if x[1].is_executed == MESSAGE_NOT_EXECUTED]) != 0:
+      if len([x for x in message_uid_priority_list if x[1].getExecutionState() == MESSAGE_NOT_EXECUTED]) != 0:
         endTransaction = abortTransactionSynchronously
       else:
         endTransaction = get_transaction().commit
@@ -493,15 +493,8 @@
             LOG('SQLDict', PANIC, 'Failed to abort executed messages which also failed to commit. Some objects may be modified accidentally.')
             raise
         exc_info = sys.exc_info()
-        exc_type = exc_info[0]
-        exc_value = str(exc_info[1])
-        traceback = ''.join(ExceptionFormatter.format_exception(
-                            *exc_info))
         for x in message_uid_priority_list:
-          x[1].is_executed = MESSAGE_NOT_EXECUTED
-          x[1].exc_type = exc_type
-          x[1].exc_value = exc_value
-          x[1].traceback = traceback
+          x[1].setExecutionState(MESSAGE_NOT_EXECUTED, exc_info=exc_info, log=False)
         failed_message_uid_list = [x[0] for x in message_uid_priority_list]
         try:
           makeMessageListAvailable(failed_message_uid_list, uid_to_duplicate_uid_list_dict)
@@ -553,7 +546,7 @@
               validate_value = m.validate(self, activity_tool)
               if validate_value is VALID:
                 activity_tool.invoke(m) # Try to invoke the message - what happens if invoke calls flushActivity ??
-                if m.is_executed != MESSAGE_EXECUTED:                                                 # Make sure message could be invoked
+                if m.getExecutionState() != MESSAGE_EXECUTED:                                                 # Make sure message could be invoked
                   # The message no longer exists
                   raise ActivityFlushError, (
                       'Could not evaluate %s on %s' % (m.method_id , path))
@@ -586,8 +579,7 @@
 #             LOG('SQLDict.flush validate_value',0,validate_value)
             if validate_value is VALID:
               activity_tool.invoke(m) # Try to invoke the message - what happens if invoke calls flushActivity ??
-#               LOG('SQLDict.flush m.is_executed',0,m.is_executed)
-              if m.is_executed != MESSAGE_EXECUTED:                                                 # Make sure message could be invoked
+              if m.getExecutionState() != MESSAGE_EXECUTED:                                                 # Make sure message could be invoked
                 # The message no longer exists
                 raise ActivityFlushError, (
                     'Could not evaluate %s on %s' % (m.method_id , path))

Modified: erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLQueue.py?rev=24099&r1=24098&r2=24099&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLQueue.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLQueue.py Wed Oct  8 13:56:04 2008
@@ -200,11 +200,11 @@
     notify_user_list = []
     non_executable_message_list = []
     for uid, m, priority in message_uid_priority_list:
-      if m.is_executed == MESSAGE_EXECUTED:
+      if m.getExecutionState() == MESSAGE_EXECUTED:
         deletable_uid_list.append(uid)
         if m.active_process:
           message_with_active_process_list.append(m)
-      elif m.is_executed == MESSAGE_NOT_EXECUTED:
+      elif m.getExecutionState() == MESSAGE_NOT_EXECUTED:
         if type(m.exc_type) is ClassType and \
            issubclass(m.exc_type, ConflictError):
           delay_uid_list.append(uid)
@@ -300,7 +300,7 @@
         # Try to invoke
         try:
           activity_tool.invoke(value[1])
-          if value[1].is_executed != MESSAGE_NOT_EXECUTED:
+          if value[1].getExecutionState() != MESSAGE_NOT_EXECUTED:
             # Commit so that if a message raises it doesn't causes previous
             # successfull messages to be rolled back. This commit might fail,
             # so it is protected the same way as activity execution by the
@@ -320,12 +320,7 @@
           # We must make sure that the message is not set as executed.
           # It is possible that the message is executed but the commit
           # of the transaction fails
-          value[1].is_executed = MESSAGE_NOT_EXECUTED
-          exc_info = sys.exc_info()
-          value[1].exc_type = exc_info[0]
-          value[1].exc_value = str(exc_info[1])
-          value[1].traceback = ''.join(ExceptionFormatter.format_exception(
-                                       *exc_info))
+          value[1].setExecutionState(MESSAGE_NOT_EXECUTED, context=activity_tool)
           try:
             makeMessageListAvailable([value[0]])
           except:
@@ -386,7 +381,7 @@
             validate_value = m.validate(self, activity_tool)
             if validate_value is VALID:
               activity_tool.invoke(m) # Try to invoke the message - what happens if invoke calls flushActivity ??
-              if m.is_executed != MESSAGE_EXECUTED:                                                 # Make sure message could be invoked
+              if m.getExecutionState() != MESSAGE_EXECUTED:                                                 # Make sure message could be invoked
                 # The message no longer exists
                 raise ActivityFlushError, (
                     'Could not evaluate %s on %s' % (m.method_id , path))
@@ -412,7 +407,7 @@
             validate_value = VALID
           if validate_value is VALID:
             activity_tool.invoke(m) # Try to invoke the message - what happens if invoke calls flushActivity ??
-            if m.is_executed != MESSAGE_EXECUTED:                                                 # Make sure message could be invoked
+            if m.getExecutionState() != MESSAGE_EXECUTED:                                                 # Make sure message could be invoked
               # The message no longer exists
               raise ActivityFlushError, (
                   'Could not evaluate %s on %s' % (method_id , path))




More information about the Erp5-report mailing list