mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
fail if no provider and no image paths
This commit is contained in:
parent
42d3429dd4
commit
425d45324e
@ -107,6 +107,9 @@ Case.servicesException.notificationTitle={0} Error
|
||||
Case.servicesException.serviceResourcesCloseError=Could not close case resources for {0} service: {1}
|
||||
Case_caseType_multiUser=Multi-user case
|
||||
Case_caseType_singleUser=Single-user case
|
||||
Case_checkImagePaths_exceptionOccurred=An exception occurred while checking if image paths are present
|
||||
# {0} - paths
|
||||
Case_checkImagePaths_noPaths=The following images had no associated paths: {0}
|
||||
CaseDetailsPanel.casePanel.border.title=Case
|
||||
CaseDetailsPanel.examinerLabel.text=Name:
|
||||
CaseDetailsPanel.examinerPanel.border.title=Examiner
|
||||
|
@ -41,6 +41,7 @@ import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@ -64,6 +65,7 @@ import javax.annotation.concurrent.GuardedBy;
|
||||
import javax.annotation.concurrent.ThreadSafe;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.openide.util.Lookup;
|
||||
import org.openide.util.NbBundle;
|
||||
@ -2284,6 +2286,8 @@ public class Case {
|
||||
checkForCancellation();
|
||||
openCommunicationChannels(progressIndicator);
|
||||
checkForCancellation();
|
||||
checkImagePaths();
|
||||
checkForCancellation();
|
||||
openFileSystemsInBackground();
|
||||
return null;
|
||||
|
||||
@ -2302,6 +2306,40 @@ public class Case {
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if content provider is present, all images have paths, or throw an error.
|
||||
* @throws CaseActionException
|
||||
*/
|
||||
@Messages({
|
||||
"# {0} - paths",
|
||||
"Case_checkImagePaths_noPaths=The following images had no associated paths: {0}",
|
||||
"Case_checkImagePaths_exceptionOccurred=An exception occurred while checking if image paths are present"
|
||||
})
|
||||
private void checkImagePaths() throws CaseActionException {
|
||||
// if there is a content provider, images don't necessarily need paths
|
||||
if (StringUtils.isNotBlank(this.metadata.getContentProviderName())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// identify images without paths
|
||||
try {
|
||||
List<Image> noPathImages = new ArrayList<>();
|
||||
List<Image> images = this.caseDb.getImages();
|
||||
for (Image img: images) {
|
||||
if (ArrayUtils.isEmpty(img.getPaths())) {
|
||||
noPathImages.add(img);
|
||||
}
|
||||
}
|
||||
|
||||
if (!noPathImages.isEmpty()) {
|
||||
String imageListStr = noPathImages.stream().map(Image::getName).collect(Collectors.joining(", "));
|
||||
throw new CaseActionException(Bundle.Case_checkImagePaths_noPaths(imageListStr));
|
||||
}
|
||||
} catch (TskCoreException ex) {
|
||||
throw new CaseActionException(Bundle.Case_checkImagePaths_exceptionOccurred(), ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts a background task that reads a sector from each file system of
|
||||
|
Loading…
x
Reference in New Issue
Block a user