diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java index b1554eb080..ecfafd7844 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java @@ -191,6 +191,9 @@ final class LocalFilesPanel extends javax.swing.JPanel { StringBuilder allPaths = new StringBuilder(); for (File f : files) { currentFiles.add(f); + } + for (File f : currentFiles) { + //loop over set of all files to ensure list is accurate //update label allPaths.append(f.getAbsolutePath()).append("\n"); } diff --git a/Core/src/org/sleuthkit/autopsy/ingest/DataSourceIngestJob.java b/Core/src/org/sleuthkit/autopsy/ingest/DataSourceIngestJob.java index d39acd8f49..119d879801 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/DataSourceIngestJob.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/DataSourceIngestJob.java @@ -524,7 +524,11 @@ final class DataSourceIngestJob { DataSourceIngestJob.taskScheduler.scheduleDataSourceIngestTask(this); } else { logger.log(Level.INFO, "Scheduling file level analysis tasks for {0} (jobId={1}), no first stage data source level analysis configured", new Object[]{dataSource.getName(), this.id}); //NON-NLS - DataSourceIngestJob.taskScheduler.scheduleFileIngestTasks(this, this.files); + if (this.files.isEmpty()) { + DataSourceIngestJob.taskScheduler.scheduleFileIngestTasks(this); + } else { + DataSourceIngestJob.taskScheduler.scheduleFileIngestTasks(this, this.files); + } /** * No data source ingest task has been scheduled for this stage, and diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestTasksScheduler.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestTasksScheduler.java index 36b09035b1..d528b2b7d6 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestTasksScheduler.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestTasksScheduler.java @@ -211,16 +211,23 @@ final class IngestTasksScheduler { * method is adding derived files from a higher priority task that * preceded the tasks currently in the queue. */ - for (FileIngestTask newTask : newTasksForFileIngestThreads) { - try { - this.queuedAndRunningFileTasks.add(newTask); - this.fileTaskQueueForIngestThreads.addFirst(newTask); - } catch (InterruptedException ex) { - this.queuedAndRunningFileTasks.remove(newTask); - IngestTasksScheduler.logger.log(Level.INFO, "Ingest cancelled while blocked on a full file ingest threads queue", ex); - Thread.currentThread().interrupt(); - break; + if (!newTasksForFileIngestThreads.isEmpty()) { + for (FileIngestTask newTask : newTasksForFileIngestThreads) { + try { + this.queuedAndRunningFileTasks.add(newTask); + this.fileTaskQueueForIngestThreads.addFirst(newTask); + } catch (InterruptedException ex) { + this.queuedAndRunningFileTasks.remove(newTask); + IngestTasksScheduler.logger.log(Level.INFO, "Ingest cancelled while blocked on a full file ingest threads queue", ex); + Thread.currentThread().interrupt(); + break; + } } + } else { + /* + * Only directory tasks were queued, so shuffle. + */ + this.shuffleFileTaskQueues(); } } } diff --git a/ruleset.xml b/ruleset.xml index 5d39ea689e..ef167f0fc9 100644 --- a/ruleset.xml +++ b/ruleset.xml @@ -58,7 +58,7 @@ - +