diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java index b9554e6367..afdcc0ebba 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java @@ -588,19 +588,38 @@ public class Case { * @return The current case. * * @throws IllegalStateException if there is no current case. - */ + * + * @deprecated. Use getOpenCase() instead. + */ + @Deprecated public static Case getCurrentCase() { /* * Throwing an unchecked exception is a bad idea here. * - * TODO (JIRA-2229): Case.getCurrentCase() method throws unchecked - * IllegalStateException; change to throw checked exception or return - * null */ - if (null != currentCase) { - return currentCase; + try { + return getOpenCase(); + } catch (NoCurrentCaseException e) { + throw new IllegalStateException(NbBundle.getMessage(Case.class, "Case.getCurCase.exception.noneOpen"), e); + } + } + + /** + * Gets the current open case, if there is one, at the time of the call. + * + * @return The open case. + * + * @throws NoCurrentCaseException if there is no open case. + */ + @Messages({ + "Case.NoCurrentCaseException.message=No open case available." + }) + public static Case getOpenCase() throws NoCurrentCaseException { + Case openCase = currentCase; + if (openCase == null) { + throw new NoCurrentCaseException(Case_NoCurrentCaseException_message()); } else { - throw new IllegalStateException(NbBundle.getMessage(Case.class, "Case.getCurCase.exception.noneOpen")); + return openCase; } } diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/NoCurrentCaseException.java b/Core/src/org/sleuthkit/autopsy/casemodule/NoCurrentCaseException.java new file mode 100755 index 0000000000..b52efe8992 --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/casemodule/NoCurrentCaseException.java @@ -0,0 +1,47 @@ +/* + * Autopsy Forensic Browser + * + * Copyright 2018 Basis Technology Corp. + * Contact: carrier sleuthkit org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.sleuthkit.autopsy.casemodule; + + +/** + * + * Exception thrown when no current case is available + */ +public class NoCurrentCaseException extends Exception { + private static final long serialVersionUID = 1L; + /** + * Constructs an exception with the specified message. + * + * @param message The exception message. + */ + public NoCurrentCaseException(String message) { + super(message); + } + + /** + * Constructs an exception with the specified message and cause. + * + * @param message The exception message. + * @param cause The exception cause. + */ + public NoCurrentCaseException(String message, Throwable cause) { + super(message, cause); + } + +}