private void cleanUpSnapshots(final Requisition requisition) {
    final String foreignSource = requisition.getForeignSource();
    final Date pendingDate = m_pendingForeignSourceRepository.getRequisitionDate(foreignSource);

    final List<File> pendingSnapshots =
        RequisitionFileUtils.findSnapshots(m_pendingForeignSourceRepository, foreignSource);

    if (pendingDate != null) {
      /* determine whether to delete the pending requisition */
      boolean deletePendingRequisition = true;
      if (pendingSnapshots.size() > 0) {
        for (final File pendingSnapshotFile : pendingSnapshots) {
          if (isNewer(pendingSnapshotFile, pendingDate)) {
            // the pending file is newer than an in-process snapshot, don't delete it
            deletePendingRequisition = false;
            break;
          }
        }
      }
      if (deletePendingRequisition) {
        m_pendingForeignSourceRepository.delete(requisition);
      }
    }

    /* determine whether this requisition was imported from a snapshot, and if so, delete its snapshot file */
    RequisitionFileUtils.deleteResourceIfSnapshot(requisition);

    final Date deployedDate = m_deployedForeignSourceRepository.getRequisitionDate(foreignSource);
    if (deployedDate != null) {
      RequisitionFileUtils.deleteSnapshotsOlderThan(
          getPendingForeignSourceRepository(), foreignSource, deployedDate);
    }
  }