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); } }