From c266b4fd41add91bd393b0f40fc07a8bb9868a03 Mon Sep 17 00:00:00 2001 From: adam-m Date: Mon, 9 Apr 2012 17:03:45 -0400 Subject: [PATCH] ingest progress bar: show more accurately which file is being ingested now --- .../autopsy/ingest/IngestManager.java | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestManager.java index c8ba2962e1..fc1a3da62a 100755 --- a/Ingest/src/org/sleuthkit/autopsy/ingest/IngestManager.java +++ b/Ingest/src/org/sleuthkit/autopsy/ingest/IngestManager.java @@ -554,8 +554,6 @@ public class IngestManager { return ret; } - - //image worker to remove itself when complete or interrupted void removeImageIngestWorker(IngestImageThread worker) { //remove worker @@ -643,7 +641,7 @@ public class IngestManager { void enqueue(FsContent fsContent, IngestServiceFsContent service) { //fsContentUnits.put(fsContent, Collections.singletonList(service)); List services = fsContentUnits.get(fsContent); - if(services == null) { + if (services == null) { services = new ArrayList(); fsContentUnits.put(fsContent, services); } @@ -653,7 +651,7 @@ public class IngestManager { void enqueue(FsContent fsContent, List services) { List oldServices = fsContentUnits.get(fsContent); - if(oldServices == null) { + if (oldServices == null) { oldServices = new ArrayList(); fsContentUnits.put(fsContent, oldServices); } @@ -691,9 +689,10 @@ public class IngestManager { * @return true if the service is enqueued to do work */ boolean hasServiceEnqueued(IngestServiceFsContent service) { - for(List list : fsContentUnits.values()) { - if(list.contains(service)) + for (List list : fsContentUnits.values()) { + if (list.contains(service)) { return true; + } } return false; } @@ -706,8 +705,8 @@ public class IngestManager { public String printQueue() { StringBuilder sb = new StringBuilder(); /*for (QueueUnit u : fsContentUnits) { - sb.append(u.toString()); - sb.append("\n"); + sb.append(u.toString()); + sb.append("\n"); }*/ return sb.toString(); } @@ -732,7 +731,7 @@ public class IngestManager { void enqueue(Image image, IngestServiceImage service) { List services = imageUnits.get(image); - if(services == null) { + if (services == null) { services = new ArrayList(); imageUnits.put(image, services); } @@ -741,7 +740,7 @@ public class IngestManager { void enqueue(Image image, List services) { List oldServices = imageUnits.get(image); - if(oldServices == null) { + if (oldServices == null) { oldServices = new ArrayList(); imageUnits.put(image, oldServices); } @@ -818,19 +817,19 @@ public class IngestManager { public String toHtmlString() { StringBuilder sb = new StringBuilder(); sb.append(""); - + sb.append("Ingest time: ").append(getTotalTimeString()).append("
"); sb.append("Total errors: ").append(errorsTotal).append("
"); /* if (errorsTotal > 0) { - sb.append("Errors per service:"); - for (IngestServiceAbstract service : errors.keySet()) { - final int errorsService = errors.get(service); - sb.append("\t").append(service.getName()).append(": ").append(errorsService).append("
"); - } + sb.append("Errors per service:"); + for (IngestServiceAbstract service : errors.keySet()) { + final int errorsService = errors.get(service); + sb.append("\t").append(service.getName()).append(": ").append(errorsService).append("
"); + } } * */ - + sb.append(""); return sb.toString(); } @@ -927,20 +926,23 @@ public class IngestManager { fsContentServiceResults.clear(); } + final FsContent fileToProcess = unit.getKey(); + for (IngestServiceFsContent service : unit.getValue()) { if (isCancelled()) { return null; } - final FsContent fileToProcess = unit.getKey(); - if ( (fileToProcess.getMeta_flags() & TskData.TSK_FS_META_FLAG_ENUM.UNALLOC.getMetaFlag() ) != 0) { + progress.progress(fileToProcess.getName(), processedFiles); + + if ((fileToProcess.getMeta_flags() & TskData.TSK_FS_META_FLAG_ENUM.UNALLOC.getMetaFlag()) != 0) { //skip unallocated files, processing certain unalloc files may cause some modules to hang //TODO unallocated space and files are a future feature progress.progress(unit.getKey().getName(), ++processedFiles); --numFsContents; continue; } - + try { IngestServiceFsContent.ProcessResult result = service.process(fileToProcess); //handle unconditional stop @@ -966,7 +968,7 @@ public class IngestManager { progress.switchToIndeterminate(); progress.switchToDeterminate(numFsContents); } - progress.progress(unit.getKey().getName(), ++processedFiles); + progress.progress(fileToProcess.getName(), ++processedFiles); --numFsContents; } //end of this fsContent logger.log(Level.INFO, "Done background processing"); @@ -1011,7 +1013,6 @@ public class IngestManager { } - private void handleInterruption() { for (IngestServiceFsContent s : fsContentServices) { s.stop(); @@ -1109,10 +1110,10 @@ public class IngestManager { //addImage((IngestServiceImage) service, image); break; case FsContent: - if(fsContents == null) { + if (fsContents == null) { long start = System.currentTimeMillis(); fsContents = new GetAllFilesContentVisitor().visit(image); - logger.info("Get all files took " + (System.currentTimeMillis()-start) + "ms"); + logger.info("Get all files took " + (System.currentTimeMillis() - start) + "ms"); } //enqueue the same singleton fscontent service logger.log(Level.INFO, "Adding image " + image.getName() + " with " + fsContents.size() + " number of fsContent to service " + service.getName()); @@ -1123,8 +1124,9 @@ public class IngestManager { } progress.progress(serviceName + " " + imageName, ++processed); } - if(fsContents != null) + if (fsContents != null) { fsContents.clear(); + } } //logger.log(Level.INFO, fsContentQueue.printQueue());