- All Implemented Interfaces:
- BackupSupport, DatabaseUpgradeTask, DeferredUpgradeTask, UpgradeTask, UpgradeTaskInfo, org.springframework.beans.factory.BeanNameAware
public class RemovePeopleDirectoryDuplicatesUpgradeTask
extends AbstractDeferredRunUpgradeTask
implements DatabaseUpgradeTask
The index flushing strategy is (intentionally) inaccurate and relies on an in-memory 'flushed entries' cache
to prevent the same object being flushed twice. This risks duplicate entries being created in the index immediately after
the application is restarted if the most recently queued index task entries prior to the restart are AddDocumentIndexTasks.
See CONF-29072 for additional details.
Therefore, this upgrade task changes any recent 'ADD' index task entries in the database to 'UPDATE' tasks
instead, and from this point forward we no longer create 'ADD' entries in isolation.
This upgrade task also re-indexes existing PersonalInformation objects to remove any duplicate entries in the people directory.