From e094fef23f995fb8b34b7f58de00feb59e99b05a Mon Sep 17 00:00:00 2001
From: Jean-Paul Smets <jp@nexedi.com>
Date: Sun, 14 Dec 2003 14:13:41 +0000
Subject: [PATCH] New revision 2 after Savannah crash

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@99 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/CMFActivity/ActiveObject.py     | 23 +++++++++++++++++------
 product/CMFActivity/Activity/SQLDict.py |  1 +
 product/CMFActivity/ActivityTool.py     |  4 ++--
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/product/CMFActivity/ActiveObject.py b/product/CMFActivity/ActiveObject.py
index 4fdecb017d..5fbe5ed87c 100755
--- a/product/CMFActivity/ActiveObject.py
+++ b/product/CMFActivity/ActiveObject.py
@@ -37,6 +37,16 @@ DEFAULT_ACTIVITY = 'SQLDict'
 #DEFAULT_ACTIVITY = 'RAMDict'
 
 
+def flushActivity(object, invoke=0, **kw):
+  # flush all activities related to this object
+  try:
+    object.portal_activities.flush(self, invoke=invoke, **kw)
+  except:
+    # If the portal_activities were not created
+    # nothing to do
+    pass
+
+
 class ActiveObject(ExtensionClass.Base):
 
   security = ClassSecurityInfo()
@@ -57,17 +67,18 @@ class ActiveObject(ExtensionClass.Base):
 
   def flushActivity(self, invoke=0, **kw):
     # flush all activities related to this object
-    try:
+    #try:
+    if 1:
       self.portal_activities.flush(self, invoke=invoke, **kw)
-    except:
-      # If the portal_activities were not created
-      # nothing to do
-      pass
+    #except:
+    #  # If the portal_activities were not created
+    #  # nothing to do
+    #  pass
 
   def recursiveFlushActivity(self, **kw):
     # flush all activities related to this object
     # updateAll is defined in ERP5Type
-    self.updateAll(method=ActiveObject.flushActivity, **kw)
+    self.recursiveApply(method=flushActivity, **kw)
 
   security.declareProtected( CMFCorePermissions.View, 'hasActivity' )
   def hasActivity(self, **kw):
diff --git a/product/CMFActivity/Activity/SQLDict.py b/product/CMFActivity/Activity/SQLDict.py
index 36a209aebf..8b50202947 100755
--- a/product/CMFActivity/Activity/SQLDict.py
+++ b/product/CMFActivity/Activity/SQLDict.py
@@ -70,6 +70,7 @@ class SQLDict(RAMDict):
       object_path is a tuple
     """
     path = '/'.join(object_path)
+    # LOG('Flush', 0, str((path, invoke, method_id)))
     result = activity_tool.SQLDict_readMessageList(path=path, method_id=method_id)
     method_dict = {}
     if invoke:
diff --git a/product/CMFActivity/ActivityTool.py b/product/CMFActivity/ActivityTool.py
index 9b5c30d0a6..d8e59ff168 100755
--- a/product/CMFActivity/ActivityTool.py
+++ b/product/CMFActivity/ActivityTool.py
@@ -70,8 +70,8 @@ class Message:
 
   def __call__(self, activity_tool):
     try:
-      #LOG('WARNING ActivityTool', 0,
-      #     'Trying to call method %s on object %s' % (self.method_id, self.object_path))
+      LOG('WARNING ActivityTool', 0,
+           'Trying to call method %s on object %s' % (self.method_id, self.object_path))
       object = activity_tool.unrestrictedTraverse(self.object_path)
       getattr(object, self.method_id)(*self.args, **self.kw)
       self.__is_executed = 1
-- 
2.30.9