diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java index ed3aa833ce..f73960aeca 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -770,23 +770,39 @@ public class IngestManager implements IngestProgressSnapshotProvider { /** * Updates the ingest progress snapshot when a new ingest module starts - * working on an ingest task. + * working on a data source level ingest task. * - * @param task The ingest task. + * @param task The data source ingest task. * @param currentModuleName The display name of the currently processing * module. */ - void setIngestTaskProgress(IngestTask task, String currentModuleName) { + void setIngestTaskProgress(DataSourceIngestTask task, String currentModuleName) { + IngestThreadActivitySnapshot prevSnap = ingestThreadActivitySnapshots.get(task.getThreadId()); + IngestThreadActivitySnapshot newSnap = new IngestThreadActivitySnapshot(task.getThreadId(), task.getIngestJobPipeline().getId(), currentModuleName, task.getDataSource()); + ingestThreadActivitySnapshots.put(task.getThreadId(), newSnap); + + /* + * Update the total run time for the PREVIOUS ingest module in the + * pipeline, which has now finished its processing for the task. + */ + incrementModuleRunTime(prevSnap.getActivity(), newSnap.getStartTime().getTime() - prevSnap.getStartTime().getTime()); + } + + /** + * Updates the ingest progress snapshot when a new ingest module starts + * working on a file ingest task. + * + * @param task The file ingest task. + * @param currentModuleName The display name of the currently processing + * module. + */ + void setIngestTaskProgress(FileIngestTask task, String currentModuleName) { IngestThreadActivitySnapshot prevSnap = ingestThreadActivitySnapshots.get(task.getThreadId()); IngestThreadActivitySnapshot newSnap; - if (task instanceof FileIngestTask) { - try { - newSnap = new IngestThreadActivitySnapshot(task.getThreadId(), task.getIngestJobPipeline().getId(), currentModuleName, task.getDataSource(), ((FileIngestTask)task).getFile()); - } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Error getting file from file ingest task", ex); - newSnap = new IngestThreadActivitySnapshot(task.getThreadId(), task.getIngestJobPipeline().getId(), currentModuleName, task.getDataSource()); - } - } else { + try { + newSnap = new IngestThreadActivitySnapshot(task.getThreadId(), task.getIngestJobPipeline().getId(), currentModuleName, task.getDataSource(), task.getFile()); + } catch (TskCoreException ex) { + logger.log(Level.SEVERE, "Error getting file from file ingest task", ex); newSnap = new IngestThreadActivitySnapshot(task.getThreadId(), task.getIngestJobPipeline().getId(), currentModuleName, task.getDataSource()); } ingestThreadActivitySnapshots.put(task.getThreadId(), newSnap); @@ -803,8 +819,7 @@ public class IngestManager implements IngestProgressSnapshotProvider { * * @param task The ingest task. */ - void setIngestTaskProgressCompleted(IngestTask task - ) { + void setIngestTaskProgressCompleted(IngestTask task) { IngestThreadActivitySnapshot prevSnap = ingestThreadActivitySnapshots.get(task.getThreadId()); IngestThreadActivitySnapshot newSnap = new IngestThreadActivitySnapshot(task.getThreadId()); ingestThreadActivitySnapshots.put(task.getThreadId(), newSnap);