Merge branch 'collaborative' of https://github.com/sleuthkit/autopsy into output_paths

This commit is contained in:
Karl Mortensen 2015-05-12 17:02:17 -04:00
commit 4aca91eb8e
7 changed files with 35 additions and 32 deletions

View File

@ -135,7 +135,8 @@ Case.createCaseDir.exception.cantCreateCaseDir=Could not create case directory\:
Case.createCaseDir.exception.cantCreateModDir=Could not create modules output directory\: {0} Case.createCaseDir.exception.cantCreateModDir=Could not create modules output directory\: {0}
Case.createCaseDir.exception.cantCreateReportsDir=Could not create reports output directory\: {0} Case.createCaseDir.exception.cantCreateReportsDir=Could not create reports output directory\: {0}
Case.createCaseDir.exception.gen=Could not create case directory\: {0} Case.createCaseDir.exception.gen=Could not create case directory\: {0}
Case.OpenEventChannel.ErrMsg=Case opening process failed to connect to nodes collaborating on case {0}. Case.OpenEventChannel.FailPopup.ErrMsg=Failed to connect to any other nodes that may be collaborating on this case.
Case.OpenEventChannel.FailPopup.Title=Connection Failure
CaseDeleteAction.closeConfMsg.text=Are you sure want to close and delete this case? \n\ CaseDeleteAction.closeConfMsg.text=Are you sure want to close and delete this case? \n\
Case Name\: {0}\n\ Case Name\: {0}\n\
Case Directory\: {1} Case Directory\: {1}

View File

@ -73,6 +73,7 @@ import org.sleuthkit.datamodel.SleuthkitJNI.CaseDbHandle.AddImageProcess;
public class Case implements SleuthkitCase.ErrorObserver { public class Case implements SleuthkitCase.ErrorObserver {
private static final String autopsyVer = Version.getVersion(); // current version of autopsy. Change it when the version is changed private static final String autopsyVer = Version.getVersion(); // current version of autopsy. Change it when the version is changed
private static final String EVENT_CHANNEL_NAME = "%s-Case-Events";
private static String appName = null; private static String appName = null;
/** /**
@ -272,12 +273,18 @@ public class Case implements SleuthkitCase.ErrorObserver {
RecentCases.getInstance().addRecentCase(currentCase.name, currentCase.configFilePath); // update the recent cases RecentCases.getInstance().addRecentCase(currentCase.name, currentCase.configFilePath); // update the recent cases
if (CaseType.MULTI_USER_CASE == newCase.getCaseType()) { if (CaseType.MULTI_USER_CASE == newCase.getCaseType()) {
try { try {
eventPublisher.openRemoteEventChannel(newCase.getName()); /**
* Use the text index name as the remote event channel name
* prefix since it is unique, the same as the case database
* name for a multiuser case, and is readily available
* through the Case.getTextIndexName() API.
*/
eventPublisher.openRemoteEventChannel(String.format(EVENT_CHANNEL_NAME, newCase.getTextIndexName()));
} catch (AutopsyEventException ex) { } catch (AutopsyEventException ex) {
logger.log(Level.SEVERE, "Failed to start remote event publisher", ex); logger.log(Level.SEVERE, "Failed to start remote event publisher", ex);
MessageNotifyUtil.Message.error(NbBundle.getMessage(Case.class, JOptionPane.showMessageDialog(null, NbBundle.getMessage(Case.class, "Case.OpenEventChannel.FailPopup.ErrMsg"),
"Case.OpenEventChannel.ErrMsg", NbBundle.getMessage(Case.class, "Case.OpenEventChannel.FailPopup.Title"),
newCase.getName())); JOptionPane.WARNING_MESSAGE);
} }
} }
eventPublisher.publishLocally(new AutopsyEvent(Events.CURRENT_CASE.toString(), null, currentCase)); eventPublisher.publishLocally(new AutopsyEvent(Events.CURRENT_CASE.toString(), null, currentCase));

View File

