From 56d924c9de71ea1781d33e7bced4527725c07801 Mon Sep 17 00:00:00 2001
From: Jean-Paul Smets <jp@nexedi.com>
Date: Mon, 19 Apr 2004 13:04:54 +0000
Subject: [PATCH] bugfixes

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@697 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/CMFActivity/Activity/SQLDict.py | 3 ++-
 product/CMFActivity/ActivityBuffer.py   | 4 ++++
 product/CMFActivity/ActivityTool.py     | 1 +
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/product/CMFActivity/Activity/SQLDict.py b/product/CMFActivity/Activity/SQLDict.py
index 6b9666f8f3..5971b51a1b 100755
--- a/product/CMFActivity/Activity/SQLDict.py
+++ b/product/CMFActivity/Activity/SQLDict.py
@@ -62,7 +62,8 @@ class SQLDict(RAMDict):
 
   def prepareDeleteMessage(self, activity_tool, m):
     # Erase all messages in a single transaction
-    uid_list = activity_tool.SQLDict_readUidList(path=m.object_path, method_id=m.method_id,processing_node=None)
+    path = '/'.join(m.object_path)
+    uid_list = activity_tool.SQLDict_readUidList(path=path, method_id=m.method_id,processing_node=None)
     uid_list = map(lambda x:x.uid, uid_list)
     if len(uid_list)>0:
       activity_tool.SQLDict_delMessage(uid = uid_list) 
diff --git a/product/CMFActivity/ActivityBuffer.py b/product/CMFActivity/ActivityBuffer.py
index ba25d5117a..173214d02d 100755
--- a/product/CMFActivity/ActivityBuffer.py
+++ b/product/CMFActivity/ActivityBuffer.py
@@ -67,8 +67,10 @@ class ActivityBuffer(TM):
             try:
                 # Try to push / delete all messages
                 for (activity, activity_tool, message) in self.flushed_activity:
+                    #LOG('ActivityBuffer finishDeleteMessage', ERROR, str(message.method_id))
                     activity.finishDeleteMessage(activity_tool, message)
                 for (activity, activity_tool, message) in self.queued_activity:
+                    #LOG('ActivityBuffer finishQueueMessage', ERROR, str(message.method_id))
                     activity.finishQueueMessage(activity_tool, message)
             except:
                 LOG('ActivityBuffer', ERROR, "exception during _finish",
@@ -94,8 +96,10 @@ class ActivityBuffer(TM):
         try:
             # Try to push / delete all messages
             for (activity, activity_tool, message) in self.flushed_activity:
+                #LOG('ActivityBuffer prepareDeleteMessage', ERROR, str(message.method_id))
                 activity.prepareDeleteMessage(activity_tool, message)
             for (activity, activity_tool, message) in self.queued_activity:
+                #LOG('ActivityBuffer prepareQueueMessage', ERROR, str(message.method_id))
                 activity.prepareQueueMessage(activity_tool, message)
         except:
             LOG('ActivityBuffer', ERROR, "exception during tpc_prepare",
diff --git a/product/CMFActivity/ActivityTool.py b/product/CMFActivity/ActivityTool.py
index cb8c3bdf3a..3ed066e61c 100755
--- a/product/CMFActivity/ActivityTool.py
+++ b/product/CMFActivity/ActivityTool.py
@@ -318,6 +318,7 @@ class ActivityTool (Folder, UniqueObject):
         return []
           
     def unregisterMessage(self, activity, message):
+      self._v_activity_buffer._register() # Required if called by flush, outside activate
       return activity.unregisterMessage(self._v_activity_buffer, self, message)
           
     def flush(self, object, invoke=0, **kw):
-- 
2.30.9