diff --git a/product/HBTreeFolder2/HBTreeFolder2.py b/product/HBTreeFolder2/HBTreeFolder2.py index 0a08425745a0d4b25d0dd7ce4fa305c84400052d..66ac4ce671e199f5cc2a7b839a5d9c3a35d3c8ed 100644 --- a/product/HBTreeFolder2/HBTreeFolder2.py +++ b/product/HBTreeFolder2/HBTreeFolder2.py @@ -24,7 +24,6 @@ from App.special_dtml import DTMLFile from Persistence import Persistent, PersistentMapping from Acquisition import aq_base from BTrees.OOBTree import OOBTree -from BTrees.OIBTree import OIBTree, union from BTrees.Length import Length from ZODB.POSException import ConflictError from OFS.ObjectManager import BadRequestException, BeforeDeleteException @@ -180,11 +179,8 @@ class HBTreeFolder2Base (Persistent): def _populateFromFolder(self, source): """Fill this folder with the contents of another folder. """ - for name in source.objectIds(): - value = source._getOb(name, None) - if value is not None: - self._setOb(name, aq_base(value)) - + for name, value in source.objectItems(): + self._setOb(name, aq_base(value)) security.declareProtected(view_management_screens, 'manage_fixCount') def manage_fixCount(self, dry_run=0): @@ -260,7 +256,7 @@ class HBTreeFolder2Base (Persistent): error=sys.exc_info()) try: self._htree = OOBTree(self._htree) # XXX hFix needed - except: + except Exception: LOG('HBTreeFolder2', ERROR, 'Failed to fix %s.' % path, error=sys.exc_info()) raise @@ -420,7 +416,7 @@ class HBTreeFolder2Base (Persistent): h = self._htree recurse_stack = [] try: - for sub_id in min and self.hashId(min) or ('',): + for sub_id in self.hashId(min) if min else ('',): if recurse_stack: i.next() if type(h) is not OOBTree: @@ -492,8 +488,6 @@ class HBTreeFolder2Base (Persistent): 'objectItems') def objectItems(self, base_id=_marker): # Returns a list of (id, subobject) tuples of the current object. - # If 'spec' is specified, returns only objects whose meta_type match - # 'spec' return HBTreeObjectItems(self, base_id) # superValues() looks for the _objects attribute, but the implementation @@ -548,7 +542,7 @@ class HBTreeFolder2Base (Persistent): raise except ConflictError: raise - except: + except Exception: LOG('Zope', ERROR, 'manage_beforeDelete() threw', error=sys.exc_info()) self._delOb(id)