@Override
  public void setStoreDelegate(RepositorySessionStoreDelegate delegate) {
    super.setStoreDelegate(delegate);

    if (deletionManager != null) {
      deletionManager.setDelegate(delegate);
    }
  }
 @Override
 protected void storeRecordDeletion(final Record record, final Record existingRecord) {
   if (SPECIAL_GUIDS_MAP.containsKey(record.guid)) {
     Logger.debug(LOG_TAG, "Told to delete record " + record.guid + ". Ignoring.");
     return;
   }
   final BookmarkRecord bookmarkRecord = (BookmarkRecord) record;
   final BookmarkRecord existingBookmark = (BookmarkRecord) existingRecord;
   final boolean isFolder = existingBookmark.isFolder();
   final String parentGUID = existingBookmark.parentID;
   deletionManager.deleteRecord(bookmarkRecord.guid, isFolder, parentGUID);
 }
  protected void flushQueues() {
    long now = now();
    Logger.debug(LOG_TAG, "Applying remaining insertions.");
    try {
      insertionManager.finishUp();
      Logger.debug(LOG_TAG, "Done applying remaining insertions.");
    } catch (Exception e) {
      Logger.warn(LOG_TAG, "Unable to apply remaining insertions.", e);
    }

    Logger.debug(LOG_TAG, "Applying deletions.");
    try {
      untrackGUIDs(deletionManager.flushAll(getIDForGUID("unfiled"), now));
      Logger.debug(LOG_TAG, "Done applying deletions.");
    } catch (Exception e) {
      Logger.error(LOG_TAG, "Unable to apply deletions.", e);
    }
  }