mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-11 23:46:15 +00:00
better progress bar updates when new file scheduled, minor refactoring
This commit is contained in:
parent
e6c936957d
commit
c6cb04463e
@ -59,7 +59,7 @@ public class IngestManager {
|
||||
//queues
|
||||
private final IngestScheduler scheduler;
|
||||
//workers
|
||||
private IngestAbstractFileThread abstractFileIngester;
|
||||
private IngestAbstractFileProcessor abstractFileIngester;
|
||||
private List<IngestImageThread> imageIngesters;
|
||||
private SwingWorker<Object, Void> queueWorker;
|
||||
//modules
|
||||
@ -250,7 +250,9 @@ public class IngestManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Schedule a file for ingest.
|
||||
* Schedule a file for ingest.
|
||||
* Scheduler updates the current progress.
|
||||
*
|
||||
* The file is usually a product of a recently ran ingest.
|
||||
* Now we want to process this file with the same ingest context.
|
||||
*
|
||||
@ -346,7 +348,7 @@ public class IngestManager {
|
||||
|
||||
if (startAbstractFileIngester) {
|
||||
stats = new IngestManagerStats();
|
||||
abstractFileIngester = new IngestAbstractFileThread();
|
||||
abstractFileIngester = new IngestAbstractFileProcessor();
|
||||
//init all fs modules, everytime new worker starts
|
||||
for (IngestModuleAbstractFile s : abstractFileModules) {
|
||||
IngestModuleInit moduleInit = new IngestModuleInit();
|
||||
@ -790,11 +792,13 @@ public class IngestManager {
|
||||
//ingester worker for AbstractFile queue
|
||||
//worker runs until AbstractFile queue is consumed
|
||||
//and if needed, new instance is created and started when data arrives
|
||||
private class IngestAbstractFileThread extends SwingWorker<Object, Void> {
|
||||
private class IngestAbstractFileProcessor extends SwingWorker<Object, Void> {
|
||||
|
||||
private Logger logger = Logger.getLogger(IngestAbstractFileThread.class.getName());
|
||||
private Logger logger = Logger.getLogger(IngestAbstractFileProcessor.class.getName());
|
||||
|
||||
//progress bar
|
||||
private ProgressHandle progress;
|
||||
|
||||
|
||||
@Override
|
||||
protected Object doInBackground() throws Exception {
|
||||
|
||||
@ -814,14 +818,16 @@ public class IngestManager {
|
||||
if (progress != null) {
|
||||
progress.setDisplayName(displayName + " (Cancelling...)");
|
||||
}
|
||||
return IngestAbstractFileThread.this.cancel(true);
|
||||
return IngestAbstractFileProcessor.this.cancel(true);
|
||||
}
|
||||
});
|
||||
|
||||
final IngestScheduler.FileScheduler fileScheduler = scheduler.getFileScheduler();
|
||||
|
||||
//initialize the progress bar
|
||||
progress.start();
|
||||
progress.switchToIndeterminate();
|
||||
//set initial totals and processed (to be updated as we process or new files are scheduled)
|
||||
int totalEnqueuedFiles = fileScheduler.getFilesEnqueuedEst();
|
||||
progress.switchToDeterminate(totalEnqueuedFiles);
|
||||
int processedFiles = 0;
|
||||
@ -858,7 +864,7 @@ public class IngestManager {
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.WARNING, "Exception from module: " + module.getName(), e);
|
||||
logger.log(Level.SEVERE, "Error: unexpected exception from module: " + module.getName(), e);
|
||||
stats.addError(module);
|
||||
}
|
||||
}
|
||||
@ -867,12 +873,12 @@ public class IngestManager {
|
||||
if (newTotalEnqueuedFiles > totalEnqueuedFiles) {
|
||||
//update if new enqueued
|
||||
totalEnqueuedFiles = newTotalEnqueuedFiles + 1;// + processedFiles + 1;
|
||||
processedFiles = 0;
|
||||
//processedFiles = 0;
|
||||
//reset
|
||||
progress.switchToIndeterminate();
|
||||
progress.switchToDeterminate(totalEnqueuedFiles);
|
||||
}
|
||||
if (processedFiles < totalEnqueuedFiles) { //fix for now to handle the same image enqueued twice
|
||||
|
||||
++processedFiles;
|
||||
}
|
||||
//--totalEnqueuedFiles;
|
||||
|
@ -18,7 +18,6 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.ingest;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Comparator;
|
||||
@ -160,11 +159,11 @@ class IngestScheduler {
|
||||
/**
|
||||
* query num files enqueued total num of files to be enqueued.
|
||||
*
|
||||
* Checks files for all the images currently in the queues.
|
||||
* Counts all files for all the images currently in the queues.
|
||||
*
|
||||
* @return approx. total num of files enqueued (or to be enqueued)
|
||||
*/
|
||||
private synchronized int queryNumFiles() {
|
||||
private synchronized int queryNumFilesinEnqueuedImages() {
|
||||
int totalFiles = 0;
|
||||
List<Image> images = getImages();
|
||||
|
||||
@ -368,7 +367,7 @@ class IngestScheduler {
|
||||
ProcessTask fileTask = new ProcessTask(file, originalContext);
|
||||
if (shouldEnqueueTask(fileTask)) {
|
||||
this.curFileProcessTasks.addFirst(fileTask);
|
||||
this.filesEnqueuedEst = queryNumFiles();
|
||||
++filesEnqueuedEst;
|
||||
}
|
||||
|
||||
|
||||
@ -403,7 +402,7 @@ class IngestScheduler {
|
||||
//adds and resorts the tasks
|
||||
this.rootProcessTasks.addAll(rootTasks);
|
||||
|
||||
this.filesEnqueuedEst = queryNumFiles();
|
||||
this.filesEnqueuedEst = queryNumFilesinEnqueuedImages();
|
||||
|
||||
//update the dir and file level queues if needed
|
||||
updateQueues();
|
||||
@ -774,8 +773,6 @@ class IngestScheduler {
|
||||
//queryB.append( "AND (type = ");
|
||||
//queryB.append(TskData.TSK_DB_FILES_TYPE_ENUM.FS.getFileType());
|
||||
//queryB.append(")");
|
||||
|
||||
ResultSet rs = null;
|
||||
try {
|
||||
final String query = queryB.toString();
|
||||
logger.log(Level.INFO, "Executing count files query: " + query);
|
||||
|
Loading…
x
Reference in New Issue
Block a user