diff --git a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/AddFileExtensionAction.java b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/AddFileExtensionAction.java index 782d3b68f5..77815c5eea 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/AddFileExtensionAction.java +++ b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/AddFileExtensionAction.java @@ -19,9 +19,8 @@ package org.sleuthkit.autopsy.modules.fileextmismatch; import java.awt.event.ActionEvent; -import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; +import java.util.Set; import java.util.logging.Level; import javax.swing.AbstractAction; import javax.swing.JOptionPane; @@ -51,13 +50,13 @@ class AddFileExtensionAction extends AbstractAction { @Override @Messages({"AddFileExtensionAction.writeError.message=Could not write file extension settings."}) public void actionPerformed(ActionEvent event) { - HashMap editableMap; + HashMap> editableMap; editableMap = settings.getMimeTypeToExtsMap(); - ArrayList editedExtensions = new ArrayList<>(Arrays.asList(editableMap.get(mimeTypeStr))); + Set editedExtensions = editableMap.get(mimeTypeStr); editedExtensions.add(extStr); // Old array will be replaced by new array for this key - editableMap.put(mimeTypeStr, editedExtensions.toArray(new String[0])); + editableMap.put(mimeTypeStr, editedExtensions); try { FileExtMismatchSettings.writeSettings(new FileExtMismatchSettings(editableMap)); diff --git a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchContextMenuActionsProvider.java b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchContextMenuActionsProvider.java index 76657aea33..e7e547e846 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchContextMenuActionsProvider.java +++ b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchContextMenuActionsProvider.java @@ -19,10 +19,10 @@ package org.sleuthkit.autopsy.modules.fileextmismatch; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.List; +import java.util.Set; import java.util.logging.Level; import javax.swing.Action; import javax.swing.JOptionPane; @@ -87,12 +87,12 @@ public class FileExtMismatchContextMenuActionsProvider implements ContextMenuAct extStr, mimeTypeStr); // Check if already added - HashMap editableMap; + HashMap> editableMap; try { FileExtMismatchSettings settings = FileExtMismatchSettings.readSettings(); editableMap = settings.getMimeTypeToExtsMap(); actions.add(new AddFileExtensionAction(menuItemStr, extStr, mimeTypeStr, settings)); - ArrayList editedExtensions = new ArrayList<>(Arrays.asList(editableMap.get(mimeTypeStr))); + Set editedExtensions = editableMap.get(mimeTypeStr); if (editedExtensions.contains(extStr)) { // Informs the user that they have already added this extension to this MIME type actions.get(0).setEnabled(false); diff --git a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java index ab83419d9c..2bcc005749 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java +++ b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java @@ -18,10 +18,9 @@ */ package org.sleuthkit.autopsy.modules.fileextmismatch; -import java.util.Arrays; import java.util.Collections; import java.util.HashMap; -import java.util.List; +import java.util.Set; import java.util.logging.Level; import org.openide.util.NbBundle; import org.openide.util.NbBundle.Messages; @@ -52,7 +51,7 @@ public class FileExtMismatchIngestModule implements FileIngestModule { private static final Logger logger = Logger.getLogger(FileExtMismatchIngestModule.class.getName()); private final IngestServices services = IngestServices.getInstance(); private final FileExtMismatchDetectorModuleSettings settings; - private HashMap mimeTypeToExtsMap = new HashMap<>(); + private HashMap> mimeTypeToExtsMap = new HashMap<>(); private long jobId; private static final HashMap totalsForIngestJobs = new HashMap<>(); private static final IngestModuleReferenceCounter refCounter = new IngestModuleReferenceCounter(); @@ -109,7 +108,7 @@ public class FileExtMismatchIngestModule implements FileIngestModule { @Override public ProcessResult process(AbstractFile abstractFile) { blackboard = Case.getCurrentCase().getServices().getBlackboard(); - if(this.settings.skipKnownFiles() && (abstractFile.getKnown() == FileKnown.KNOWN)) { + if (this.settings.skipKnownFiles() && (abstractFile.getKnown() == FileKnown.KNOWN)) { return ProcessResult.OK; } @@ -180,16 +179,12 @@ public class FileExtMismatchIngestModule implements FileIngestModule { } //get known allowed values from the map for this type - String[] allowedExtArray = mimeTypeToExtsMap.get(currActualSigType); - if (allowedExtArray != null) { - List allowedExtList = Arrays.asList(allowedExtArray); - + Set allowedExtSet = mimeTypeToExtsMap.get(currActualSigType); + if (allowedExtSet != null) { // see if the filename ext is in the allowed list - if (allowedExtList != null) { - for (String e : allowedExtList) { - if (e.equals(currActualExt)) { - return false; - } + for (String e : allowedExtSet) { + if (e.equals(currActualExt)) { + return false; } return true; //potential mismatch } diff --git a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettings.java b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettings.java index f873c908df..57b9b52893 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettings.java +++ b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettings.java @@ -23,9 +23,9 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.Serializable; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; +import java.util.HashSet; +import java.util.Set; import java.util.logging.Level; import org.openide.util.io.NbObjectInputStream; import org.openide.util.io.NbObjectOutputStream; @@ -44,7 +44,7 @@ import org.w3c.dom.NodeList; class FileExtMismatchSettings implements Serializable { private static final long serialVersionUID = 1L; - private HashMap mimeTypeToExtsMap; + private HashMap> mimeTypeToExtsMap; private static final Logger logger = Logger.getLogger(FileExtMismatchSettings.class.getName()); private static final String SIG_EL = "signature"; //NON-NLS private static final String EXT_EL = "ext"; //NON-NLS @@ -68,21 +68,21 @@ class FileExtMismatchSettings implements Serializable { * * @param mimeTypeToExtsMap */ - FileExtMismatchSettings(HashMap mimeTypeToExtsMap) { + FileExtMismatchSettings(HashMap> mimeTypeToExtsMap) { this.mimeTypeToExtsMap = mimeTypeToExtsMap; } /** * @return the mime type to extension map */ - HashMap getMimeTypeToExtsMap() { + HashMap> getMimeTypeToExtsMap() { return mimeTypeToExtsMap; } /** * Sets the signature to extension map for this settings. */ - public void setMimeTypeToExtsMap(HashMap mimeTypeToExtsMap) { + public void setMimeTypeToExtsMap(HashMap> mimeTypeToExtsMap) { this.mimeTypeToExtsMap = mimeTypeToExtsMap; } @@ -113,7 +113,7 @@ class FileExtMismatchSettings implements Serializable { } private static FileExtMismatchSettings readXmlSettings() throws FileExtMismatchSettingsException { - HashMap sigTypeToExtMap = new HashMap<>(); + HashMap> sigTypeToExtMap = new HashMap<>(); //Next tries to read the xml file if the serialized file did not exist File xmlFile = new File(FILTER_CONFIG_FILE); if (xmlFile.exists()) { @@ -143,13 +143,12 @@ class FileExtMismatchSettings implements Serializable { final int numExts = extNList.getLength(); if (numExts != 0) { - List extStrings = new ArrayList<>(); + Set extStrings = new HashSet<>(); for (int extIndex = 0; extIndex < numExts; ++extIndex) { Element extEl = (Element) extNList.item(extIndex); extStrings.add(extEl.getTextContent()); } - String[] sarray = extStrings.toArray(new String[0]); - sigTypeToExtMap.put(mimetype, sarray); + sigTypeToExtMap.put(mimetype, extStrings); } else { sigTypeToExtMap.put(mimetype, null); //ok to have an empty type (the ingest module will not use it) } diff --git a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettingsPanel.java index 4d446a4865..35bc8d539c 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettingsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchSettingsPanel.java @@ -20,19 +20,20 @@ package org.sleuthkit.autopsy.modules.fileextmismatch; import java.awt.Color; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; import java.util.logging.Level; import javax.swing.JOptionPane; import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.AbstractTableModel; -import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel; import org.openide.util.NbBundle; -import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.corecomponents.OptionsPanel; +import org.sleuthkit.autopsy.coreutils.Logger; +import org.sleuthkit.autopsy.ingest.IngestModuleGlobalSettingsPanel; import org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector; /** @@ -42,7 +43,7 @@ import org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector; final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel implements OptionsPanel { private static final Logger logger = Logger.getLogger(FileExtMismatchSettingsPanel.class.getName()); - private HashMap editableMap = new HashMap<>(); + private HashMap> editableMap = new HashMap<>(); private ArrayList mimeList = null; private ArrayList currentExtensions = null; private MimeTableModel mimeTableModel; @@ -382,11 +383,11 @@ final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel return; } - ArrayList editedExtensions = new ArrayList<>(Arrays.asList(editableMap.get(selectedMime))); + Set editedExtensions = editableMap.get(selectedMime); editedExtensions.add(newExt); // Old array will be replaced by new array for this key - editableMap.put(selectedMime, editedExtensions.toArray(new String[0])); + editableMap.put(selectedMime, editedExtensions); // Refresh table updateExtList(); @@ -430,7 +431,7 @@ final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel return; } - editableMap.put(newMime, new String[0]); + editableMap.put(newMime, new HashSet()); // Refresh table updateMimeList(); @@ -491,12 +492,12 @@ final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel return; } - ArrayList editedExtensions = new ArrayList<>(Arrays.asList(editableMap.get(selectedMime))); + Set editedExtensions = editableMap.get(selectedMime); editedExtensions.remove(selectedExt); String deadExt = selectedExt; // Old array will be replaced by new array for this key - editableMap.put(selectedMime, editedExtensions.toArray(new String[0])); + editableMap.put(selectedMime, editedExtensions); // Refresh tables updateExtList(); @@ -517,10 +518,10 @@ final class FileExtMismatchSettingsPanel extends IngestModuleGlobalSettingsPanel } private void updateExtList() { - String[] temp = editableMap.get(selectedMime); + Set temp = editableMap.get(selectedMime); if (temp != null) { - currentExtensions = new ArrayList<>(Arrays.asList(temp)); - if (temp.length > 0) { + currentExtensions = new ArrayList<>(temp); + if (temp.size() > 0) { Collections.sort(currentExtensions); } } else {