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