[Erp5-report] r19089 - in /erp5/trunk/products/CMFActivity/Activity: SQLDict.py SQLQueue.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Feb 5 23:22:26 CET 2008
Author: vincent
Date: Tue Feb 5 23:22:25 2008
New Revision: 19089
URL: http://svn.erp5.org?rev=19089&view=rev
Log:
Prevent exceptions raised in notifyUser from making finalizeMessageExecution raise.
Modified:
erp5/trunk/products/CMFActivity/Activity/SQLDict.py
erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
Modified: erp5/trunk/products/CMFActivity/Activity/SQLDict.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLDict.py?rev=19089&r1=19088&r2=19089&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLDict.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLDict.py Tue Feb 5 23:22:25 2008
@@ -373,13 +373,17 @@
LOG('SQLDict', PANIC, 'Failed to unreserve %r' % (make_available_uid_list, ), error=sys.exc_info())
else:
LOG('SQLDict', TRACE, 'Freed messages %r' % (make_available_uid_list, ))
- for m in notify_user_list:
- m.notifyUser(activity_tool)
- for m in message_with_active_process_list:
- active_process = activity_tool.unrestrictedTraverse(m.active_process)
- if not active_process.hasActivity():
- # No more activity
- m.notifyUser(activity_tool, message="Process Finished") # XXX commit bas ???
+ try:
+ for m in notify_user_list:
+ m.notifyUser(activity_tool)
+ for m in message_with_active_process_list:
+ active_process = activity_tool.unrestrictedTraverse(m.active_process)
+ if not active_process.hasActivity():
+ # No more activity
+ m.notifyUser(activity_tool, message="Process Finished") # XXX commit bas ???
+ except:
+ # Notification failures must not cause this method to raise.
+ LOG('SQLDict', WARNING, 'Exception during notification phase of finalizeMessageExecution', error=sys.exc_info())
# Queue semantic
def dequeueMessage(self, activity_tool, processing_node):
Modified: erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLQueue.py?rev=19089&r1=19088&r2=19089&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLQueue.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLQueue.py Tue Feb 5 23:22:25 2008
@@ -244,14 +244,17 @@
processing_node=INVOKE_ERROR_STATE)
except:
LOG('SQLQueue', PANIC, 'Failed to set message to error state for %r' % (final_error_uid_list, ), error=sys.exc_info())
- for m in notify_user_list:
- m.notifyUser(activity_tool)
- for m in message_with_active_process_list:
- active_process = activity_tool.unrestrictedTraverse(m.active_process)
- if not active_process.hasActivity():
- # No more activity
- m.notifyUser(activity_tool, message="Process Finished") # XXX commit bas ???
-
+ try:
+ for m in notify_user_list:
+ m.notifyUser(activity_tool)
+ for m in message_with_active_process_list:
+ active_process = activity_tool.unrestrictedTraverse(m.active_process)
+ if not active_process.hasActivity():
+ # No more activity
+ m.notifyUser(activity_tool, message="Process Finished") # XXX commit bas ???
+ except:
+ # Notification failures must not cause this method to raise.
+ LOG('SQLQueue', WARNING, 'Exception during notification phase of finalizeMessageExecution', error=sys.exc_info())
def dequeueMessage(self, activity_tool, processing_node):
def makeMessageListAvailable(uid_list):
More information about the Erp5-report
mailing list