diff --git a/product/ZSQLCatalog/ZSQLCatalog.py b/product/ZSQLCatalog/ZSQLCatalog.py index 66fb73d72d7af29b914fa4d38780bab397120f60..5ce26866f7e61a204ad0514fa5e17c6a4d50d9e2 100755 --- a/product/ZSQLCatalog/ZSQLCatalog.py +++ b/product/ZSQLCatalog/ZSQLCatalog.py @@ -262,6 +262,12 @@ class ZCatalog(Folder, Persistent, Implicit): # This change must be reflected as soon as possible. get_transaction().commit() + def finishHotReindexing(self, **kw): + """ + XXX: This is a workaround for CMFActivity. + """ + self.setHotReindexingState(state='finished', **kw) + def playBackRecordedObjectList(self, sql_catalog_id=None): """ Play back must be a distinct method to activate... @@ -390,8 +396,6 @@ class ZCatalog(Folder, Persistent, Implicit): # XXX Commit transactions very often and use resolve_path to get objects instead of objectValues # XXX This is not to be disturbed by normal user operations in the foreground. # XXX Otherwise, many read conflicts happen and hot reindexing restarts again and again. - LOG('hotReindex, skin_core.objectIds',0,self.portal_skins.erp5_core.objectIds()) - LOG('hotReindex, skin_core.__dict__',0,self.portal_skins.__dict__) #for path in self.Catalog_getIndexablePathList(): for path in self.portal_skins.erp5_core.Catalog_getIndexablePathList(): object = self.resolve_path(path) @@ -431,11 +435,11 @@ class ZCatalog(Folder, Persistent, Implicit): # Exchange the databases. LOG('hotReindexObjectList', 0, 'Exchanging databases') - self.activate(after_method_id=('reindexObject', 'playBackRecordedObjectList')).exchangeDatabases(source_sql_catalog_id, destination_sql_catalog_id, skin_selection_dict, sql_connection_id_dict) # XXX Never called by activity tool, why ??? XXX + self.activate(after_method_id=('reindexObject', 'playBackRecordedObjectList', 'setHotReindexingState'), priority=5).exchangeDatabases(source_sql_catalog_id, destination_sql_catalog_id, skin_selection_dict, sql_connection_id_dict) # XXX Never called by activity tool, why ??? XXX finally: # Finish. LOG('hotReindexObjectList', 0, 'Finishing hot reindexing') - self.activate(passive_commit=1, after_method_id='exchangeDatabases', priority=5).setHotReindexingState('finished') + self.activate(passive_commit=1, after_method_id='exchangeDatabases', priority=5).finishHotReindexing() if RESPONSE is not None: URL1 = REQUEST.get('URL1')