@ -28,7 +28,7 @@ import javax.annotation.concurrent.Immutable;
@Immutable @Immutable
public final class MessageServiceConnectionInfo { public final class MessageServiceConnectionInfo {
private static final String MESSAGE_SERVICE_URI = "tcp://%s:%s"; private static final String MESSAGE_SERVICE_URI = "tcp://%s:%s?wireFormat.maxInactivityDuration=0";
private final String userName; private final String userName;
private final String password; private final String password;
private final String host; private final String host;

View File

@ -58,7 +58,8 @@ IngestManager.StartIngestJobsTask.run.startupErr.dlgMsg=Unable to start up one o
IngestManager.StartIngestJobsTask.run.startupErr.dlgSolution=Please disable the failed modules or fix the errors and then restart ingest \nby right clicking on the data source and selecting Run Ingest Modules. IngestManager.StartIngestJobsTask.run.startupErr.dlgSolution=Please disable the failed modules or fix the errors and then restart ingest \nby right clicking on the data source and selecting Run Ingest Modules.
IngestManager.StartIngestJobsTask.run.startupErr.dlgErrorList=\nErrors\: \n{0} IngestManager.StartIngestJobsTask.run.startupErr.dlgErrorList=\nErrors\: \n{0}
IngestManager.StartIngestJobsTask.run.startupErr.dlgTitle=Ingest Failure IngestManager.StartIngestJobsTask.run.startupErr.dlgTitle=Ingest Failure
IngestManager.OpenEventChannel.ErrMsg=Analysis process failed to connect to nodes collaborating on case {0}. IngestManager.OpenEventChannel.FailPopup.ErrMsg=Analysis process failed to connect to any other nodes that may be collaborating on case.
IngestManager.OpenEventChannel.FailPopup.Title=Connection Failure
IngestJobSettings.createModuleSettingsFolder.warning=Failed to create ingest module settings folder, cannot save settings. IngestJobSettings.createModuleSettingsFolder.warning=Failed to create ingest module settings folder, cannot save settings.
IngestJobSettings.missingModule.warning=Previously loaded {0} module could not be found. IngestJobSettings.missingModule.warning=Previously loaded {0} module could not be found.
IngestJobSettings.save.warning=Failed to save ingest job settings for {0} module. IngestJobSettings.save.warning=Failed to save ingest job settings for {0} module.

View File

@ -47,7 +47,6 @@ import org.sleuthkit.autopsy.casemodule.Case;
import org.sleuthkit.autopsy.core.UserPreferences; import org.sleuthkit.autopsy.core.UserPreferences;
import org.sleuthkit.autopsy.events.AutopsyEvent; import org.sleuthkit.autopsy.events.AutopsyEvent;
import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
import org.sleuthkit.autopsy.events.AutopsyEventException; import org.sleuthkit.autopsy.events.AutopsyEventException;
import org.sleuthkit.autopsy.events.AutopsyEventPublisher; import org.sleuthkit.autopsy.events.AutopsyEventPublisher;
import org.sleuthkit.autopsy.ingest.events.BlackboardPostEvent; import org.sleuthkit.autopsy.ingest.events.BlackboardPostEvent;
@ -298,28 +297,23 @@ public class IngestManager {
this.jobCreationIsEnabled = true; this.jobCreationIsEnabled = true;
clearIngestMessageBox(); clearIngestMessageBox();
try { try {
/**
* Use the text index name as the remote event channel name prefix
* since it is unique, the same as the case database name for a
* multiuser case, and is readily available through the
* Case.getTextIndexName() API.
*/
Case openedCase = Case.getCurrentCase(); Case openedCase = Case.getCurrentCase();
String caseName = openedCase.getName(); String channelPrefix = openedCase.getTextIndexName();
if (Case.CaseType.MULTI_USER_CASE == openedCase.getCaseType()) { if (Case.CaseType.MULTI_USER_CASE == openedCase.getCaseType()) {
try { jobEventPublisher.openRemoteEventChannel(String.format(JOB_EVENT_CHANNEL_NAME, channelPrefix));
jobEventPublisher.openRemoteEventChannel(String.format(JOB_EVENT_CHANNEL_NAME, caseName)); moduleEventPublisher.openRemoteEventChannel(String.format(MODULE_EVENT_CHANNEL_NAME, channelPrefix));
} catch (AutopsyEventException ex) {
logger.log(Level.SEVERE, "Failed to open remote job events channel", ex); //NON-NLS
MessageNotifyUtil.Message.error(NbBundle.getMessage(IngestManager.class,
"IngestManager.OpenEventChannel.ErrMsg",
caseName));
} }
try { } catch (IllegalStateException | AutopsyEventException ex) {
moduleEventPublisher.openRemoteEventChannel(String.format(MODULE_EVENT_CHANNEL_NAME, caseName)); logger.log(Level.SEVERE, "Failed to open remote events channel", ex); //NON-NLS
} catch (AutopsyEventException ex) { JOptionPane.showMessageDialog(null, NbBundle.getMessage(IngestManager.class, "IngestManager.OpenEventChannel.FailPopup.ErrMsg"),
logger.log(Level.SEVERE, "Failed to open remote module events channel", ex); //NON-NLS NbBundle.getMessage(IngestManager.class, "IngestManager.OpenEventChannel.FailPopup.Title"),
MessageNotifyUtil.Message.error(NbBundle.getMessage(IngestManager.class, JOptionPane.WARNING_MESSAGE);
"IngestManager.OpenEventChannel.ErrMsg",
caseName));
}
}
} catch (IllegalStateException ex) {
logger.log(Level.SEVERE, "Could not get current case, failed to open remote event channels", ex); //NON-NLS
} }
} }

View File

@ -202,9 +202,9 @@ public class EventDB {
return "1"; return "1";
} }
String strip = StringUtils.strip(filter.getText()); String strip = StringUtils.strip(filter.getText());
return "((" + MED_DESCRIPTION_COLUMN + " LIKE '%" + strip + "%') OR (" // NON-NLS return "((LOWER(" + MED_DESCRIPTION_COLUMN + ") LIKE LOWER('%" + strip + "%')) OR (LOWER(" // NON-NLS
+ FULL_DESCRIPTION_COLUMN + " LIKE '%" + strip + "%') OR (" // NON-NLS + FULL_DESCRIPTION_COLUMN + ") LIKE LOWER('%" + strip + "%')) OR (LOWER(" // NON-NLS
+ SHORT_DESCRIPTION_COLUMN + " LIKE '%" + strip + "%'))"; // NON-NLS + SHORT_DESCRIPTION_COLUMN + ") LIKE LOWER('%" + strip + "%')))"; // NON-NLS
} else { } else {
return "1"; return "1";
} }

