From 458be1495da05089497f68e3c6f953a84195e92d Mon Sep 17 00:00:00 2001
From: Yoshinori Okuji <yo@nexedi.com>
Date: Tue, 13 Apr 2004 13:00:28 +0000
Subject: [PATCH] If __hash__ is not defined, do not check
 acquired_object_dict.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@668 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/CMFCategory/CategoryTool.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/product/CMFCategory/CategoryTool.py b/product/CMFCategory/CategoryTool.py
index 54c34e0f49..89c48c29d2 100755
--- a/product/CMFCategory/CategoryTool.py
+++ b/product/CMFCategory/CategoryTool.py
@@ -805,9 +805,14 @@ class CategoryTool( UniqueObject, Folder, Base ):
           result = list(result) # make a copy
           for my_acquisition_object in my_acquisition_object_list:
             #LOG('getSingleCategoryAcquiredMembershipList', 0, 'my_acquisition_object = %s, acquired_object_dict = %s' % (str(my_acquisition_object), str(acquired_object_dict)))
+            #LOG('getSingleCategoryAcquiredMembershipList', 0, 'my_acquisition_object.__dict__ = %s' % str(my_acquisition_object.__dict__))
+            #LOG('getSingleCategoryAcquiredMembershipList', 0, 'my_acquisition_object.__hash__ = %s' % str(my_acquisition_object.__hash__()))
             #if my_acquisition_object is not None:
-            if my_acquisition_object is not None and my_acquisition_object not in acquired_object_dict:
-              acquired_object_dict[my_acquisition_object] = 1
+            if my_acquisition_object is not None:
+              if hasattr(my_acquisition_object, '__hash__'):
+                if my_acquisition_object in acquired_object_dict:
+                  continue
+                acquired_object_dict[my_acquisition_object] = 1
               if hasattr(my_acquisition_object, '_categories'):
                 # We should only consider objects which define that category
                 if base_category in my_acquisition_object._categories:
-- 
2.30.9