mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-08 22:29:33 +00:00
bug fixes
This commit is contained in:
parent
23eb75b12b
commit
7a7a48762f
@ -31,6 +31,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.concurrent.ConcurrentMap;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
@ -84,9 +85,10 @@ public final class ThunderbirdMboxFileIngestModule implements FileIngestModule {
|
|||||||
private Blackboard blackboard;
|
private Blackboard blackboard;
|
||||||
private CommunicationArtifactsHelper communicationArtifactsHelper;
|
private CommunicationArtifactsHelper communicationArtifactsHelper;
|
||||||
|
|
||||||
// A cache of custom attributes for the VcardParser unique to each ingest run.
|
// A cache of custom attributes for the VcardParser unique to each ingest run, but consistent across threads.
|
||||||
private Map<String, BlackboardAttribute.Type> customAttributeCache;
|
private static ConcurrentMap<String, BlackboardAttribute.Type> customAttributeCache = new ConcurrentHashMap<>();
|
||||||
|
private static Object customAttributeCacheLock = new Object();
|
||||||
|
|
||||||
private static final int MBOX_SIZE_TO_SPLIT = 1048576000;
|
private static final int MBOX_SIZE_TO_SPLIT = 1048576000;
|
||||||
private Case currentCase;
|
private Case currentCase;
|
||||||
|
|
||||||
@ -100,7 +102,13 @@ public final class ThunderbirdMboxFileIngestModule implements FileIngestModule {
|
|||||||
@Messages({"ThunderbirdMboxFileIngestModule.noOpenCase.errMsg=Exception while getting open case."})
|
@Messages({"ThunderbirdMboxFileIngestModule.noOpenCase.errMsg=Exception while getting open case."})
|
||||||
public void startUp(IngestJobContext context) throws IngestModuleException {
|
public void startUp(IngestJobContext context) throws IngestModuleException {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.customAttributeCache = new ConcurrentHashMap<>();
|
|
||||||
|
synchronized(customAttributeCacheLock) {
|
||||||
|
if (!customAttributeCache.isEmpty()) {
|
||||||
|
customAttributeCache.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
currentCase = Case.getCurrentCaseThrows();
|
currentCase = Case.getCurrentCaseThrows();
|
||||||
fileManager = Case.getCurrentCaseThrows().getServices().getFileManager();
|
fileManager = Case.getCurrentCaseThrows().getServices().getFileManager();
|
||||||
@ -917,7 +925,11 @@ public final class ThunderbirdMboxFileIngestModule implements FileIngestModule {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void shutDown() {
|
public void shutDown() {
|
||||||
// nothing to shut down
|
synchronized(customAttributeCacheLock) {
|
||||||
|
if (!customAttributeCache.isEmpty()) {
|
||||||
|
customAttributeCache.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,7 @@ import java.util.Collection;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentMap;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.openide.util.NbBundle;
|
import org.openide.util.NbBundle;
|
||||||
@ -102,12 +103,12 @@ final class VcardParser {
|
|||||||
* A custom attribute cache provided to every VcardParser from the
|
* A custom attribute cache provided to every VcardParser from the
|
||||||
* ThunderbirdMboxFileIngestModule, but unique to one ingest run.
|
* ThunderbirdMboxFileIngestModule, but unique to one ingest run.
|
||||||
*/
|
*/
|
||||||
private final Map<String, BlackboardAttribute.Type> customAttributeCache;
|
private final ConcurrentMap<String, BlackboardAttribute.Type> customAttributeCache;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a VcardParser object.
|
* Create a VcardParser object.
|
||||||
*/
|
*/
|
||||||
VcardParser(Case currentCase, IngestJobContext context, Map<String, BlackboardAttribute.Type> customAttributeCache) {
|
VcardParser(Case currentCase, IngestJobContext context, ConcurrentMap<String, BlackboardAttribute.Type> customAttributeCache) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.currentCase = currentCase;
|
this.currentCase = currentCase;
|
||||||
tskCase = currentCase.getSleuthkitCase();
|
tskCase = currentCase.getSleuthkitCase();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user