View File

@ -677,7 +677,7 @@ public final class ImageGalleryController {
*/ */
class CopyAnalyzedFiles extends InnerTask { class CopyAnalyzedFiles extends InnerTask {
final private String DRAWABLE_QUERY = "LOWER(name) LIKE '%." + StringUtils.join(ImageGalleryModule.getAllSupportedExtensions(), "' or LOWER(name) LIKE '%.") + "'"; final private String DRAWABLE_QUERY = "LOWER(name) LIKE LOWER('%." + StringUtils.join(ImageGalleryModule.getAllSupportedExtensions(), "') or LOWER(name) LIKE LOWER('%.") + "')";
private ProgressHandle progressHandle = ProgressHandleFactory.createHandle("populating analyzed image/video database"); private ProgressHandle progressHandle = ProgressHandleFactory.createHandle("populating analyzed image/video database");
@ -779,7 +779,7 @@ public final class ImageGalleryController {
* check for supported images * check for supported images
*/ */
// (name like '.jpg' or name like '.png' ...) // (name like '.jpg' or name like '.png' ...)
private final String DRAWABLE_QUERY = "(LOWER(name) LIKE LOWER('%." + StringUtils.join(ImageGalleryModule.getAllSupportedExtensions(), "') or LOWER(name) LIKE '%.") + "') "; private final String DRAWABLE_QUERY = "(LOWER(name) LIKE LOWER('%." + StringUtils.join(ImageGalleryModule.getAllSupportedExtensions(), "') or LOWER(name) LIKE LOWER('%.") + "')) ";
private ProgressHandle progressHandle = ProgressHandleFactory.createHandle("prepopulating image/video database"); private ProgressHandle progressHandle = ProgressHandleFactory.createHandle("prepopulating image/video database");