diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties-MERGED b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties-MERGED index b5316c4bc1..cc7704604a 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties-MERGED +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties-MERGED @@ -89,6 +89,10 @@ AutoIngestControlPanel.runningTable.toolTipText=The Running table displays the c AutoIngestControlPanel.SharedConfigurationDisabled=Shared configuration disabled AutoIngestControlPanel.ShowLogFailed.Message=Case log file does not exist AutoIngestControlPanel.ShowLogFailed.Title=Unable to display case log +# {0} - case db status +# {1} - search svc Status +# {2} - coord svc Status +# {3} - msg broker status AutoIngestControlPanel.tbServicesStatusMessage.Message=Case databases {0}, keyword search {1}, coordination {2}, messaging {3} AutoIngestControlPanel.tbServicesStatusMessage.Message.Down=down AutoIngestControlPanel.tbServicesStatusMessage.Message.Unknown=unknown @@ -182,9 +186,8 @@ DeleteCaseTask.progress.acquiringManifestLocks=Acquiring exclusive manifest file DeleteCaseTask.progress.connectingToCoordSvc=Connecting to the coordination service... DeleteCaseTask.progress.deletingCaseDirCoordSvcNode=Deleting case directory znode... DeleteCaseTask.progress.deletingCaseNameCoordSvcNode=Deleting case name znode... -# {0} - data source name -# {1} - device id -DeleteCaseTask.progress.deletingDataSource=Deleting data source {0} with device id {1}... +# {0} - data source path +DeleteCaseTask.progress.deletingDataSource=Deleting data source {0}... DeleteCaseTask.progress.deletingJobLogLockNode=Deleting case auto ingest log znode... # {0} - manifest file path DeleteCaseTask.progress.deletingManifest=Deleting manifest file {0}... diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/DeleteCaseTask.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/DeleteCaseTask.java index 915fde13fe..c585dbd2bb 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/DeleteCaseTask.java +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/DeleteCaseTask.java @@ -594,12 +594,12 @@ final class DeleteCaseTask implements Runnable { * otherwise. */ @NbBundle.Messages({ - "# {0} - data source name", "# {1} - device id", "DeleteCaseTask.progress.deletingDataSource=Deleting data source {0} with device id {1}...",}) + "# {0} - data source path", "DeleteCaseTask.progress.deletingDataSource=Deleting data source {0}..." + }) private boolean deleteDataSources(Manifest manifest, List dataSources) { - final String dataSourceFileName = manifest.getDataSourceFileName(); - final String dataSourceDeviceId = manifest.getDeviceId(); - progress.progress(Bundle.DeleteCaseTask_progress_deletingDataSource(dataSourceFileName, dataSourceDeviceId)); - logger.log(Level.INFO, String.format("Deleting data source %s with device id %s from %s", dataSourceFileName, dataSourceDeviceId, caseNodeData.getDisplayName())); + final Path dataSourcePath = manifest.getDataSourcePath(); + progress.progress(Bundle.DeleteCaseTask_progress_deletingDataSource(dataSourcePath)); + logger.log(Level.INFO, String.format("Deleting data source %s from %s", dataSourcePath, caseNodeData.getDisplayName())); /* * There are two possibilities here. The data source may be an image, @@ -609,26 +609,27 @@ final class DeleteCaseTask implements Runnable { * set, report file, archive file, etc.). In this case, just the file * referenced by the manifest will be deleted. */ - boolean allFilesDeleted = true; Set filesToDelete = new HashSet<>(); - for (DataSource dataSource : dataSources) { + int index = 0; + while (index < dataSources.size() && filesToDelete.isEmpty()) { + DataSource dataSource = dataSources.get(index); if (dataSource instanceof Image) { Image image = (Image) dataSource; - if (image.getName().equals(dataSourceFileName) && image.getDeviceId().equals(dataSourceDeviceId)) { - String[] imageFilePaths = image.getPaths(); - for (String path : imageFilePaths) { - Path imageFilePath = Paths.get(path); - filesToDelete.add(imageFilePath); + String[] imageFilePaths = image.getPaths(); + for (String imageFilePath : imageFilePaths) { + Path candidatePath = Paths.get(imageFilePath); + if (candidatePath.equals(dataSourcePath)) { + for (String path : imageFilePaths) { + filesToDelete.add(Paths.get(path)); + } + break; } - break; } } } - if (filesToDelete.isEmpty()) { - final Path dataSourcePath = manifest.getDataSourcePath(); - filesToDelete.add(dataSourcePath); - } - + filesToDelete.add(dataSourcePath); + + boolean allFilesDeleted = true; for (Path path : filesToDelete) { File fileOrDir = path.toFile(); if (fileOrDir.exists() && !FileUtil.deleteFileDir(fileOrDir)) {