Fix inaccurate case operation progress messages

This commit is contained in:
Richard Cordovano 2017-03-22 17:20:13 -04:00
parent e20460773a
commit dfe7d074b0

View File

@ -402,7 +402,7 @@ public class Case {
/** /**
* Adds a subscriber to specific case events. * Adds a subscriber to specific case events.
* *
* @param eventName The event the subscriber is interested in. * @param eventName The event the subscriber is interested in.
* @param subscriber The subscriber (PropertyChangeListener) to add. * @param subscriber The subscriber (PropertyChangeListener) to add.
*/ */
public static void addEventSubscriber(String eventName, PropertyChangeListener subscriber) { public static void addEventSubscriber(String eventName, PropertyChangeListener subscriber) {
@ -412,7 +412,7 @@ public class Case {
/** /**
* Removes a subscriber to specific case events. * Removes a subscriber to specific case events.
* *
* @param eventName The event the subscriber is no longer interested in. * @param eventName The event the subscriber is no longer interested in.
* @param subscriber The subscriber (PropertyChangeListener) to remove. * @param subscriber The subscriber (PropertyChangeListener) to remove.
*/ */
public static void removeEventSubscriber(String eventName, PropertyChangeListener subscriber) { public static void removeEventSubscriber(String eventName, PropertyChangeListener subscriber) {
@ -449,21 +449,19 @@ public class Case {
* IMPORTANT: This method should not be called in the event dispatch thread * IMPORTANT: This method should not be called in the event dispatch thread
* (EDT). * (EDT).
* *
* @param caseDir The full path of the case directory. The directory * @param caseDir The full path of the case directory. The directory will be
* will be created if it doesn't already exist; if it * created if it doesn't already exist; if it exists, it is ASSUMED it was
* exists, it is ASSUMED it was created by calling * created by calling createCaseDirectory.
* createCaseDirectory.
* @param caseDisplayName The display name of case, which may be changed * @param caseDisplayName The display name of case, which may be changed
* later by the user. * later by the user.
* @param caseNumber The case number, can be the empty string. * @param caseNumber The case number, can be the empty string.
* @param examiner The examiner to associate with the case, can be * @param examiner The examiner to associate with the case, can be the empty
* the empty string. * string.
* @param caseType The type of case (single-user or multi-user). * @param caseType The type of case (single-user or multi-user).
* *
* @throws CaseActionException if there is a problem creating the case. The * @throws CaseActionException if there is a problem creating the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
*/ */
@Messages({ @Messages({
"# {0} - exception message", "Case.exceptionMessage.wrapperMessage={0}" "# {0} - exception message", "Case.exceptionMessage.wrapperMessage={0}"
@ -503,9 +501,8 @@ public class Case {
* @param caseMetadataFilePath The path of the case metadata (.aut) file. * @param caseMetadataFilePath The path of the case metadata (.aut) file.
* *
* @throws CaseActionException if there is a problem opening the case. The * @throws CaseActionException if there is a problem opening the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
*/ */
@Messages({ @Messages({
"# {0} - exception message", "Case.openException.couldNotOpenCase=Could not open case: {0}", "# {0} - exception message", "Case.openException.couldNotOpenCase=Could not open case: {0}",
@ -568,7 +565,8 @@ public class Case {
* *
* IMPORTANT: This method should not be called in the event dispatch thread * IMPORTANT: This method should not be called in the event dispatch thread
* (EDT). * (EDT).
* @throws CaseActionException *
* @throws CaseActionException
*/ */
@Messages({ @Messages({
"# {0} - exception message", "Case.closeException.couldNotCloseCase=Error closing case: {0}", "# {0} - exception message", "Case.closeException.couldNotCloseCase=Error closing case: {0}",
@ -607,9 +605,8 @@ public class Case {
* (EDT). * (EDT).
* *
* @throws CaseActionException if there is a problem deleting the case. The * @throws CaseActionException if there is a problem deleting the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
*/ */
public static void deleteCurrentCase() throws CaseActionException { public static void deleteCurrentCase() throws CaseActionException {
synchronized (currentCaseWriteLock) { synchronized (currentCaseWriteLock) {
@ -629,14 +626,14 @@ public class Case {
* @param metadata The metadata for the case to delete. * @param metadata The metadata for the case to delete.
* *
* @throws CaseActionException if there is a problem deleting the case. The * @throws CaseActionException if there is a problem deleting the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
*/ */
@Messages({ @Messages({
"# {0} - exception message", "Case.deleteException.couldNotDeleteCase=Could not delete case: {0}", "# {0} - exception message", "Case.deleteException.couldNotDeleteCase=Could not delete case: {0}",
"Case.progressIndicatorTitle.deletingCase=Deleting Case", "Case.progressIndicatorTitle.deletingCase=Deleting Case",
"Case.exceptionMessage.cannotDeleteCurrentCase=Cannot delete current case, it must be closed first", "Case.exceptionMessage.cannotDeleteCurrentCase=Cannot delete current case, it must be closed first",
"Case.progressMessage.checkingForOtherUser=Checking to see if another user has the case open...",
"Case.progressMessage.deletingTextIndex=Deleting text index...", "Case.progressMessage.deletingTextIndex=Deleting text index...",
"Case.progressMessage.deletingCaseDatabase=Deleting case database...", "Case.progressMessage.deletingCaseDatabase=Deleting case database...",
"Case.exceptionMessage.cancelled=Cancelled by user" "Case.exceptionMessage.cancelled=Cancelled by user"
@ -672,7 +669,7 @@ public class Case {
* First, acquire an exclusive case directory lock. The case * First, acquire an exclusive case directory lock. The case
* cannot be deleted if another node has it open. * cannot be deleted if another node has it open.
*/ */
progressIndicator.start(Bundle.Case_progressMessage_acquiringLocks()); progressIndicator.start(Bundle.Case_progressMessage_checkingForOtherUser());
try (CoordinationService.Lock dirLock = CoordinationService.getInstance().tryGetExclusiveLock(CategoryNode.CASES, metadata.getCaseDirectory())) { try (CoordinationService.Lock dirLock = CoordinationService.getInstance().tryGetExclusiveLock(CategoryNode.CASES, metadata.getCaseDirectory())) {
assert (null != dirLock); assert (null != dirLock);
@ -777,7 +774,7 @@ public class Case {
/** /**
* Creates a case directory and its subdirectories. * Creates a case directory and its subdirectories.
* *
* @param caseDir Path to the case directory (typically base + case name). * @param caseDir Path to the case directory (typically base + case name).
* @param caseType The type of case, single-user or multi-user. * @param caseType The type of case, single-user or multi-user.
* *
* @throws CaseActionException throw if could not create the case dir * @throws CaseActionException throw if could not create the case dir
@ -906,7 +903,7 @@ public class Case {
* Deletes the case directory of a deleted case and removes the case form * Deletes the case directory of a deleted case and removes the case form
* the Recent Cases menu. * the Recent Cases menu.
* *
* @param metadata The case metadata. * @param metadata The case metadata.
* @param progressIndicator A progress indicator. * @param progressIndicator A progress indicator.
*/ */
@Messages({ @Messages({
@ -935,12 +932,12 @@ public class Case {
* Acquires an exclusive case name lock. * Acquires an exclusive case name lock.
* *
* @param caseName The case name (not the case display name, which can be * @param caseName The case name (not the case display name, which can be
* changed by a user). * changed by a user).
* *
* @return The lock. * @return The lock.
* *
* @throws CaseActionException with a user-friendly message if the lock * @throws CaseActionException with a user-friendly message if the lock
* cannot be acquired. * cannot be acquired.
*/ */
@Messages({"Case.creationException.couldNotAcquireNameLock=Failed to get lock on case name"}) @Messages({"Case.creationException.couldNotAcquireNameLock=Failed to get lock on case name"})
private static CoordinationService.Lock acquireExclusiveCaseNameLock(String caseName) throws CaseActionException { private static CoordinationService.Lock acquireExclusiveCaseNameLock(String caseName) throws CaseActionException {
@ -960,12 +957,12 @@ public class Case {
* Acquires an exclusive case resources lock. * Acquires an exclusive case resources lock.
* *
* @param caseName The case name (not the case display name, which can be * @param caseName The case name (not the case display name, which can be
* changed by a user). * changed by a user).
* *
* @return The lock. * @return The lock.
* *
* @throws CaseActionException with a user-friendly message if the lock * @throws CaseActionException with a user-friendly message if the lock
* cannot be acquired. * cannot be acquired.
*/ */
@Messages({"Case.creationException.couldNotAcquireResourcesLock=Failed to get lock on case resources"}) @Messages({"Case.creationException.couldNotAcquireResourcesLock=Failed to get lock on case resources"})
private static CoordinationService.Lock acquireExclusiveCaseResourcesLock(String caseName) throws CaseActionException { private static CoordinationService.Lock acquireExclusiveCaseResourcesLock(String caseName) throws CaseActionException {
@ -1319,7 +1316,7 @@ public class Case {
* the case directory, creating it if it does not exist. * the case directory, creating it if it does not exist.
* *
* @return The path to the module output directory, relative to the case * @return The path to the module output directory, relative to the case
* directory. * directory.
*/ */
public String getModuleOutputDirectoryRelativePath() { public String getModuleOutputDirectoryRelativePath() {
Path path = Paths.get(getModuleDirectory()); Path path = Paths.get(getModuleDirectory());
@ -1336,8 +1333,7 @@ public class Case {
* @return A list of data sources. * @return A list of data sources.
* *
* @throws org.sleuthkit.datamodel.TskCoreException if there is a problem * @throws org.sleuthkit.datamodel.TskCoreException if there is a problem
* querying the case * querying the case database.
* database.
*/ */
public List<Content> getDataSources() throws TskCoreException { public List<Content> getDataSources() throws TskCoreException {
List<Content> list = caseDb.getRootObjects(); List<Content> list = caseDb.getRootObjects();
@ -1410,8 +1406,8 @@ public class Case {
* This should not be called from the event dispatch thread (EDT) * This should not be called from the event dispatch thread (EDT)
* *
* @param eventId A unique identifier for the event. This UUID must be used * @param eventId A unique identifier for the event. This UUID must be used
* to call notifyFailedAddingDataSource or * to call notifyFailedAddingDataSource or notifyNewDataSource after the
* notifyNewDataSource after the data source is added. * data source is added.
*/ */
public void notifyAddingDataSource(UUID eventId) { public void notifyAddingDataSource(UUID eventId) {
eventPublisher.publish(new AddingDataSourceEvent(eventId)); eventPublisher.publish(new AddingDataSourceEvent(eventId));
@ -1424,8 +1420,7 @@ public class Case {
* This should not be called from the event dispatch thread (EDT) * This should not be called from the event dispatch thread (EDT)
* *
* @param addingDataSourceEventId The unique identifier for the * @param addingDataSourceEventId The unique identifier for the
* corresponding adding data source event * corresponding adding data source event (see notifyAddingDataSource).
* (see notifyAddingDataSource).
*/ */
public void notifyFailedAddingDataSource(UUID addingDataSourceEventId) { public void notifyFailedAddingDataSource(UUID addingDataSourceEventId) {
eventPublisher.publish(new AddingDataSourceFailedEvent(addingDataSourceEventId)); eventPublisher.publish(new AddingDataSourceFailedEvent(addingDataSourceEventId));
@ -1437,10 +1432,9 @@ public class Case {
* *
* This should not be called from the event dispatch thread (EDT) * This should not be called from the event dispatch thread (EDT)
* *
* @param dataSource The data source. * @param dataSource The data source.
* @param addingDataSourceEventId The unique identifier for the * @param addingDataSourceEventId The unique identifier for the
* corresponding adding data source event * corresponding adding data source event (see notifyAddingDataSource).
* (see notifyAddingDataSource).
*/ */
public void notifyDataSourceAdded(Content dataSource, UUID addingDataSourceEventId) { public void notifyDataSourceAdded(Content dataSource, UUID addingDataSourceEventId) {
eventPublisher.publish(new DataSourceAddedEvent(dataSource, addingDataSourceEventId)); eventPublisher.publish(new DataSourceAddedEvent(dataSource, addingDataSourceEventId));
@ -1493,13 +1487,13 @@ public class Case {
/** /**
* Adds a report to the case. * Adds a report to the case.
* *
* @param localPath The path of the report file, must be in the case * @param localPath The path of the report file, must be in the case
* directory or one of its subdirectories. * directory or one of its subdirectories.
* @param srcModuleName The name of the module that created the report. * @param srcModuleName The name of the module that created the report.
* @param reportName The report name, may be empty. * @param reportName The report name, may be empty.
* *
* @throws TskCoreException if there is a problem adding the report to the * @throws TskCoreException if there is a problem adding the report to the
* case database. * case database.
*/ */
public void addReport(String localPath, String srcModuleName, String reportName) throws TskCoreException { public void addReport(String localPath, String srcModuleName, String reportName) throws TskCoreException {
String normalizedLocalPath; String normalizedLocalPath;
@ -1519,7 +1513,7 @@ public class Case {
* @return A collection of report objects. * @return A collection of report objects.
* *
* @throws TskCoreException if there is a problem querying the case * @throws TskCoreException if there is a problem querying the case
* database. * database.
*/ */
public List<Report> getAllReports() throws TskCoreException { public List<Report> getAllReports() throws TskCoreException {
return this.caseDb.getAllReports(); return this.caseDb.getAllReports();
@ -1553,9 +1547,9 @@ public class Case {
* Updates the case display name name. * Updates the case display name name.
* *
* @param oldCaseName The old case name. * @param oldCaseName The old case name.
* @param oldPath The old path name. * @param oldPath The old path name.
* @param newCaseName The new case name. * @param newCaseName The new case name.
* @param newPath The new case path. * @param newPath The new case path.
*/ */
void updateCaseName(String oldCaseName, String oldPath, String newCaseName, String newPath) throws CaseActionException { void updateCaseName(String oldCaseName, String oldPath, String newCaseName, String newPath) throws CaseActionException {
try { try {
@ -1583,28 +1577,26 @@ public class Case {
} }
/** /**
* @param caseDir The full path of the case directory. The directory * @param caseDir The full path of the case directory. The directory will be
* will be created if it doesn't already exist; if it * created if it doesn't already exist; if it exists, it is ASSUMED it was
* exists, it is ASSUMED it was created by calling * created by calling createCaseDirectory.
* createCaseDirectory.
* @param caseDisplayName The display name of case, which may be changed * @param caseDisplayName The display name of case, which may be changed
* later by the user. * later by the user.
* @param caseNumber The case number, can be the empty string. * @param caseNumber The case number, can be the empty string.
* @param examiner The examiner to associate with the case, can be * @param examiner The examiner to associate with the case, can be the empty
* the empty string. * string.
* @param caseType The type of case (single-user or multi-user). * @param caseType The type of case (single-user or multi-user).
* *
* @throws CaseActionException if there is a problem creating the case. The * @throws CaseActionException if there is a problem creating the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
*/ */
@Messages({ @Messages({
"Case.exceptionMessage.illegalCaseName=Case name contains illegal characters.", "Case.exceptionMessage.illegalCaseName=Case name contains illegal characters.",
"Case.progressIndicatorTitle.creatingCase=Creating Case", "Case.progressIndicatorTitle.creatingCase=Creating Case",
"Case.progressIndicatorCancelButton.label=Cancel", "Case.progressIndicatorCancelButton.label=Cancel",
"Case.progressMessage.preparing=Preparing...", "Case.progressMessage.preparing=Preparing...",
"Case.progressMessage.acquiringLocks=<html>Preparing to open case resources.<br>This may take time if another user is upgrading the case.</html>" "Case.progressMessage.openingCaseResources=<html>Preparing to open case resources.<br>This may take time if another user is upgrading the case.</html>"
}) })
private void open(String caseDir, String caseDisplayName, String caseNumber, String examiner, CaseType caseType) throws CaseActionException { private void open(String caseDir, String caseDisplayName, String caseNumber, String examiner, CaseType caseType) throws CaseActionException {
/* /*
@ -1652,7 +1644,7 @@ public class Case {
* First, acquire an exclusive case name lock to prevent two * First, acquire an exclusive case name lock to prevent two
* nodes from creating the same case at the same time. * nodes from creating the same case at the same time.
*/ */
progressIndicator.start(Bundle.Case_progressMessage_acquiringLocks()); progressIndicator.start(Bundle.Case_progressMessage_openingCaseResources());
try (CoordinationService.Lock nameLock = Case.acquireExclusiveCaseNameLock(caseName)) { try (CoordinationService.Lock nameLock = Case.acquireExclusiveCaseNameLock(caseName)) {
assert (null != nameLock); assert (null != nameLock);
/* /*
@ -1718,21 +1710,19 @@ public class Case {
/** /**
* Creates and opens a new case. * Creates and opens a new case.
* *
* @param caseDir The full path of the case directory. The directory * @param caseDir The full path of the case directory. The directory will be
* will be created if it doesn't already exist; if it * created if it doesn't already exist; if it exists, it is ASSUMED it was
* exists, it is ASSUMED it was created by calling * created by calling createCaseDirectory.
* createCaseDirectory.
* @param caseDisplayName The display name of case, which may be changed * @param caseDisplayName The display name of case, which may be changed
* later by the user. * later by the user.
* @param caseNumber The case number, can be the empty string. * @param caseNumber The case number, can be the empty string.
* @param examiner The examiner to associate with the case, can be * @param examiner The examiner to associate with the case, can be the empty
* the empty string. * string.
* @param caseType The type of case (single-user or multi-user). * @param caseType The type of case (single-user or multi-user).
* *
* @throws CaseActionException if there is a problem creating the case. The * @throws CaseActionException if there is a problem creating the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
*/ */
@Messages({ @Messages({
"Case.progressMessage.creatingCaseDirectory=Creating case directory...", "Case.progressMessage.creatingCaseDirectory=Creating case directory...",
@ -1819,9 +1809,8 @@ public class Case {
* @param caseMetadataFilePath The apth to the case metadata file. * @param caseMetadataFilePath The apth to the case metadata file.
* *
* @throws CaseActionException if there is a problem creating the case. The * @throws CaseActionException if there is a problem creating the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
*/ */
private void open(Path caseMetadataFilePath) throws CaseActionException { private void open(Path caseMetadataFilePath) throws CaseActionException {
/* /*
@ -1872,7 +1861,7 @@ public class Case {
* as long as this node has this case open, in order to prevent * as long as this node has this case open, in order to prevent
* deletion of the case by another node. * deletion of the case by another node.
*/ */
progressIndicator.start(Bundle.Case_progressMessage_acquiringLocks()); progressIndicator.start(Bundle.Case_progressMessage_openingCaseResources());
acquireSharedCaseDirLock(caseMetadata.getCaseDirectory()); acquireSharedCaseDirLock(caseMetadata.getCaseDirectory());
/* /*
* Next, acquire an exclusive case resources lock to ensure only * Next, acquire an exclusive case resources lock to ensure only
@ -1934,9 +1923,8 @@ public class Case {
* @param progressIndicator A progress indicator. * @param progressIndicator A progress indicator.
* *
* @throws CaseActionException if there is a problem opening the case. The * @throws CaseActionException if there is a problem opening the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
*/ */
@Messages({ @Messages({
"Case.progressMessage.openingCaseDatabase=Opening case database...", "Case.progressMessage.openingCaseDatabase=Opening case database...",
@ -2131,6 +2119,7 @@ public class Case {
* @param progressIndicator A progress indicator. * @param progressIndicator A progress indicator.
*/ */
@Messages({ @Messages({
"Case.progressMessage.closingCaseResources=<html>Preparing to close case resources.<br>This may take time if another user is upgrading the case.</html>",
"Case.progressMessage.notifyingCaseEventSubscribers=Notifying case event subscribers...", "Case.progressMessage.notifyingCaseEventSubscribers=Notifying case event subscribers...",
"Case.progressMessage.clearingTempDirectory=Clearing case temp directory...", "Case.progressMessage.clearingTempDirectory=Clearing case temp directory...",
"Case.progressMessage.closingCaseLevelServices=Closing case-level services...", "Case.progressMessage.closingCaseLevelServices=Closing case-level services...",
@ -2139,7 +2128,6 @@ public class Case {
"Case.progressMessage.closingCaseDatabase=Closing case database...", "Case.progressMessage.closingCaseDatabase=Closing case database...",
"Case.progressMessage.tearingDownTskErrorReporting=Tearing down SleuthKit error reporting..." "Case.progressMessage.tearingDownTskErrorReporting=Tearing down SleuthKit error reporting..."
}) })
private void close() throws CaseActionException { private void close() throws CaseActionException {
/* /*
* Set up either a GUI progress indicator or a logging progress * Set up either a GUI progress indicator or a logging progress
@ -2172,7 +2160,7 @@ public class Case {
* node at a time can create/open/upgrade/close the case * node at a time can create/open/upgrade/close the case
* resources. * resources.
*/ */
progressIndicator.start(Bundle.Case_progressMessage_acquiringLocks()); progressIndicator.start(Bundle.Case_progressMessage_closingCaseResources());
try (CoordinationService.Lock resourcesLock = acquireExclusiveCaseResourcesLock(caseMetadata.getCaseName())) { try (CoordinationService.Lock resourcesLock = acquireExclusiveCaseResourcesLock(caseMetadata.getCaseName())) {
assert (null != resourcesLock); assert (null != resourcesLock);
close(progressIndicator); close(progressIndicator);
@ -2332,7 +2320,7 @@ public class Case {
* @param caseDir The full path of the case directory. * @param caseDir The full path of the case directory.
* *
* @throws CaseActionException with a user-friendly message if the lock * @throws CaseActionException with a user-friendly message if the lock
* cannot be acquired. * cannot be acquired.
*/ */
@Messages({"Case.creationException.couldNotAcquireDirLock=Failed to get lock on case directory."}) @Messages({"Case.creationException.couldNotAcquireDirLock=Failed to get lock on case directory."})
private void acquireSharedCaseDirLock(String caseDir) throws CaseActionException { private void acquireSharedCaseDirLock(String caseDir) throws CaseActionException {
@ -2425,7 +2413,7 @@ public class Case {
* characters is encountered. * characters is encountered.
* *
* @param message The exception message. * @param message The exception message.
* @param cause The exceptin cause. * @param cause The exceptin cause.
*/ */
IllegalCaseNameException(String message, Throwable cause) { IllegalCaseNameException(String message, Throwable cause) {
super(message, cause); super(message, cause);
@ -2435,20 +2423,18 @@ public class Case {
/** /**
* Creates a new, single-user Autopsy case. * Creates a new, single-user Autopsy case.
* *
* @param caseDir The full path of the case directory. The directory * @param caseDir The full path of the case directory. The directory will be
* will be created if it doesn't already exist; if it * created if it doesn't already exist; if it exists, it is ASSUMED it was
* exists, it is ASSUMED it was created by calling * created by calling createCaseDirectory.
* createCaseDirectory.
* @param caseDisplayName The display name of case, which may be changed * @param caseDisplayName The display name of case, which may be changed
* later by the user. * later by the user.
* @param caseNumber The case number, can be the empty string. * @param caseNumber The case number, can be the empty string.
* @param examiner The examiner to associate with the case, can be * @param examiner The examiner to associate with the case, can be the empty
* the empty string. * string.
* *
* @throws CaseActionException if there is a problem creating the case. The * @throws CaseActionException if there is a problem creating the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
* @deprecated Use createAsCurrentCase instead. * @deprecated Use createAsCurrentCase instead.
*/ */
@Deprecated @Deprecated
@ -2459,21 +2445,19 @@ public class Case {
/** /**
* Creates a new Autopsy case and makes it the current case. * Creates a new Autopsy case and makes it the current case.
* *
* @param caseDir The full path of the case directory. The directory * @param caseDir The full path of the case directory. The directory will be
* will be created if it doesn't already exist; if it * created if it doesn't already exist; if it exists, it is ASSUMED it was
* exists, it is ASSUMED it was created by calling * created by calling createCaseDirectory.
* createCaseDirectory.
* @param caseDisplayName The display name of case, which may be changed * @param caseDisplayName The display name of case, which may be changed
* later by the user. * later by the user.
* @param caseNumber The case number, can be the empty string. * @param caseNumber The case number, can be the empty string.
* @param examiner The examiner to associate with the case, can be * @param examiner The examiner to associate with the case, can be the empty
* the empty string. * string.
* @param caseType The type of case (single-user or multi-user). * @param caseType The type of case (single-user or multi-user).
* *
* @throws CaseActionException if there is a problem creating the case. The * @throws CaseActionException if there is a problem creating the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
* @deprecated Use createAsCurrentCase instead. * @deprecated Use createAsCurrentCase instead.
*/ */
@Deprecated @Deprecated
@ -2487,9 +2471,8 @@ public class Case {
* @param caseMetadataFilePath The path of the case metadata (.aut) file. * @param caseMetadataFilePath The path of the case metadata (.aut) file.
* *
* @throws CaseActionException if there is a problem opening the case. The * @throws CaseActionException if there is a problem opening the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
* @deprecated Use openAsCurrentCase instead. * @deprecated Use openAsCurrentCase instead.
*/ */
@Deprecated @Deprecated
@ -2501,9 +2484,8 @@ public class Case {
* Closes this Autopsy case. * Closes this Autopsy case.
* *
* @throws CaseActionException if there is a problem closing the case. The * @throws CaseActionException if there is a problem closing the case. The
* exception will have a user-friendly message * exception will have a user-friendly message and may be a wrapper for a
* and may be a wrapper for a lower-level * lower-level exception.
* exception.
* @deprecated Use closeCurrentCase instead. * @deprecated Use closeCurrentCase instead.
*/ */
@Deprecated @Deprecated
@ -2625,8 +2607,8 @@ public class Case {
* Adds an image to the current case after it has been added to the DB. * Adds an image to the current case after it has been added to the DB.
* Sends out event and reopens windows if needed. * Sends out event and reopens windows if needed.
* *
* @param imgPath The path of the image file. * @param imgPath The path of the image file.
* @param imgId The ID of the image. * @param imgId The ID of the image.
* @param timeZone The time zone of the image. * @param timeZone The time zone of the image.
* *
* @return * @return
@ -2661,7 +2643,7 @@ public class Case {
/** /**
* Deletes reports from the case. * Deletes reports from the case.
* *
* @param reports Collection of Report to be deleted from the case. * @param reports Collection of Report to be deleted from the case.
* @param deleteFromDisk No longer supported - ignored. * @param deleteFromDisk No longer supported - ignored.
* *
* @throws TskCoreException * @throws TskCoreException