mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-18 10:37:43 +00:00
Merge remote-tracking branch 'upstream/develop' into keywordDocs
This commit is contained in:
commit
c0c04819bb
@ -25,6 +25,7 @@ import java.nio.file.Paths;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.apache.commons.io.FilenameUtils;
|
||||||
import org.openide.util.Exceptions;
|
import org.openide.util.Exceptions;
|
||||||
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
|
import org.sleuthkit.autopsy.coreutils.ModuleSettings;
|
||||||
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
|
import org.sleuthkit.autopsy.coreutils.PlatformUtil;
|
||||||
@ -38,6 +39,7 @@ public final class IngestProfiles {
|
|||||||
private static final String PROFILE_NAME_KEY = "Profile_Name";
|
private static final String PROFILE_NAME_KEY = "Profile_Name";
|
||||||
private static final String PROFILE_DESC_KEY = "Profile_Description";
|
private static final String PROFILE_DESC_KEY = "Profile_Description";
|
||||||
private static final String PROFILE_FILTER_KEY = "Profile_Filter";
|
private static final String PROFILE_FILTER_KEY = "Profile_Filter";
|
||||||
|
private static final String PROFILE_FILE_EXT = ".properties";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the collection of profiles which currently exist.
|
* Gets the collection of profiles which currently exist.
|
||||||
@ -50,7 +52,7 @@ public final class IngestProfiles {
|
|||||||
List<IngestProfile> profileList = new ArrayList<>();
|
List<IngestProfile> profileList = new ArrayList<>();
|
||||||
if (directoryListing != null) {
|
if (directoryListing != null) {
|
||||||
for (File child : directoryListing) {
|
for (File child : directoryListing) {
|
||||||
String name = child.getName().split("\\.")[0];
|
String name = FilenameUtils.removeExtension(child.getName());
|
||||||
String context = PROFILE_FOLDER + File.separator + name;
|
String context = PROFILE_FOLDER + File.separator + name;
|
||||||
String desc = ModuleSettings.getConfigSetting(context, PROFILE_DESC_KEY);
|
String desc = ModuleSettings.getConfigSetting(context, PROFILE_DESC_KEY);
|
||||||
String fileIngestFilter = ModuleSettings.getConfigSetting(context, PROFILE_FILTER_KEY);
|
String fileIngestFilter = ModuleSettings.getConfigSetting(context, PROFILE_FILTER_KEY);
|
||||||
@ -137,8 +139,8 @@ public final class IngestProfiles {
|
|||||||
*/
|
*/
|
||||||
synchronized static void deleteProfile(IngestProfile selectedProfile) {
|
synchronized static void deleteProfile(IngestProfile selectedProfile) {
|
||||||
try {
|
try {
|
||||||
Files.deleteIfExists(Paths.get(PlatformUtil.getUserConfigDirectory(), PROFILE_FOLDER, selectedProfile.getName() + ".properties"));
|
Files.deleteIfExists(Paths.get(PlatformUtil.getUserConfigDirectory(), PROFILE_FOLDER, selectedProfile.getName() + PROFILE_FILE_EXT));
|
||||||
Files.deleteIfExists(Paths.get(PlatformUtil.getUserConfigDirectory(), selectedProfile.getName() + ".properties"));
|
Files.deleteIfExists(Paths.get(PlatformUtil.getUserConfigDirectory(), selectedProfile.getName() + PROFILE_FILE_EXT));
|
||||||
FileUtils.deleteDirectory(IngestJobSettings.getSavedModuleSettingsFolder(selectedProfile.getName() + File.separator).toFile());
|
FileUtils.deleteDirectory(IngestJobSettings.getSavedModuleSettingsFolder(selectedProfile.getName() + File.separator).toFile());
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
Exceptions.printStackTrace(ex);
|
Exceptions.printStackTrace(ex);
|
||||||
@ -153,11 +155,11 @@ public final class IngestProfiles {
|
|||||||
*/
|
*/
|
||||||
synchronized static void renameProfile(String oldName, String newName) {
|
synchronized static void renameProfile(String oldName, String newName) {
|
||||||
if (!oldName.equals(newName)) { //if renameProfile was called with the new name being the same as the old name, it is complete already
|
if (!oldName.equals(newName)) { //if renameProfile was called with the new name being the same as the old name, it is complete already
|
||||||
File oldFile = Paths.get(PlatformUtil.getUserConfigDirectory(), PROFILE_FOLDER, oldName + ".properties").toFile();
|
File oldFile = Paths.get(PlatformUtil.getUserConfigDirectory(), PROFILE_FOLDER, oldName + PROFILE_FILE_EXT).toFile();
|
||||||
File newFile = Paths.get(PlatformUtil.getUserConfigDirectory(), PROFILE_FOLDER, newName + ".properties").toFile();
|
File newFile = Paths.get(PlatformUtil.getUserConfigDirectory(), PROFILE_FOLDER, newName + PROFILE_FILE_EXT).toFile();
|
||||||
oldFile.renameTo(newFile);
|
oldFile.renameTo(newFile);
|
||||||
oldFile = Paths.get(PlatformUtil.getUserConfigDirectory(), oldName + ".properties").toFile();
|
oldFile = Paths.get(PlatformUtil.getUserConfigDirectory(), oldName + PROFILE_FILE_EXT).toFile();
|
||||||
newFile = Paths.get(PlatformUtil.getUserConfigDirectory(), newName + ".properties").toFile();
|
newFile = Paths.get(PlatformUtil.getUserConfigDirectory(), newName + PROFILE_FILE_EXT).toFile();
|
||||||
oldFile.renameTo(newFile);
|
oldFile.renameTo(newFile);
|
||||||
oldFile = IngestJobSettings.getSavedModuleSettingsFolder(oldName + File.separator).toFile();
|
oldFile = IngestJobSettings.getSavedModuleSettingsFolder(oldName + File.separator).toFile();
|
||||||
newFile = IngestJobSettings.getSavedModuleSettingsFolder(newName + File.separator).toFile();
|
newFile = IngestJobSettings.getSavedModuleSettingsFolder(newName + File.separator).toFile();
|
||||||
|
@ -105,7 +105,7 @@
|
|||||||
<Group type="102" attributes="0">
|
<Group type="102" attributes="0">
|
||||||
<Group type="103" groupAlignment="0" attributes="0">
|
<Group type="103" groupAlignment="0" attributes="0">
|
||||||
<Group type="102" attributes="0">
|
<Group type="102" attributes="0">
|
||||||
<Component id="profileDescLabel" pref="15" max="32767" attributes="0"/>
|
<Component id="profileDescLabel" min="-2" pref="15" max="-2" attributes="0"/>
|
||||||
<EmptySpace min="-2" max="-2" attributes="0"/>
|
<EmptySpace min="-2" max="-2" attributes="0"/>
|
||||||
<Component id="profileDescPane" min="-2" max="-2" attributes="0"/>
|
<Component id="profileDescPane" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace min="-2" max="-2" attributes="0"/>
|
<EmptySpace min="-2" max="-2" attributes="0"/>
|
||||||
|
@ -265,7 +265,7 @@ class ProfileSettingsPanel extends IngestModuleGlobalSettingsPanel implements Op
|
|||||||
.addGroup(layout.createSequentialGroup()
|
.addGroup(layout.createSequentialGroup()
|
||||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
.addGroup(layout.createSequentialGroup()
|
.addGroup(layout.createSequentialGroup()
|
||||||
.addComponent(profileDescLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 15, Short.MAX_VALUE)
|
.addComponent(profileDescLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(profileDescPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addComponent(profileDescPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
@ -44,8 +44,8 @@ FilesSetRulePanel.mimeCheck.text=MIME Type:
|
|||||||
FilesSetRulePanel.fileSizeCheck.text=File Size:
|
FilesSetRulePanel.fileSizeCheck.text=File Size:
|
||||||
FilesSetRulePanel.filesRadioButton.text=Files
|
FilesSetRulePanel.filesRadioButton.text=Files
|
||||||
FilesSetRulePanel.dirsRadioButton.text=Directories
|
FilesSetRulePanel.dirsRadioButton.text=Directories
|
||||||
FilesSetDefsPanel.interesting.setsListLabel.text=Rule Sets
|
FilesSetDefsPanel.interesting.setsListLabel.text=Rule Sets:
|
||||||
FilesSetDefsPanel.ingest.setsListLabel.text=File Ingest Filters
|
FilesSetDefsPanel.ingest.setsListLabel.text=File Ingest Filters:
|
||||||
FilesSetDefsPanel.interesting.jTextArea1.text=This module allows you to find files that match specified criteria. Each set has a list of rules, which will match on their chosen file characteristics. A file need only match one rule to be found.
|
FilesSetDefsPanel.interesting.jTextArea1.text=This module allows you to find files that match specified criteria. Each set has a list of rules, which will match on their chosen file characteristics. A file need only match one rule to be found.
|
||||||
FilesSetDefsPanel.ingest.jTextArea1.text=Add rules so that only a subset of the files in a data source are analyzed. Rules are organized into sets and only one set can be used at a time. A file need only match one rule to be analyzed.
|
FilesSetDefsPanel.ingest.jTextArea1.text=Add rules so that only a subset of the files in a data source are analyzed. Rules are organized into sets and only one set can be used at a time. A file need only match one rule to be analyzed.
|
||||||
FilesSetDefsPanel.interesting.editSetButton.text=Edit Set
|
FilesSetDefsPanel.interesting.editSetButton.text=Edit Set
|
||||||
|
@ -20,9 +20,9 @@ ExtractedContentPanel.copyMenuItem.text=Copy
|
|||||||
ExtractedContentPanel.selectAllMenuItem.text=Select All
|
ExtractedContentPanel.selectAllMenuItem.text=Select All
|
||||||
KeywordSearchEditListPanel.saveListButton.text=Copy List
|
KeywordSearchEditListPanel.saveListButton.text=Copy List
|
||||||
KeywordSearchEditListPanel.addWordField.text=
|
KeywordSearchEditListPanel.addWordField.text=
|
||||||
KeywordSearchEditListPanel.addWordButton.text=New keyword
|
KeywordSearchEditListPanel.addWordButton.text=New Keyword
|
||||||
KeywordSearchEditListPanel.chRegex.text=Regular Expression
|
KeywordSearchEditListPanel.chRegex.text=Regular Expression
|
||||||
KeywordSearchEditListPanel.deleteWordButton.text=Delete keywords
|
KeywordSearchEditListPanel.deleteWordButton.text=Delete Keywords
|
||||||
KeywordSearchEditListPanel.cutMenuItem.text=Cut
|
KeywordSearchEditListPanel.cutMenuItem.text=Cut
|
||||||
KeywordSearchEditListPanel.selectAllMenuItem.text=Select All
|
KeywordSearchEditListPanel.selectAllMenuItem.text=Select All
|
||||||
KeywordSearchEditListPanel.pasteMenuItem.text=Paste
|
KeywordSearchEditListPanel.pasteMenuItem.text=Paste
|
||||||
@ -46,7 +46,7 @@ ExtractedContentPanel.pageCurLabel.text=-
|
|||||||
ExtractedContentPanel.pageTotalLabel.text=-
|
ExtractedContentPanel.pageTotalLabel.text=-
|
||||||
ExtractedContentPanel.hitLabel.toolTipText=
|
ExtractedContentPanel.hitLabel.toolTipText=
|
||||||
KeywordSearchEditListPanel.ingestMessagesCheckbox.text=Send ingest inbox messages for each hit
|
KeywordSearchEditListPanel.ingestMessagesCheckbox.text=Send ingest inbox messages for each hit
|
||||||
KeywordSearchEditListPanel.ingestMessagesCheckbox.toolTipText=Send messages during ingest when hits on keyword from this list occur
|
KeywordSearchEditListPanel.ingestMessagesCheckbox.toolTipText=Send messages during ingest when hits on keywords from this list occur
|
||||||
KeywordSearchEditListPanel.keywordOptionsLabel.text=Keyword Options
|
KeywordSearchEditListPanel.keywordOptionsLabel.text=Keyword Options
|
||||||
KeywordSearchEditListPanel.listOptionsLabel.text=List Options
|
KeywordSearchEditListPanel.listOptionsLabel.text=List Options
|
||||||
KeywordSearchListsManagementPanel.keywordListsLabel.text=Keyword Lists:
|
KeywordSearchListsManagementPanel.keywordListsLabel.text=Keyword Lists:
|
||||||
@ -79,7 +79,7 @@ KeywordSearchConfigurationPanel.customizeComponents.genTabTitle=General
|
|||||||
KeywordSearchConfigurationPanel.customizeComponents.listLabToolTip=List configuration
|
KeywordSearchConfigurationPanel.customizeComponents.listLabToolTip=List configuration
|
||||||
KeywordSearchConfigurationPanel.customizeComponents.stringExtToolTip=String extraction configuration for Keyword Search Ingest
|
KeywordSearchConfigurationPanel.customizeComponents.stringExtToolTip=String extraction configuration for Keyword Search Ingest
|
||||||
KeywordSearchConfigurationPanel.customizeComponents.genTabToolTip=General configuration
|
KeywordSearchConfigurationPanel.customizeComponents.genTabToolTip=General configuration
|
||||||
KeywordSearchConfigurationPanel1.customizeComponents.title=Delete a keyword list
|
KeywordSearchConfigurationPanel1.customizeComponents.title=Delete a Keyword List
|
||||||
KeywordSearchConfigurationPanel1.customizeComponents.body=This will delete the keyword list globally (for all Cases). Do you want to proceed with the deletion?
|
KeywordSearchConfigurationPanel1.customizeComponents.body=This will delete the keyword list globally (for all Cases). Do you want to proceed with the deletion?
|
||||||
KeywordSearchConfigurationPanel1.customizeComponents.keywordListEmptyErr=Keyword List is empty and cannot be saved
|
KeywordSearchConfigurationPanel1.customizeComponents.keywordListEmptyErr=Keyword List is empty and cannot be saved
|
||||||
KeywordSearch.newKwListTitle=New keyword list name\:
|
KeywordSearch.newKwListTitle=New keyword list name\:
|
||||||
@ -99,12 +99,12 @@ KeywordSearchEditListPanel.addWordButtonAction.kwAlreadyExistsMsg=Keyword alread
|
|||||||
KeywordSearchEditListPanel.invalidKwMsg=Invalid keyword pattern. Use words or a correct regex pattern.
|
KeywordSearchEditListPanel.invalidKwMsg=Invalid keyword pattern. Use words or a correct regex pattern.
|
||||||
KeywordSearchEditListPanel.removeKwMsg=Removing a keyword
|
KeywordSearchEditListPanel.removeKwMsg=Removing a keyword
|
||||||
KeywordSearchEditListPanel.deleteWordButtonActionPerformed.delConfirmMsg=This will remove a keyword from the list globally (for all Cases). Do you want to proceed?
|
KeywordSearchEditListPanel.deleteWordButtonActionPerformed.delConfirmMsg=This will remove a keyword from the list globally (for all Cases). Do you want to proceed?
|
||||||
KeywordSearchEditListPanel.exportButtonActionPerformed.fileFilterLabel=Keyword List XML file
|
KeywordSearchEditListPanel.exportButtonActionPerformed.fileFilterLabel=Keyword List XML Files
|
||||||
KeywordSearchEditListPanel.exportButtonActionPerformed.fileExistPrompt=File {0} exists, overwrite?
|
KeywordSearchEditListPanel.exportButtonActionPerformed.fileExistPrompt=File {0} exists, overwrite?
|
||||||
KeywordSearchEditListPanel.exportButtonActionPerformed.kwListExportedMsg=Keyword lists exported
|
KeywordSearchEditListPanel.exportButtonActionPerformed.kwListExportedMsg=Keyword lists exported
|
||||||
KeywordSearchEditListPanel.kwColName=Keyword
|
KeywordSearchEditListPanel.kwColName=Keyword
|
||||||
KeywordSearchEditListPanel.addKeyword.message=Add a new word to the keyword search list\:
|
KeywordSearchEditListPanel.addKeyword.message=Add a new word to the keyword search list\:
|
||||||
KeywordSearchEditListPanel.addKeyword.title=New keyword
|
KeywordSearchEditListPanel.addKeyword.title=New Keyword
|
||||||
KeywordSearchFilterNode.getFileActions.openExternViewActLbl=Open in External Viewer
|
KeywordSearchFilterNode.getFileActions.openExternViewActLbl=Open in External Viewer
|
||||||
KeywordSearchFilterNode.getFileActions.searchSameMd5=Search for files with the same MD5 hash
|
KeywordSearchFilterNode.getFileActions.searchSameMd5=Search for files with the same MD5 hash
|
||||||
KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=View in New Window
|
KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=View in New Window
|
||||||
@ -273,8 +273,8 @@ KeywordSearchListsAbstract.saveList.errMsg2.msg=A module caused an error listeni
|
|||||||
KeywordSearchListsAbstract.writeLists.errMsg1.msg=A module caused an error listening to KeywordSearchListsAbstract updates. See log to determine which module. Some data could be incomplete.
|
KeywordSearchListsAbstract.writeLists.errMsg1.msg=A module caused an error listening to KeywordSearchListsAbstract updates. See log to determine which module. Some data could be incomplete.
|
||||||
KeywordSearchListsAbstract.writeLists.errMsg2.msg=A module caused an error listening to KeywordSearchListsAbstract updates. See log to determine which module. Some data could be incomplete.
|
KeywordSearchListsAbstract.writeLists.errMsg2.msg=A module caused an error listening to KeywordSearchListsAbstract updates. See log to determine which module. Some data could be incomplete.
|
||||||
KeywordSearchListsAbstract.deleteList.errMsg1.msg=A module caused an error listening to KeywordSearchListsAbstract updates. See log to determine which module. Some data could be incomplete.
|
KeywordSearchListsAbstract.deleteList.errMsg1.msg=A module caused an error listening to KeywordSearchListsAbstract updates. See log to determine which module. Some data could be incomplete.
|
||||||
KeywordSearchListsManagementPanel.newKeywordListDescription=Keyword List <{0}> already exists as a read-only list. Do you want to replace it for the duration of the program (the change will not be persistent).
|
KeywordSearchListsManagementPanel.newKeywordListDescription=Keyword list <{0}> already exists as a read-only list. Do you want to replace it for the duration of the program (the change will not be persistent).
|
||||||
KeywordSearchListsManagementPanel.newKeywordListDescription2=Keyword List <{0}> already exists, do you want to replace it?
|
KeywordSearchListsManagementPanel.newKeywordListDescription2=Keyword list <{0}> already exists, do you want to replace it?
|
||||||
KeywordSearchModuleFactory.getIngestJobSettingsPanel.exception.msg=Expected settings argument to be instanceof KeywordSearchJobSettings
|
KeywordSearchModuleFactory.getIngestJobSettingsPanel.exception.msg=Expected settings argument to be instanceof KeywordSearchJobSettings
|
||||||
KeywordSearchModuleFactory.createFileIngestModule.exception.msg=Expected settings argument to be instanceof KeywordSearchJobSettings
|
KeywordSearchModuleFactory.createFileIngestModule.exception.msg=Expected settings argument to be instanceof KeywordSearchJobSettings
|
||||||
SearchRunner.Searcher.done.err.msg=Error performing keyword search
|
SearchRunner.Searcher.done.err.msg=Error performing keyword search
|
||||||
@ -300,9 +300,9 @@ AddKeywordsDialog.enterKeywordsLabel.text=Enter keywords (one per line) below:
|
|||||||
AddKeywordsDialog.pasteButton.text=Paste From Clipboard
|
AddKeywordsDialog.pasteButton.text=Paste From Clipboard
|
||||||
AddKeywordsDialog.addButton.text=OK
|
AddKeywordsDialog.addButton.text=OK
|
||||||
AddKeywordsDialog.cancelButton.text=Cancel
|
AddKeywordsDialog.cancelButton.text=Cancel
|
||||||
AddKeywordsDialog.addKeywordsTitle.text=New keywords
|
AddKeywordsDialog.addKeywordsTitle.text=New Keywords
|
||||||
GlobalEditListPanel.newKeywordsButton.text=New keywords
|
GlobalEditListPanel.newKeywordsButton.text=New Keywords
|
||||||
GlobalEditListPanel.addKeywordResults.text=Add keyword results
|
GlobalEditListPanel.addKeywordResults.text=Add Keyword Results
|
||||||
GlobalEditListPanel.keywordsAdded.text={0} keyword was successfully added.
|
GlobalEditListPanel.keywordsAdded.text={0} keyword was successfully added.
|
||||||
GlobalEditListPanel.keywordsAddedPlural.text={0} keywords were successfully added.
|
GlobalEditListPanel.keywordsAddedPlural.text={0} keywords were successfully added.
|
||||||
GlobalEditListPanel.keywordDupesSkipped.text={0} keyword was already in the list.
|
GlobalEditListPanel.keywordDupesSkipped.text={0} keyword was already in the list.
|
||||||
@ -312,8 +312,8 @@ GlobalEditListPanel.keywordErrorsPlural.text={0} keywords could not be parsed. P
|
|||||||
GlobalListsManagementPanel.exportButton.text=Export List
|
GlobalListsManagementPanel.exportButton.text=Export List
|
||||||
GlobalListsManagementPanel.deleteListButton.text=Delete List
|
GlobalListsManagementPanel.deleteListButton.text=Delete List
|
||||||
GlobalListsManagementPanel.copyListButton.text=Copy List
|
GlobalListsManagementPanel.copyListButton.text=Copy List
|
||||||
GlobalListsManagementPanel.renameListButton.text=Rename List
|
GlobalListsManagementPanel.renameListButton.text=Edit List
|
||||||
GlobalEditListPanel.editWordButton.text=Edit keyword
|
GlobalEditListPanel.editWordButton.text=Edit Keyword
|
||||||
SolrSearchService.ServiceName=Solr Keyword Search Service
|
SolrSearchService.ServiceName=Solr Keyword Search Service
|
||||||
SolrSearchService.IndexUpgradeDialog.title=Text Index Upgrade Required In Order To Open Case
|
SolrSearchService.IndexUpgradeDialog.title=Text Index Upgrade Required In Order To Open Case
|
||||||
SolrSearchService.IndexUpgradeDialog.msg=<html>The text index upgrade can take some time. <br />When completed, you will be able to see existing keyword search results and perform literal keyword searches,<br />but you will not be able to add new text to the index or perform regex searches. You may instead open the case<br /> with your previous version of this application. Do you wish to proceed with the index upgrade?</html>
|
SolrSearchService.IndexUpgradeDialog.msg=<html>The text index upgrade can take some time. <br />When completed, you will be able to see existing keyword search results and perform literal keyword searches,<br />but you will not be able to add new text to the index or perform regex searches. You may instead open the case<br /> with your previous version of this application. Do you wish to proceed with the index upgrade?</html>
|
||||||
|
@ -87,20 +87,15 @@ final class Index {
|
|||||||
|
|
||||||
String result;
|
String result;
|
||||||
|
|
||||||
// Remove all non-ASCII characters
|
// Allow these characters: '-', '.', '0'-'9', 'A'-'Z', '_', and 'a'-'z'.
|
||||||
result = coreName.replaceAll("[^\\p{ASCII}]", "_"); //NON-NLS
|
// Replace all else with '_'.
|
||||||
|
result = coreName.replaceAll("[^-.0-9A-Z_a-z]", "_"); // NON-NLS
|
||||||
// Remove all control characters
|
|
||||||
result = result.replaceAll("[\\p{Cntrl}]", "_"); //NON-NLS
|
|
||||||
|
|
||||||
// Remove spaces / \ : ? ' "
|
|
||||||
result = result.replaceAll("[ /?:'\"\\\\]", "_"); //NON-NLS
|
|
||||||
|
|
||||||
// Make it all lowercase
|
// Make it all lowercase
|
||||||
result = result.toLowerCase();
|
result = result.toLowerCase();
|
||||||
|
|
||||||
// Must not start with hyphen
|
// Must not start with hyphen
|
||||||
if (result.length() > 0 && !(Character.isLetter(result.codePointAt(0))) && !(result.codePointAt(0) == '-')) {
|
if (result.length() > 0 && (result.codePointAt(0) == '-')) {
|
||||||
result = "_" + result;
|
result = "_" + result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,7 +370,7 @@ public final class SearchRunner {
|
|||||||
private List<Keyword> keywords; //keywords to search
|
private List<Keyword> keywords; //keywords to search
|
||||||
private List<String> keywordListNames; // lists currently being searched
|
private List<String> keywordListNames; // lists currently being searched
|
||||||
private List<KeywordList> keywordLists;
|
private List<KeywordList> keywordLists;
|
||||||
private Map<String, KeywordList> keywordToList; //keyword to list name mapping
|
private Map<Keyword, KeywordList> keywordToList; //keyword to list name mapping
|
||||||
private AggregateProgressHandle progressGroup;
|
private AggregateProgressHandle progressGroup;
|
||||||
private final Logger logger = Logger.getLogger(SearchRunner.Searcher.class.getName());
|
private final Logger logger = Logger.getLogger(SearchRunner.Searcher.class.getName());
|
||||||
private boolean finalRun = false;
|
private boolean finalRun = false;
|
||||||
@ -431,8 +431,7 @@ public final class SearchRunner {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
final String queryStr = keyword.getSearchTerm();
|
final KeywordList keywordList = keywordToList.get(keyword);
|
||||||
final KeywordList keywordList = keywordToList.get(queryStr);
|
|
||||||
|
|
||||||
//new subProgress will be active after the initial query
|
//new subProgress will be active after the initial query
|
||||||
//when we know number of hits to start() with
|
//when we know number of hits to start() with
|
||||||
@ -545,7 +544,7 @@ public final class SearchRunner {
|
|||||||
keywordLists.add(list);
|
keywordLists.add(list);
|
||||||
for (Keyword k : list.getKeywords()) {
|
for (Keyword k : list.getKeywords()) {
|
||||||
keywords.add(k);
|
keywords.add(k);
|
||||||
keywordToList.put(k.getSearchTerm(), list);
|
keywordToList.put(k, list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -565,7 +565,7 @@ public class Server {
|
|||||||
try {
|
try {
|
||||||
// Close any open core before stopping server
|
// Close any open core before stopping server
|
||||||
closeCore();
|
closeCore();
|
||||||
} catch (KeywordSearchModuleException | NoOpenCoreException e) {
|
} catch (KeywordSearchModuleException e) {
|
||||||
logger.log(Level.WARNING, "Failed to close core: ", e); //NON-NLS
|
logger.log(Level.WARNING, "Failed to close core: ", e); //NON-NLS
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -704,15 +704,14 @@ public class Server {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void closeCore() throws KeywordSearchModuleException, NoOpenCoreException {
|
void closeCore() throws KeywordSearchModuleException {
|
||||||
currentCoreLock.writeLock().lock();
|
currentCoreLock.writeLock().lock();
|
||||||
try {
|
try {
|
||||||
if (null == currentCore) {
|
if (null != currentCore) {
|
||||||
throw new NoOpenCoreException();
|
|
||||||
}
|
|
||||||
currentCore.close();
|
currentCore.close();
|
||||||
currentCore = null;
|
currentCore = null;
|
||||||
serverAction.putValue(CORE_EVT, CORE_EVT_STATES.STOPPED);
|
serverAction.putValue(CORE_EVT, CORE_EVT_STATES.STOPPED);
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
currentCoreLock.writeLock().unlock();
|
currentCoreLock.writeLock().unlock();
|
||||||
}
|
}
|
||||||
@ -760,7 +759,7 @@ public class Server {
|
|||||||
closeCore();
|
closeCore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (KeywordSearchModuleException | NoOpenCoreException ex) {
|
} catch (KeywordSearchModuleException ex) {
|
||||||
throw new KeywordSearchServiceException(NbBundle.getMessage(Server.class, "Server.close.exception.msg"), ex);
|
throw new KeywordSearchServiceException(NbBundle.getMessage(Server.class, "Server.close.exception.msg"), ex);
|
||||||
} finally {
|
} finally {
|
||||||
currentCoreLock.readLock().unlock();
|
currentCoreLock.readLock().unlock();
|
||||||
|
@ -375,7 +375,7 @@ public class SolrSearchService implements KeywordSearchService, AutopsyService {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
KeywordSearch.getServer().closeCore();
|
KeywordSearch.getServer().closeCore();
|
||||||
} catch (KeywordSearchModuleException | NoOpenCoreException ex) {
|
} catch (KeywordSearchModuleException ex) {
|
||||||
throw new AutopsyServiceException(String.format("Failed to close core for %s", context.getCase().getCaseDirectory()), ex);
|
throw new AutopsyServiceException(String.format("Failed to close core for %s", context.getCase().getCaseDirectory()), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ import junit.framework.Test;
|
|||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
import org.netbeans.jemmy.Timeouts;
|
import org.netbeans.jemmy.Timeouts;
|
||||||
import org.netbeans.junit.NbModuleSuite;
|
import org.netbeans.junit.NbModuleSuite;
|
||||||
|
import org.sleuthkit.autopsy.core.UserPreferences;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This test expects the following system properties to be set: img_path: The
|
* This test expects the following system properties to be set: img_path: The
|
||||||
@ -98,6 +99,7 @@ public class RegressionTest extends TestCase {
|
|||||||
public void setUp() {
|
public void setUp() {
|
||||||
logger.info("######## " + AutopsyTestCases.getEscapedPath(System.getProperty("img_path")) + " #######");
|
logger.info("######## " + AutopsyTestCases.getEscapedPath(System.getProperty("img_path")) + " #######");
|
||||||
Timeouts.setDefault("ComponentOperator.WaitComponentTimeout", 1000000);
|
Timeouts.setDefault("ComponentOperator.WaitComponentTimeout", 1000000);
|
||||||
|
UserPreferences.setNumberOfFileIngestThreads(1); //Let nightly test using 1 ingest thread to avoid ordering results in report of insertion to tsk tables
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user