diff --git a/Core/src/org/sleuthkit/autopsy/actions/AddBlackboardArtifactTagAction.java b/Core/src/org/sleuthkit/autopsy/actions/AddBlackboardArtifactTagAction.java
index f4cd7e82d6f520bc3a13357cdf262c8e1010177f..7ad185ac8e28b5fafdbb62f20dd0618d355c81c3 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/AddBlackboardArtifactTagAction.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/AddBlackboardArtifactTagAction.java
@@ -84,7 +84,7 @@ protected void addTag(TagName tagName, String comment) {
         new Thread(() -> {
             for (BlackboardArtifact artifact : selectedArtifacts) {
                 try {
-                    Case.getCurrentOpenCase().getServices().getTagsManager().addBlackboardArtifactTag(artifact, tagName, comment);
+                    Case.getCurrentCaseThrows().getServices().getTagsManager().addBlackboardArtifactTag(artifact, tagName, comment);
                 } catch (TskCoreException | NoCurrentCaseException ex) {
                     Logger.getLogger(AddBlackboardArtifactTagAction.class.getName()).log(Level.SEVERE, "Error tagging result", ex); //NON-NLS
                     SwingUtilities.invokeLater(() -> {
diff --git a/Core/src/org/sleuthkit/autopsy/actions/AddBookmarkTagAction.java b/Core/src/org/sleuthkit/autopsy/actions/AddBookmarkTagAction.java
index d4c7b8adfe80cae26e50a97dac1d224294c64220..d6090b2ace36f601610efc2312f9e602d5de1a4d 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/AddBookmarkTagAction.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/AddBookmarkTagAction.java
@@ -45,7 +45,7 @@ public class AddBookmarkTagAction extends AbstractAction {
     @Override
     public void actionPerformed(ActionEvent e) {
         try {
-            Map<String, TagName> tagNamesMap = Case.getCurrentOpenCase().getServices().getTagsManager().getDisplayNamesToTagNamesMap();
+            Map<String, TagName> tagNamesMap = Case.getCurrentCaseThrows().getServices().getTagsManager().getDisplayNamesToTagNamesMap();
             TagName bookmarkTagName = tagNamesMap.get(BOOKMARK);
 
             /*
diff --git a/Core/src/org/sleuthkit/autopsy/actions/AddContentTagAction.java b/Core/src/org/sleuthkit/autopsy/actions/AddContentTagAction.java
index de8f5838fd692391bb00494a3421599dfa3b4928..602789735db2653d4cc014b5a85b7f1834f49d15 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/AddContentTagAction.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/AddContentTagAction.java
@@ -140,7 +140,7 @@ protected void addTag(TagName tagName, String comment) {
                         }
                     }
 
-                    Case.getCurrentOpenCase().getServices().getTagsManager().addContentTag(file, tagName, comment);
+                    Case.getCurrentCaseThrows().getServices().getTagsManager().addContentTag(file, tagName, comment);
                 } catch (TskCoreException | NoCurrentCaseException ex) {
                     Logger.getLogger(AddContentTagAction.class.getName()).log(Level.SEVERE, "Error tagging result", ex); //NON-NLS
                     AbstractFile fileCopy = file;
diff --git a/Core/src/org/sleuthkit/autopsy/actions/AddTagAction.java b/Core/src/org/sleuthkit/autopsy/actions/AddTagAction.java
index d489183032723d197234d6c4065316bcbb4d380f..7d0212b51c828ad91cdfd7c7126bc9e4bdb05bd8 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/AddTagAction.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/AddTagAction.java
@@ -93,7 +93,7 @@ private class TagMenu extends JMenu {
             // Get the current set of tag names.
             Map<String, TagName> tagNamesMap = null;
             try {
-                TagsManager tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+                TagsManager tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
                 tagNamesMap = new TreeMap<>(tagsManager.getDisplayNamesToTagNamesMap());
             } catch (TskCoreException | NoCurrentCaseException ex) {
                 Logger.getLogger(TagsManager.class.getName()).log(Level.SEVERE, "Failed to get tag names", ex); //NON-NLS
@@ -170,7 +170,7 @@ private class TagMenu extends JMenu {
         private void getAndAddTag(String tagDisplayName, TagName tagName, String comment) {
             Case openCase;
             try {
-                openCase = Case.getCurrentOpenCase();
+                openCase = Case.getCurrentCaseThrows();
             } catch (NoCurrentCaseException ex) {
                 Logger.getLogger(AddTagAction.class.getName()).log(Level.SEVERE, "Exception while getting open case.", ex); // NON-NLS
                 return;
diff --git a/Core/src/org/sleuthkit/autopsy/actions/DeleteBlackboardArtifactTagAction.java b/Core/src/org/sleuthkit/autopsy/actions/DeleteBlackboardArtifactTagAction.java
index 569a8c6694f7a6ab853f9c6ae24b8403a7938512..18ae9ac7e56b76fc5c7b5b0777a54641e0a6cfd6 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/DeleteBlackboardArtifactTagAction.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/DeleteBlackboardArtifactTagAction.java
@@ -73,7 +73,7 @@ public void actionPerformed(ActionEvent event) {
         new Thread(() -> {
             for (BlackboardArtifactTag tag : selectedTags) {
                 try {
-                    Case.getCurrentOpenCase().getServices().getTagsManager().deleteBlackboardArtifactTag(tag);
+                    Case.getCurrentCaseThrows().getServices().getTagsManager().deleteBlackboardArtifactTag(tag);
                 } catch (TskCoreException | NoCurrentCaseException ex) {
                     Logger.getLogger(DeleteBlackboardArtifactTagAction.class.getName()).log(Level.SEVERE, "Error deleting tag", ex); //NON-NLS
                     SwingUtilities.invokeLater(() -> {
diff --git a/Core/src/org/sleuthkit/autopsy/actions/DeleteContentTagAction.java b/Core/src/org/sleuthkit/autopsy/actions/DeleteContentTagAction.java
index 01c981d7bcfae51b23784b3501b664df5412438d..07cce02bfcfdea9812ef15a9f7a13d8c78255d7f 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/DeleteContentTagAction.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/DeleteContentTagAction.java
@@ -72,7 +72,7 @@ public void actionPerformed(ActionEvent e) {
         new Thread(() -> {
             for (ContentTag tag : selectedTags) {
                 try {
-                    Case.getCurrentOpenCase().getServices().getTagsManager().deleteContentTag(tag);
+                    Case.getCurrentCaseThrows().getServices().getTagsManager().deleteContentTag(tag);
                 } catch (TskCoreException | NoCurrentCaseException ex) {
                     Logger.getLogger(DeleteContentTagAction.class.getName()).log(Level.SEVERE, "Error deleting tag", ex); //NON-NLS
                     SwingUtilities.invokeLater(() -> {
diff --git a/Core/src/org/sleuthkit/autopsy/actions/DeleteFileBlackboardArtifactTagAction.java b/Core/src/org/sleuthkit/autopsy/actions/DeleteFileBlackboardArtifactTagAction.java
index 1e2be550bf608303ae31a7b4228c6ef87630e03e..008cb419fffee16edf879618ebd650410b29f69c 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/DeleteFileBlackboardArtifactTagAction.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/DeleteFileBlackboardArtifactTagAction.java
@@ -98,7 +98,7 @@ protected void deleteTag(TagName tagName, BlackboardArtifactTag artifactTag, lon
             protected Void doInBackground() throws Exception {
                 TagsManager tagsManager;
                 try {
-                    tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+                    tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
                 } catch (NoCurrentCaseException ex) {
                     logger.log(Level.SEVERE, "Error untagging artifact. No open case found.", ex); //NON-NLS
                     Platform.runLater(()
@@ -155,7 +155,7 @@ private class TagMenu extends JMenu {
                 Map<String, TagName> tagNamesMap = null;
                 try {
                     // Get the current set of tag names.
-                    TagsManager tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+                    TagsManager tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
 
                     tagNamesMap = new TreeMap<>(tagsManager.getDisplayNamesToTagNamesMap());
                 } catch (TskCoreException | NoCurrentCaseException ex) {
@@ -168,7 +168,7 @@ private class TagMenu extends JMenu {
                 if (null != tagNamesMap && !tagNamesMap.isEmpty()) {
                     try {
                         List<BlackboardArtifactTag> existingTagsList
-                                = Case.getCurrentOpenCase().getServices().getTagsManager()
+                                = Case.getCurrentCaseThrows().getServices().getTagsManager()
                                 .getBlackboardArtifactTagsByArtifact(artifact);
 
                         for (Map.Entry<String, TagName> entry : tagNamesMap.entrySet()) {
diff --git a/Core/src/org/sleuthkit/autopsy/actions/DeleteFileContentTagAction.java b/Core/src/org/sleuthkit/autopsy/actions/DeleteFileContentTagAction.java
index 88253181d77e0cbb2ed1b70e4dfec3dbbe472e1e..f336cd888fe11ca03bcddf554c2dcdcf8ee0118b 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/DeleteFileContentTagAction.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/DeleteFileContentTagAction.java
@@ -98,7 +98,7 @@ protected void deleteTag(TagName tagName, ContentTag contentTag, long fileId) {
             protected Void doInBackground() throws Exception {
                 TagsManager tagsManager;
                 try {
-                    tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+                    tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
                 } catch (NoCurrentCaseException ex) {
                     logger.log(Level.SEVERE, "Error untagging file. No open case found.", ex); //NON-NLS
                     Platform.runLater(() ->
@@ -152,7 +152,7 @@ private class TagMenu extends JMenu {
                 Map<String, TagName> tagNamesMap = null;
                 try {
                     // Get the current set of tag names.
-                    TagsManager tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+                    TagsManager tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
 
                     tagNamesMap = new TreeMap<>(tagsManager.getDisplayNamesToTagNamesMap());
                 } catch (TskCoreException | NoCurrentCaseException ex) {
@@ -165,7 +165,7 @@ private class TagMenu extends JMenu {
                 if (null != tagNamesMap && !tagNamesMap.isEmpty()) {
                     try {
                         List<ContentTag> existingTagsList =
-                                Case.getCurrentOpenCase().getServices().getTagsManager()
+                                Case.getCurrentCaseThrows().getServices().getTagsManager()
                                         .getContentTagsByContent(file);
 
                         for (Map.Entry<String, TagName> entry : tagNamesMap.entrySet()) {
diff --git a/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.java b/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.java
index d106f3c300b3770588e6fcb942ce0f5f76c03c51..51665012cdc0b1cdfff1f083d4a711352babe50b 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/GetTagNameAndCommentDialog.java
@@ -139,7 +139,7 @@ public void actionPerformed(ActionEvent e) {
         // Tag name DTOs may be null (user tag names that have not been used do
         // not exist in the database).
         try {
-            TagsManager tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+            TagsManager tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
             tagNamesSet.addAll(tagsManager.getAllTagNames());
 
         } catch (TskCoreException | NoCurrentCaseException ex) {
diff --git a/Core/src/org/sleuthkit/autopsy/actions/GetTagNameDialog.java b/Core/src/org/sleuthkit/autopsy/actions/GetTagNameDialog.java
index ed421d086a07305770b47b7a4840343631f1a5f3..21785f2003ffd3c58a633e036d053edf43ad7592 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/GetTagNameDialog.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/GetTagNameDialog.java
@@ -110,7 +110,7 @@ public void actionPerformed(ActionEvent e) {
         // Get the current set of tag names and hash them for a speedy lookup in
         // case the user chooses an existing tag name from the tag names table.
         try {
-            TagsManager tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+            TagsManager tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
             tagNamesMap.putAll(tagsManager.getDisplayNamesToTagNamesMap());
         } catch (TskCoreException | NoCurrentCaseException ex) {
             Logger.getLogger(GetTagNameDialog.class.getName()).log(Level.SEVERE, "Failed to get tag names", ex); //NON-NLS
@@ -348,7 +348,7 @@ private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS
 
             if (tagName == null) {
                 try {
-                    tagName = Case.getCurrentOpenCase().getServices().getTagsManager().addTagName(tagDisplayName, userTagDescription, TagName.HTML_COLOR.NONE, status);
+                    tagName = Case.getCurrentCaseThrows().getServices().getTagsManager().addTagName(tagDisplayName, userTagDescription, TagName.HTML_COLOR.NONE, status);
                     dispose();
                 } catch (TskCoreException | NoCurrentCaseException ex) {
                     Logger.getLogger(AddTagAction.class.getName()).log(Level.SEVERE, "Error adding " + tagDisplayName + " tag name", ex); //NON-NLS
@@ -361,7 +361,7 @@ private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS
                     tagName = null;
                 } catch (TagsManager.TagNameAlreadyExistsException ex) {
                     try {
-                        tagName = Case.getCurrentOpenCase().getServices().getTagsManager().getDisplayNamesToTagNamesMap().get(tagDisplayName);
+                        tagName = Case.getCurrentCaseThrows().getServices().getTagsManager().getDisplayNamesToTagNamesMap().get(tagDisplayName);
                     } catch (TskCoreException | NoCurrentCaseException ex1) {
                         Logger.getLogger(AddTagAction.class.getName()).log(Level.SEVERE, tagDisplayName + " exists in database but an error occurred in retrieving it.", ex1); //NON-NLS
                         JOptionPane.showMessageDialog(this,
diff --git a/Core/src/org/sleuthkit/autopsy/actions/OpenLogFolderAction.java b/Core/src/org/sleuthkit/autopsy/actions/OpenLogFolderAction.java
index 06287ea65a6f7a90171d0786641528736e74ed54..fb178c797d40e2df856bef0abcc5c28431af2f1b 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/OpenLogFolderAction.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/OpenLogFolderAction.java
@@ -58,7 +58,7 @@ public void actionPerformed(ActionEvent e) {
                 /*
                  * Open the log directory for the case.
                  */
-                Case currentCase = Case.getCurrentOpenCase();
+                Case currentCase = Case.getCurrentCaseThrows();
                 logDir = new File(currentCase.getLogDirectoryPath());
             } catch (NoCurrentCaseException ex) {
                 /*
diff --git a/Core/src/org/sleuthkit/autopsy/actions/OpenOutputFolderAction.java b/Core/src/org/sleuthkit/autopsy/actions/OpenOutputFolderAction.java
index 1cbeb50d64a98b58c1e20c6a8727ff148448900b..29b8d67960774c96199f1b222d07bab7a7d202c1 100644
--- a/Core/src/org/sleuthkit/autopsy/actions/OpenOutputFolderAction.java
+++ b/Core/src/org/sleuthkit/autopsy/actions/OpenOutputFolderAction.java
@@ -57,7 +57,7 @@ public final class OpenOutputFolderAction extends CallableSystemAction {
     public void performAction() {
         File outputDir;
         try {
-            Case currentCase = Case.getCurrentOpenCase();
+            Case currentCase = Case.getCurrentCaseThrows();
             outputDir = new File(currentCase.getOutputDirectory());
             if (outputDir.exists()) {
                 try {
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java
index 8b92eab6fe8e394226b0637b9561163fb49c0914..cbcb06c936bb5f291507a0be36eb4c83ebd434b8 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageTask.java
@@ -109,7 +109,7 @@ class AddImageTask implements Runnable {
     public void run() {
         Case currentCase;
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex);
             return;
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java
index 8023384190f848d8753e00f83469bd3075c61f87..6c6097717e03c1062022226d65caccf5b51660ef 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardAddingProgressPanel.java
@@ -345,7 +345,7 @@ void cleanup() throws Exception {
 
             new Thread(() -> {
                 try {
-                    Case.getCurrentOpenCase().notifyAddingDataSource(dataSourceId);
+                    Case.getCurrentCaseThrows().notifyAddingDataSource(dataSourceId);
                 } catch (NoCurrentCaseException ex) {
                      Logger.getLogger(AddImageWizardAddingProgressVisual.class.getName()).log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
                 }
@@ -417,9 +417,9 @@ private void dataSourceProcessorDone(UUID dataSourceId, DataSourceProcessorCallb
         new Thread(() -> {
             try {
                 if (!contents.isEmpty()) {
-                    Case.getCurrentOpenCase().notifyDataSourceAdded(contents.get(0), dataSourceId);
+                    Case.getCurrentCaseThrows().notifyDataSourceAdded(contents.get(0), dataSourceId);
                 } else {
-                    Case.getCurrentOpenCase().notifyFailedAddingDataSource(dataSourceId);
+                    Case.getCurrentCaseThrows().notifyFailedAddingDataSource(dataSourceId);
                 }
             } catch (NoCurrentCaseException ex) {
                 Logger.getLogger(AddImageWizardAddingProgressVisual.class.getName()).log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java
index bb7c8fceb19bfd1bc944d3e880932bd222d1b39b..43bfed1caa8fbe846d00a8624f2bf8e9f76bcce7 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddImageWizardSelectDspVisual.java
@@ -59,7 +59,7 @@ final class AddImageWizardSelectDspVisual extends JPanel {
         selectedDsp = lastDspUsed;
         //if the last selected DSP was the Local Disk DSP and it would be disabled then we want to select a different DSP
         try {
-            if ((Case.getCurrentOpenCase().getCaseType() == Case.CaseType.MULTI_USER_CASE) && selectedDsp.equals(LocalDiskDSProcessor.getType())) {
+            if ((Case.getCurrentCaseThrows().getCaseType() == Case.CaseType.MULTI_USER_CASE) && selectedDsp.equals(LocalDiskDSProcessor.getType())) {
                 selectedDsp = ImageDSProcessor.getType();
             }
             createDataSourceProcessorButtons();
@@ -131,7 +131,7 @@ public void actionPerformed(ActionEvent e) {
             //Add the button
             JToggleButton dspButton = createDspButton(dspType);
             dspButton.addActionListener(cbActionListener);
-            if ((Case.getCurrentOpenCase().getCaseType() == Case.CaseType.MULTI_USER_CASE) && dspType.equals(LocalDiskDSProcessor.getType())){
+            if ((Case.getCurrentCaseThrows().getCaseType() == Case.CaseType.MULTI_USER_CASE) && dspType.equals(LocalDiskDSProcessor.getType())){
                 dspButton.setEnabled(false); //disable the button for local disk DSP when this is a multi user case
                 dspButton.setSelected(false);
                 shouldAddMultiUserWarning = true;
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/AddLocalFilesTask.java b/Core/src/org/sleuthkit/autopsy/casemodule/AddLocalFilesTask.java
index cb12b2a5f3b1ebe3ed8133f415658d6e6be46bde..feae1ddb6b9f4a76bdb6dde055a544038526ba60 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/AddLocalFilesTask.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/AddLocalFilesTask.java
@@ -87,7 +87,7 @@ public void run() {
         List<String> errors = new ArrayList<>();
         try {
             progress.setIndeterminate(true);
-            FileManager fileManager = Case.getCurrentOpenCase().getServices().getFileManager();
+            FileManager fileManager = Case.getCurrentCaseThrows().getServices().getFileManager();
             LocalFilesDataSource newDataSource = fileManager.addLocalFilesDataSource(deviceId, rootVirtualDirectoryName, "", localFilePaths, new ProgressUpdater());
             newDataSources.add(newDataSource);
         } catch (TskDataException | TskCoreException | NoCurrentCaseException ex) {
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java
index 765d604ce3f27442b8503e88bbd7162ddd2fcfd8..61f54b87af095d5bd6047f32a87da9be985d5cbb 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java
@@ -591,7 +591,7 @@ public static boolean isCaseOpen() {
      */
     public static Case getCurrentCase() {
         try {
-            return getCurrentOpenCase();
+            return getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             /*
              * Throw a runtime exception, since this is a programming error.
@@ -601,18 +601,23 @@ public static Case getCurrentCase() {
     }
 
     /**
-     * Gets the current case, if there is one, or throws an exception. This
-     * method should only be called by methods known to run in threads other
-     * than threads that close the current case, where the exception provides
-     * some protection from the consequences of the race condition between the
-     * calling thread and the case closing thread, although it is not
-     * fool-proof.
+     * Gets the current case, if there is one, or throws an exception if there
+     * is no current case. This method should only be called by methods known to
+     * run in threads where it is possible that another thread has closed the
+     * current case. The exception provides some protection from the
+     * consequences of the race condition between the calling thread and a case
+     * closing thread, but it is not fool-proof. Background threads calling this
+     * method should put all operations in an exception firewall with a try and
+     * catch-all block to handle the possibility of bad timing.
+     *
+     * TODO (JIRA-3825): Introduce a reference counting scheme for this get case
+     * method.
      *
      * @return The current case.
      *
      * @throws NoCurrentCaseException if there is no current case.
      */
-    public static Case getCurrentOpenCase() throws NoCurrentCaseException {
+    public static Case getCurrentCaseThrows() throws NoCurrentCaseException {
         Case openCase = currentCase;
         if (openCase == null) {
             throw new NoCurrentCaseException(NbBundle.getMessage(Case.class, "Case.getCurCase.exception.noneOpen"));
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CaseDeleteAction.java b/Core/src/org/sleuthkit/autopsy/casemodule/CaseDeleteAction.java
index a55ac143cbeb2e935775e133f2fb63a64b7ee287..a389aca9793bb289e4db4ae0e5b37031dc279eaa 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/CaseDeleteAction.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/CaseDeleteAction.java
@@ -66,7 +66,7 @@ final class CaseDeleteAction extends CallableSystemAction {
         "# {0} - exception message", "Case.deleteCaseFailureMessageBox.message=Error deleting case: {0}",})
     public void actionPerformed(ActionEvent e) {
         try {
-            Case currentCase = Case.getCurrentOpenCase();
+            Case currentCase = Case.getCurrentCaseThrows();
             String caseName = currentCase.getName();
             String caseDirectory = currentCase.getCaseDirectory();
 
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CaseInformationPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/CaseInformationPanel.java
index 73b61c2c7a47eb386ab4a818b051adbb60cbe073..b8542552c461d562fbd6bc0f85232d8e89fc5a74 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/CaseInformationPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/CaseInformationPanel.java
@@ -54,7 +54,7 @@ class CaseInformationPanel extends javax.swing.JPanel {
     })
     private void customizeComponents() {
         try {
-            propertiesPanel = new CasePropertiesPanel(Case.getCurrentOpenCase());
+            propertiesPanel = new CasePropertiesPanel(Case.getCurrentCaseThrows());
         } catch (NoCurrentCaseException ex) { 
             Logger.getLogger(CaseInformationPanel.class.getName()).log(Level.INFO, "Exception while getting open case.", ex);
         }
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesPanel.java
index b19eca44695a415f0098d7a77052ca619a320248..cc3c682830959c95f635f09ffa9b449791d6e567 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/CasePropertiesPanel.java
@@ -50,7 +50,7 @@ final class CasePropertiesPanel extends javax.swing.JPanel {
 
     void updateCaseInfo() {
         try {
-            theCase = Case.getCurrentOpenCase();
+            theCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) { 
             LOGGER.log(Level.SEVERE, "Exception while getting open case.", ex);
             return;
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java b/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java
index 2e8d0cff113f2de94b8eb0abbfef748b95609753..2db469e371e6d253e127cc4142086e928758e0b5 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/ImageDSProcessor.java
@@ -264,7 +264,7 @@ public int canProcess(Path dataSourcePath) throws AutoIngestDataSourceProcessorE
         
         try {
             // verify that the image has a file system that TSK can process
-            Case currentCase = Case.getCurrentOpenCase();
+            Case currentCase = Case.getCurrentCaseThrows();
             if (!DataSourceUtils.imageHasFileSystem(dataSourcePath)) {
                 // image does not have a file system that TSK can process
                 return 0;
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java
index a6e777ccf666b699a529f3220cb14a288b500b77..56d5e678395e1d72221858f071db75b94f4838a6 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/ImageFilePanel.java
@@ -319,7 +319,7 @@ public boolean validatePanel() {
 
         // Display warning if there is one (but don't disable "next" button)
         try {
-            if (false == PathValidator.isValid(path, Case.getCurrentOpenCase().getCaseType())) {
+            if (false == PathValidator.isValid(path, Case.getCurrentCaseThrows().getCaseType())) {
                 pathErrorLabel.setVisible(true);
                 pathErrorLabel.setText(Bundle.ImageFilePanel_pathValidation_dataSourceOnCDriveError());
             }
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/IngestJobInfoPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/IngestJobInfoPanel.java
index d117e8e12eb873baf9205aee54bd75419e1554e9..3c7d6593db040bc1cd7df8dff9eb0a9eb8e58b80 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/IngestJobInfoPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/IngestJobInfoPanel.java
@@ -76,7 +76,7 @@ private void customizeComponents() {
 
     private void refresh() {
         try {
-            SleuthkitCase skCase = Case.getCurrentOpenCase().getSleuthkitCase();
+            SleuthkitCase skCase = Case.getCurrentCaseThrows().getSleuthkitCase();
             List<IngestJobInfo> ingestJobs = skCase.getIngestJobs();
             this.ingestJobs = ingestJobs;
             this.repaint();
@@ -116,7 +116,7 @@ public Object getValueAt(int rowIndex, int columnIndex) {
             IngestJobInfo currIngestJob = ingestJobs.get(rowIndex);
             if (columnIndex == 0) {
                 try {
-                    SleuthkitCase skCase = Case.getCurrentOpenCase().getSleuthkitCase();
+                    SleuthkitCase skCase = Case.getCurrentCaseThrows().getSleuthkitCase();
                     return skCase.getContentById(currIngestJob.getObjectId()).getName();
                 } catch (TskCoreException | NoCurrentCaseException ex) {
                     logger.log(Level.SEVERE, "Failed to get content from db", ex);
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java
index 51be317e5d55ea60415a5e0efd47532c7a92f559..fc702076a027c4349b1abd6b9bbb6f1aa9b0f037 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/LocalDiskPanel.java
@@ -382,7 +382,7 @@ boolean getNoFatOrphans() {
     }
 
     private static String getDefaultImageWriterFolder() throws NoCurrentCaseException {
-        return Paths.get(Case.getCurrentOpenCase().getModuleDirectory(), "Image Writer").toString();
+        return Paths.get(Case.getCurrentCaseThrows().getModuleDirectory(), "Image Writer").toString();
     }
 
     private void setPotentialImageWriterPath(LocalDisk disk) throws NoCurrentCaseException {
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesDSProcessor.java b/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesDSProcessor.java
index e344e3a399e06af365284e5417fdeaee9e6a9e81..1e90777367c49ccf555c04dd5c9688e9d6725bc7 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesDSProcessor.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesDSProcessor.java
@@ -198,7 +198,7 @@ private List<String> extractLogicalEvidenceFileContents(final List<String> logic
             command.add("-f");
             command.add("files");
             command.add("-t");
-            File l01Dir = new File(Case.getCurrentOpenCase().getModuleDirectory(), L01_EXTRACTION_DIR);  //WJS-TODO change to getOpenCase() when that method exists
+            File l01Dir = new File(Case.getCurrentCaseThrows().getModuleDirectory(), L01_EXTRACTION_DIR);  //WJS-TODO change to getOpenCase() when that method exists
             if (!l01Dir.exists()) {
                 l01Dir.mkdirs();
             }
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java
index ba4bb9685a47735254c41175a55e5d02e383ccc2..3ab408809483185c081543da6dd0e48aa1440a1c 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/LocalFilesPanel.java
@@ -283,7 +283,7 @@ private void warnIfPathIsInvalid(final List<String> pathsList) {
         errorLabel.setVisible(false);
 
         try {
-            final Case.CaseType currentCaseType = Case.getCurrentOpenCase().getCaseType();
+            final Case.CaseType currentCaseType = Case.getCurrentCaseThrows().getCaseType();
 
             for (String currentPath : pathsList) {
                 if (!PathValidator.isValid(currentPath, currentCaseType)) {
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/LogicalEvidenceFilePanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/LogicalEvidenceFilePanel.java
index e4b8677426b801b74b5336a9b7a5ad870cf530cb..d38106a0ab6d8618917fa3edebc884773971cabc 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/LogicalEvidenceFilePanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/LogicalEvidenceFilePanel.java
@@ -191,7 +191,7 @@ boolean validatePanel() {
         }
         // display warning if there is one (but don't disable "next" button)
         try {
-            if (!PathValidator.isValid(path, Case.getCurrentOpenCase().getCaseType())) {
+            if (!PathValidator.isValid(path, Case.getCurrentCaseThrows().getCaseType())) {
                 errorLabel.setVisible(true);
                 errorLabel.setText(Bundle.LogicalEvidenceFilePanel_pathValidation_dataSourceOnCDriveError());
                 return false;
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java
index 2f3f947366c9de8e17dd63f8c0c6fc550560b2e8..2b85a74333b35bfb30fb0e6e4f1d3b2687d921ec 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/NewCaseWizardAction.java
@@ -91,9 +91,9 @@ protected Void doInBackground() throws Exception {
                     if (EamDb.isEnabled()) {  //if the eam is enabled we need to save the case organization information now
                             EamDb dbManager = EamDb.getInstance();
                             if (dbManager != null) {
-                                CorrelationCase cRCase = dbManager.getCase(Case.getCurrentOpenCase());
+                                CorrelationCase cRCase = dbManager.getCase(Case.getCurrentCaseThrows());
                                 if (cRCase == null) {
-                                    cRCase = dbManager.newCase(Case.getCurrentOpenCase());
+                                    cRCase = dbManager.newCase(Case.getCurrentCaseThrows());
                                 }
                                 if (!organizationName.isEmpty()) {
                                     for (EamOrganization org : dbManager.getOrganizations()) {
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/OptionalCasePropertiesPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/OptionalCasePropertiesPanel.java
index 129aca5a78b77cd6406ea4445c07674bc1fedd89..4625727d94099201c149854b22e030fa6712b71b 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/OptionalCasePropertiesPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/OptionalCasePropertiesPanel.java
@@ -64,7 +64,7 @@ final class OptionalCasePropertiesPanel extends javax.swing.JPanel {
         if (editCurrentCase) {
             Case openCase;
             try {
-                openCase = Case.getCurrentOpenCase();
+                openCase = Case.getCurrentCaseThrows();
             } catch (NoCurrentCaseException ex) { 
                 LOGGER.log(Level.SEVERE, "Exception while getting open case.", ex);
                 return;
@@ -94,7 +94,7 @@ final class OptionalCasePropertiesPanel extends javax.swing.JPanel {
     private void setUpOrganizationData() {
         if (EamDb.isEnabled()) {
             try {
-                Case currentCase = Case.getCurrentOpenCase();
+                Case currentCase = Case.getCurrentCaseThrows();
                 if (currentCase != null) {
                     EamDb dbManager = EamDb.getInstance();
                     selectedOrg = dbManager.getCase(currentCase).getOrg();
@@ -567,7 +567,7 @@ void saveUpdatedCaseDetails() {
     private void updateCaseDetails() throws NoCurrentCaseException {
         if (caseDisplayNameTextField.isVisible()) {
             try {
-                Case.getCurrentOpenCase().updateCaseDetails(new CaseDetails(
+                Case.getCurrentCaseThrows().updateCaseDetails(new CaseDetails(
                         caseDisplayNameTextField.getText(), caseNumberTextField.getText(),
                         examinerTextField.getText(), tfExaminerPhoneText.getText(),
                         tfExaminerEmailText.getText(), taNotesText.getText()));
@@ -586,7 +586,7 @@ private void updateCorrelationCase() {
         if (EamDb.isEnabled()) {
             try {
                 EamDb dbManager = EamDb.getInstance();
-                CorrelationCase correlationCase = dbManager.getCase(Case.getCurrentOpenCase());
+                CorrelationCase correlationCase = dbManager.getCase(Case.getCurrentCaseThrows());
                 if (caseDisplayNameTextField.isVisible()) {
                     correlationCase.setDisplayName(caseDisplayNameTextField.getText());
                 }
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java b/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java
index ecad0b74506825ac226d2e4ece570deaeb42ec22..ccf592ca67b61ab36a57deb6fd711e84d2e6dfad 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/RecentCases.java
@@ -374,7 +374,7 @@ public String[] getRecentCaseNames() {
         int i = 0;
         String currentCaseName = null;
         try {
-            currentCaseName = Case.getCurrentOpenCase().getDisplayName();
+            currentCaseName = Case.getCurrentCaseThrows().getDisplayName();
         } catch (NoCurrentCaseException ex) {
             // in case there is no current case.
         }
@@ -407,7 +407,7 @@ public String[] getRecentCasePaths() {
         String[] casePaths = new String[LENGTH];
         String currentCasePath = null;
         try {
-            currentCasePath = Case.getCurrentOpenCase().getMetadata().getFilePath().toString();
+            currentCasePath = Case.getCurrentCaseThrows().getMetadata().getFilePath().toString();
         } catch (NoCurrentCaseException ex) {
             /*
              * There may be no current case.
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/events/BlackBoardArtifactTagAddedEvent.java b/Core/src/org/sleuthkit/autopsy/casemodule/events/BlackBoardArtifactTagAddedEvent.java
index 71a77de147ec908604792a82293dc071cb1bcb91..8c2a2d6dfa45d9b0caa4f005dee1b98f6c47873e 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/events/BlackBoardArtifactTagAddedEvent.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/events/BlackBoardArtifactTagAddedEvent.java
@@ -47,6 +47,6 @@ public BlackBoardArtifactTagAddedEvent(BlackboardArtifactTag newTag) {
      */
     @Override
     BlackboardArtifactTag getTagByID() throws NoCurrentCaseException, TskCoreException {
-        return Case.getCurrentOpenCase().getServices().getTagsManager().getBlackboardArtifactTagByTagID(getTagID());
+        return Case.getCurrentCaseThrows().getServices().getTagsManager().getBlackboardArtifactTagByTagID(getTagID());
     }
 }
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/events/ContentTagAddedEvent.java b/Core/src/org/sleuthkit/autopsy/casemodule/events/ContentTagAddedEvent.java
index a553fdfffcb900009331d875afcb1d4194557028..8e7ea629d784db70a57fb819c9fea910175181db 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/events/ContentTagAddedEvent.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/events/ContentTagAddedEvent.java
@@ -46,6 +46,6 @@ public ContentTagAddedEvent(ContentTag newTag) {
      * @throws TskCoreException
      */
     ContentTag getTagByID() throws NoCurrentCaseException, TskCoreException {
-        return Case.getCurrentOpenCase().getServices().getTagsManager().getContentTagByTagID(getTagID());
+        return Case.getCurrentCaseThrows().getServices().getTagsManager().getContentTagByTagID(getTagID());
     }
 }
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/events/DataSourceAddedEvent.java b/Core/src/org/sleuthkit/autopsy/casemodule/events/DataSourceAddedEvent.java
index 721d3ac3b5845569f5428f102ccec4a1b8b9fe59..84a99ee8b2b5a2715dd8a2da8ffa1b8adc693de0 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/events/DataSourceAddedEvent.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/events/DataSourceAddedEvent.java
@@ -79,7 +79,7 @@ public Object getNewValue() {
         }
         try {
             long id = (Long) super.getNewValue();
-            dataSource = Case.getCurrentOpenCase().getSleuthkitCase().getContentById(id);
+            dataSource = Case.getCurrentCaseThrows().getSleuthkitCase().getContentById(id);
             return dataSource;
         } catch (NoCurrentCaseException | TskCoreException ex) {
             logger.log(Level.SEVERE, "Error doing lazy load for remote event", ex); //NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/events/ReportAddedEvent.java b/Core/src/org/sleuthkit/autopsy/casemodule/events/ReportAddedEvent.java
index 72947aa1702f2bce7608c64f3f7b34f195bd7309..7f35c625c5e2a949ca5443bc66d4cdba29518725 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/events/ReportAddedEvent.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/events/ReportAddedEvent.java
@@ -70,7 +70,7 @@ public Object getNewValue() {
         }
         try {
             long id = (Long) super.getNewValue();
-            List<Report> reports = Case.getCurrentOpenCase().getSleuthkitCase().getAllReports();
+            List<Report> reports = Case.getCurrentCaseThrows().getSleuthkitCase().getAllReports();
             for (Report thisReport : reports) {
                 if (thisReport.getId() == id) {
                     report = thisReport;
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/services/TagNameDefinition.java b/Core/src/org/sleuthkit/autopsy/casemodule/services/TagNameDefinition.java
index 9e9b671d2e761f0c9b8027e30f05d96b5673f80c..fb02e7d2d49e2e0dc30cbcc9242896c43a8c1ca3 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/services/TagNameDefinition.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/services/TagNameDefinition.java
@@ -297,7 +297,7 @@ static synchronized void setTagNameDefinitions(Set<TagNameDefinition> tagNames)
             }
             setting.append(tagName.toSettingsFormat());
             try {
-                SleuthkitCase caseDb = Case.getCurrentOpenCase().getSleuthkitCase();
+                SleuthkitCase caseDb = Case.getCurrentCaseThrows().getSleuthkitCase();
                 tagName.saveToCase(caseDb);
             } catch (NoCurrentCaseException ex) {
                 LOGGER.log(Level.SEVERE, "Exception while getting open case.", ex);
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/services/TagOptionsPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/services/TagOptionsPanel.java
index b65d7ac03fcb1a49d84df80b2eb3bf7f599778ef..419a92e8c96e2e3cb085ee01159cad6caf73d33a 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/services/TagOptionsPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/services/TagOptionsPanel.java
@@ -425,7 +425,7 @@ private void sendStatusChangedEvents() {
         for (String modifiedTagDisplayName : updatedStatusTags) {
             //if  user closes their case after options have been changed but before application of them is complete don't notify
             try {
-                Case.getCurrentOpenCase().notifyTagDefinitionChanged(modifiedTagDisplayName);
+                Case.getCurrentCaseThrows().notifyTagDefinitionChanged(modifiedTagDisplayName);
             } catch (NoCurrentCaseException ex) {
                 Logger.getLogger(TagOptionsPanel.class.getName()).log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             }
diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/services/TagsManager.java b/Core/src/org/sleuthkit/autopsy/casemodule/services/TagsManager.java
index ef3a61a186148bef45b473bba4736e5b9e18a91c..f113a622fe52765a631a2e84f836c20b30d7f1dd 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/services/TagsManager.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/services/TagsManager.java
@@ -99,7 +99,7 @@ public static Set<String> getTagDisplayNames() throws TskCoreException {
             tagDisplayNames.add(tagType.getDisplayName());
         });
         try {
-            TagsManager tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+            TagsManager tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
             for (TagName tagName : tagsManager.getAllTagNames()) {
                 tagDisplayNames.add(tagName.getDisplayName());
             }
@@ -340,7 +340,7 @@ public ContentTag addContentTag(Content content, TagName tagName, String comment
         ContentTag tag;
         tag = caseDb.addContentTag(content, tagName, comment, beginByteOffset, endByteOffset);
         try {
-            Case.getCurrentOpenCase().notifyContentTagAdded(tag);
+            Case.getCurrentCaseThrows().notifyContentTagAdded(tag);
         } catch (NoCurrentCaseException ex) {
             throw new TskCoreException("Added a tag to a closed case", ex);
         }
@@ -358,7 +358,7 @@ public ContentTag addContentTag(Content content, TagName tagName, String comment
     public void deleteContentTag(ContentTag tag) throws TskCoreException {
         caseDb.deleteContentTag(tag);
         try {
-            Case.getCurrentOpenCase().notifyContentTagDeleted(tag);
+            Case.getCurrentCaseThrows().notifyContentTagDeleted(tag);
         } catch (NoCurrentCaseException ex) {
             throw new TskCoreException("Deleted a tag from a closed case", ex);
         }
@@ -470,7 +470,7 @@ public BlackboardArtifactTag addBlackboardArtifactTag(BlackboardArtifact artifac
     public BlackboardArtifactTag addBlackboardArtifactTag(BlackboardArtifact artifact, TagName tagName, String comment) throws TskCoreException {
         BlackboardArtifactTag tag = caseDb.addBlackboardArtifactTag(artifact, tagName, comment);
         try {
-            Case.getCurrentOpenCase().notifyBlackBoardArtifactTagAdded(tag);
+            Case.getCurrentCaseThrows().notifyBlackBoardArtifactTagAdded(tag);
         } catch (NoCurrentCaseException ex) {
             throw new TskCoreException("Added a tag to a closed case", ex);
         }
@@ -488,7 +488,7 @@ public BlackboardArtifactTag addBlackboardArtifactTag(BlackboardArtifact artifac
     public void deleteBlackboardArtifactTag(BlackboardArtifactTag tag) throws TskCoreException {
         caseDb.deleteBlackboardArtifactTag(tag);
         try {
-            Case.getCurrentOpenCase().notifyBlackBoardArtifactTagDeleted(tag);
+            Case.getCurrentCaseThrows().notifyBlackBoardArtifactTagDeleted(tag);
         } catch (NoCurrentCaseException ex) {
             throw new TskCoreException("Deleted a tag from a closed case", ex);
         }
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/DataContentViewerOtherCases.java b/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/DataContentViewerOtherCases.java
index 9da8d804a4477a38c331012eb39b038634167909..2a86e7c2796c3549a6fec8e05ca68771e893d84f 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/DataContentViewerOtherCases.java
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/DataContentViewerOtherCases.java
@@ -169,7 +169,7 @@ private void showCommonalityDetails() {
     private void showCaseDetails(int selectedRowViewIdx) {
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             JOptionPane.showConfirmDialog(showCaseDetailsMenuItem,
                             Bundle.DataContentViewerOtherCases_noOpenCase_errMsg(),
@@ -225,7 +225,7 @@ private void saveToCSV() throws NoCurrentCaseException {
         if (0 != otherCasesTable.getSelectedRowCount()) {
             Calendar now = Calendar.getInstance();
             String fileName = String.format("%1$tY%1$tm%1$te%1$tI%1$tM%1$tS_other_data_sources.csv", now);
-            CSVFileChooser.setCurrentDirectory(new File(Case.getCurrentOpenCase().getExportDirectory()));
+            CSVFileChooser.setCurrentDirectory(new File(Case.getCurrentCaseThrows().getExportDirectory()));
             CSVFileChooser.setSelectedFile(new File(fileName));
             CSVFileChooser.setFileFilter(new FileNameExtensionFilter("csv file", "csv"));
 
@@ -434,7 +434,7 @@ private Collection<CorrelationAttribute> getCorrelationAttributesFromNode(Node n
     private Collection<CorrelationAttributeInstance> getCorrelatedInstances(CorrelationAttribute corAttr, String dataSourceName, String deviceId) {
         // @@@ Check exception
         try {
-            String caseUUID = Case.getCurrentOpenCase().getName();
+            String caseUUID = Case.getCurrentCaseThrows().getName();
             EamDb dbManager = EamDb.getInstance();
             Collection<CorrelationAttributeInstance> artifactInstances = dbManager.getArtifactInstancesByTypeValue(corAttr.getCorrelationType(), corAttr.getCorrelationValue()).stream()
                     .filter(artifactInstance -> !artifactInstance.getCorrelationCase().getCaseUUID().equals(caseUUID)
@@ -491,7 +491,7 @@ private void populateTable(Node node) {
             if (af != null) {
                 Content dataSource = af.getDataSource();
                 dataSourceName = dataSource.getName();
-                deviceId = Case.getCurrentOpenCase().getSleuthkitCase().getDataSource(dataSource.getId()).getDeviceId();
+                deviceId = Case.getCurrentCaseThrows().getSleuthkitCase().getDataSource(dataSource.getId()).getDeviceId();
             }
         } catch (TskException | NoCurrentCaseException ex) {
             // do nothing. 
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/CorrelationDataSource.java b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/CorrelationDataSource.java
index 597826d11e57ea32027a5ef1812fcc55c37a6e04..864bf509232047f4a3916ede199de6ece53d3c53 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/CorrelationDataSource.java
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/CorrelationDataSource.java
@@ -74,7 +74,7 @@ public CorrelationDataSource(int caseId, String deviceId, String name) {
     public static CorrelationDataSource fromTSKDataSource(CorrelationCase correlationCase, Content dataSource) throws EamDbException {
         Case curCase;
         try {
-            curCase = Case.getCurrentOpenCase();
+            curCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             throw new EamDbException("Autopsy case is closed");
         }
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/EamArtifactUtil.java b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/EamArtifactUtil.java
index 4d6c0675f7d29f0d4d14884bd336c6a91165c135..69cad2abef38785c7dbbe3b6a80bee550898f013 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/EamArtifactUtil.java
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/datamodel/EamArtifactUtil.java
@@ -90,7 +90,7 @@ public static List<CorrelationAttribute> getCorrelationAttributeFromBlackboardAr
         // if they asked for it, add the instance details associated with this occurance.
         if (!eamArtifacts.isEmpty() && addInstanceDetails) {
             try {
-                Case currentCase = Case.getCurrentOpenCase();
+                Case currentCase = Case.getCurrentCaseThrows();
                 AbstractFile bbSourceFile = currentCase.getSleuthkitCase().getAbstractFileById(bbArtifact.getObjectID());
                 if (null == bbSourceFile) {
                     //@@@ Log this
@@ -98,9 +98,9 @@ public static List<CorrelationAttribute> getCorrelationAttributeFromBlackboardAr
                 }
 
                 // make an instance for the BB source file 
-                CorrelationCase correlationCase = EamDb.getInstance().getCase(Case.getCurrentOpenCase());
+                CorrelationCase correlationCase = EamDb.getInstance().getCase(Case.getCurrentCaseThrows());
                 if (null == correlationCase) {
-                    correlationCase = EamDb.getInstance().newCase(Case.getCurrentOpenCase());
+                    correlationCase = EamDb.getInstance().newCase(Case.getCurrentCaseThrows());
                 }
                 CorrelationAttributeInstance eamInstance = new CorrelationAttributeInstance(
                         correlationCase,
@@ -146,7 +146,7 @@ private static CorrelationAttribute getCorrelationAttributeFromBlackboardArtifac
                 // Get the associated artifact
                 BlackboardAttribute attribute = bbArtifact.getAttribute(new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT));
                 if (attribute != null) {
-                    BlackboardArtifact associatedArtifact = Case.getCurrentOpenCase().getSleuthkitCase().getBlackboardArtifact(attribute.getValueLong());
+                    BlackboardArtifact associatedArtifact = Case.getCurrentCaseThrows().getSleuthkitCase().getBlackboardArtifact(attribute.getValueLong());
                     return EamArtifactUtil.getCorrelationAttributeFromBlackboardArtifact(correlationType, associatedArtifact);
                 }
 
@@ -254,9 +254,9 @@ public static CorrelationAttribute getCorrelationAttributeFromContent(Content co
         try {
             CorrelationAttribute.Type filesType = EamDb.getInstance().getCorrelationTypeById(CorrelationAttribute.FILES_TYPE_ID);
             eamArtifact = new CorrelationAttribute(filesType, af.getMd5Hash());
-            CorrelationCase correlationCase = EamDb.getInstance().getCase(Case.getCurrentOpenCase());
+            CorrelationCase correlationCase = EamDb.getInstance().getCase(Case.getCurrentCaseThrows());
             if (null == correlationCase) {
-                correlationCase = EamDb.getInstance().newCase(Case.getCurrentOpenCase());
+                correlationCase = EamDb.getInstance().newCase(Case.getCurrentCaseThrows());
             }
             CorrelationAttributeInstance cei = new CorrelationAttributeInstance(
                     correlationCase,
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/eventlisteners/CaseEventListener.java b/Core/src/org/sleuthkit/autopsy/centralrepository/eventlisteners/CaseEventListener.java
index 94457004cb04a60e89fdf546fbec7bccd2aaa203..570f5bca069cbee71a5649f2ddb445b304278edb 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/eventlisteners/CaseEventListener.java
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/eventlisteners/CaseEventListener.java
@@ -163,8 +163,8 @@ public void run() {
 
                 try {
                     // Get the remaining tags on the content object
-                    Content content = Case.getCurrentOpenCase().getSleuthkitCase().getContentById(contentID);
-                    TagsManager tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+                    Content content = Case.getCurrentCaseThrows().getSleuthkitCase().getContentById(contentID);
+                    TagsManager tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
                     List<ContentTag> tags = tagsManager.getContentTagsByContent(content);
 
                     if (tags.stream()
@@ -244,7 +244,7 @@ public void run() {
             } else { //BLACKBOARD_ARTIFACT_TAG_DELETED
                 Case openCase;
                 try {
-                    openCase = Case.getCurrentOpenCase();
+                    openCase = Case.getCurrentCaseThrows();
                 } catch (NoCurrentCaseException ex) {
                     LOGGER.log(Level.SEVERE, "Exception while getting open case.", ex);
                     return;
@@ -327,10 +327,10 @@ public void run() {
              * that are tagged with the given tag name.
              */
             try {
-                TagName tagName = Case.getCurrentOpenCase().getServices().getTagsManager().getDisplayNamesToTagNamesMap().get(modifiedTagName);
+                TagName tagName = Case.getCurrentCaseThrows().getServices().getTagsManager().getDisplayNamesToTagNamesMap().get(modifiedTagName);
                 //First update the artifacts
                 //Get all BlackboardArtifactTags with this tag name
-                List<BlackboardArtifactTag> artifactTags = Case.getCurrentOpenCase().getSleuthkitCase().getBlackboardArtifactTagsByTagName(tagName);
+                List<BlackboardArtifactTag> artifactTags = Case.getCurrentCaseThrows().getSleuthkitCase().getBlackboardArtifactTagsByTagName(tagName);
                 for (BlackboardArtifactTag bbTag : artifactTags) {
                     //start with assumption that none of the other tags applied to this Correlation Attribute will prevent it's status from being changed
                     boolean hasTagWithConflictingKnownStatus = false;
@@ -346,7 +346,7 @@ public void run() {
                         }
                         //Get the BlackboardArtifact which this BlackboardArtifactTag has been applied to.
                         BlackboardArtifact bbArtifact = bbTag.getArtifact();
-                        TagsManager tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+                        TagsManager tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
                         List<BlackboardArtifactTag> tags = tagsManager.getBlackboardArtifactTagsByArtifact(bbArtifact);
                         //get all tags which are on this blackboard artifact
                         for (BlackboardArtifactTag t : tags) {
@@ -374,7 +374,7 @@ public void run() {
                 }
                 // Next update the files
 
-                List<ContentTag> fileTags = Case.getCurrentOpenCase().getSleuthkitCase().getContentTagsByTagName(tagName);
+                List<ContentTag> fileTags = Case.getCurrentCaseThrows().getSleuthkitCase().getContentTagsByTagName(tagName);
                 //Get all ContentTags with this tag name
                 for (ContentTag contentTag : fileTags) {
                     //start with assumption that none of the other tags applied to this ContentTag will prevent it's status from being changed
@@ -384,7 +384,7 @@ public void run() {
                     // the status of the file in the central repository
                     if (tagName.getKnownStatus() == TskData.FileKnown.UNKNOWN) {
                         Content content = contentTag.getContent();
-                        TagsManager tagsManager = Case.getCurrentOpenCase().getServices().getTagsManager();
+                        TagsManager tagsManager = Case.getCurrentCaseThrows().getServices().getTagsManager();
                         List<ContentTag> tags = tagsManager.getContentTagsByContent(content);
                         //get all tags which are on this file
                         for (ContentTag t : tags) {
@@ -436,7 +436,7 @@ public void run() {
             }
             Case openCase;
             try {
-                openCase = Case.getCurrentOpenCase();
+                openCase = Case.getCurrentCaseThrows();
             } catch (NoCurrentCaseException ex) {
                 LOGGER.log(Level.SEVERE, "Exception while getting open case.", ex);
                 return;
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/eventlisteners/IngestEventsListener.java b/Core/src/org/sleuthkit/autopsy/centralrepository/eventlisteners/IngestEventsListener.java
index 8aee7ef31913bac3407b6357c455b9dc3ca91c73..46ebe75541e5b98ef7fd2a72ea8b113cc00a87d0 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/eventlisteners/IngestEventsListener.java
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/eventlisteners/IngestEventsListener.java
@@ -163,7 +163,7 @@ static private void postCorrelatedBadArtifactToBlackboard(BlackboardArtifact bbA
             tifArtifact.addAttributes(attributes);
             try {
                 // index the artifact for keyword search
-                Blackboard blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+                Blackboard blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
                 blackboard.indexArtifact(tifArtifact);
             } catch (Blackboard.BlackboardException | NoCurrentCaseException ex) {
                 LOGGER.log(Level.SEVERE, "Unable to index blackboard artifact " + tifArtifact.getArtifactID(), ex); //NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/ingestmodule/IngestModule.java b/Core/src/org/sleuthkit/autopsy/centralrepository/ingestmodule/IngestModule.java
index 64899be83dd066f059de1cdc84319270fadbf3ec..96486a8f5b1a93ca18d1b481cdf91477a2c21248 100644
--- a/Core/src/org/sleuthkit/autopsy/centralrepository/ingestmodule/IngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/centralrepository/ingestmodule/IngestModule.java
@@ -94,7 +94,7 @@ public ProcessResult process(AbstractFile abstractFile) {
         }
 
         try {
-            blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex);
             return ProcessResult.ERROR;
@@ -233,7 +233,7 @@ public void startUp(IngestJobContext context) throws IngestModuleException {
         }
         Case autopsyCase;
         try {
-            autopsyCase = Case.getCurrentOpenCase();
+            autopsyCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex);
             throw new IngestModuleException("Exception while getting open case.", ex);
diff --git a/Core/src/org/sleuthkit/autopsy/communications/AccountDeviceInstanceKey.java b/Core/src/org/sleuthkit/autopsy/communications/AccountDeviceInstanceKey.java
index 089d0a2fa19e808de6f9a2019e9dcffbf522d912..2262e6af61d72ac79a639b496f2aa862e0e05563 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/AccountDeviceInstanceKey.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/AccountDeviceInstanceKey.java
@@ -104,7 +104,7 @@ public boolean equals(Object obj) {
 
     private static String getDataSourceName(AccountDeviceInstance accountDeviceInstance) {
         try {
-            SleuthkitCase db = Case.getCurrentOpenCase().getSleuthkitCase();
+            SleuthkitCase db = Case.getCurrentCaseThrows().getSleuthkitCase();
             for (DataSource dataSource : db.getDataSources()) {
                 if (dataSource.getDeviceId().equals(accountDeviceInstance.getDeviceId())) {
                     return db.getContentById(dataSource.getId()).getName();
diff --git a/Core/src/org/sleuthkit/autopsy/communications/AccountsBrowser.java b/Core/src/org/sleuthkit/autopsy/communications/AccountsBrowser.java
index 2fbf37d7688e5379a4a60f7f72395f9b622b331d..a0417855fe4cbacdb6a00e46a1054d07c376528b 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/AccountsBrowser.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/AccountsBrowser.java
@@ -121,7 +121,7 @@ private void setColumnWidths() {
     @Subscribe
     public void handleFilterEvent(CVTEvents.FilterChangeEvent filterChangeEvent) {
         try {
-            final CommunicationsManager commsManager = Case.getCurrentOpenCase().getSleuthkitCase().getCommunicationsManager();
+            final CommunicationsManager commsManager = Case.getCurrentCaseThrows().getSleuthkitCase().getCommunicationsManager();
             accountsTableEM.setRootContext(new AbstractNode(Children.create(new AccountDeviceInstanceNodeFactory(commsManager, filterChangeEvent.getNewFilter()), true)));
         } catch (TskCoreException ex) {
             logger.log(Level.SEVERE, "There was an error getting the CommunicationsManager for the current case.", ex);
diff --git a/Core/src/org/sleuthkit/autopsy/communications/FiltersPanel.java b/Core/src/org/sleuthkit/autopsy/communications/FiltersPanel.java
index 2c941b771f3c625c9a9730f2463a173466ca5a9b..6cd46fbab478f391b6d1d424d484274a8337f519 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/FiltersPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/FiltersPanel.java
@@ -240,7 +240,7 @@ private void updateAccountTypeFilter() {
      */
     private void updateDeviceFilter(boolean initialState) {
         try {
-            final SleuthkitCase sleuthkitCase = Case.getCurrentOpenCase().getSleuthkitCase();
+            final SleuthkitCase sleuthkitCase = Case.getCurrentCaseThrows().getSleuthkitCase();
 
             for (DataSource dataSource : sleuthkitCase.getDataSources()) {
                 String dsName = sleuthkitCase.getContentById(dataSource.getId()).getName();
diff --git a/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java b/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java
index efc5b2b911a5a279a52763cd3a7ce7495a1aa1bf..8d0743b272600f9104eba81d548e5bed77b9abcd 100644
--- a/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/communications/VisualizationPanel.java
@@ -295,7 +295,7 @@ public void addNotify() {
         windowAncestor = (Frame) SwingUtilities.getAncestorOfClass(Frame.class, this);
 
         try {
-            commsManager = Case.getCurrentOpenCase().getSleuthkitCase().getCommunicationsManager();
+            commsManager = Case.getCurrentCaseThrows().getSleuthkitCase().getCommunicationsManager();
         } catch (TskCoreException ex) {
             logger.log(Level.SEVERE, "Error getting CommunicationsManager for the current case.", ex);
         } catch (NoCurrentCaseException ex) {
diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/PListViewer.java b/Core/src/org/sleuthkit/autopsy/contentviewers/PListViewer.java
index d12ecc99f86f86d6b994c57765b54ab24687df00..64781143142e74a9f5b4cd225248ec2c7ecfc969 100644
--- a/Core/src/org/sleuthkit/autopsy/contentviewers/PListViewer.java
+++ b/Core/src/org/sleuthkit/autopsy/contentviewers/PListViewer.java
@@ -191,7 +191,7 @@ private void exportButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-
 
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) { 
                 JOptionPane.showMessageDialog(this,
                         "Failed to export plist file.",
diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/SQLiteViewer.java b/Core/src/org/sleuthkit/autopsy/contentviewers/SQLiteViewer.java
index 65c317269d0156c39dfe85848b281fae9b3a8a74..250b74f36aa208c49617e7612db7fc4b8cd50115 100644
--- a/Core/src/org/sleuthkit/autopsy/contentviewers/SQLiteViewer.java
+++ b/Core/src/org/sleuthkit/autopsy/contentviewers/SQLiteViewer.java
@@ -319,7 +319,7 @@ private void processSQLiteFile() {
         // Copy the file to temp folder
         String tmpDBPathName;
         try {
-            tmpDBPathName = Case.getCurrentOpenCase().getTempDirectory() + File.separator + sqliteDbFile.getName();
+            tmpDBPathName = Case.getCurrentCaseThrows().getTempDirectory() + File.separator + sqliteDbFile.getName();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Current case has been closed", ex); //NON-NLS
             MessageNotifyUtil.Message.error(Bundle.SQLiteViewer_errorMessage_noCurrentCase());
@@ -372,7 +372,7 @@ private void processSQLiteFile() {
      * @param metaFileName name of meta file to look for
      */
     private void findAndCopySQLiteMetaFile(AbstractFile sqliteFile, String metaFileName) throws NoCurrentCaseException, TskCoreException, IOException {
-        Case openCase = Case.getCurrentOpenCase();
+        Case openCase = Case.getCurrentCaseThrows();
         SleuthkitCase sleuthkitCase = openCase.getSleuthkitCase();
         Services services = new Services(sleuthkitCase);
         FileManager fileManager = services.getFileManager();
diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentTopComponent.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentTopComponent.java
index e545115b6259994a4995ffafd5220cbfc444e80f..6331d670230fb1319500e3f22e8d1723b6414812 100644
--- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentTopComponent.java
+++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentTopComponent.java
@@ -184,7 +184,7 @@ public boolean canClose() {
          */
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             return true;
         }
diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java
index 641691bae88b240bfd0a608a530a16dbd83fc97b..be5176f78a4aaf088cf70d210c42713883ef91a9 100644
--- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java
@@ -489,7 +489,7 @@ public boolean canClose() {
          */
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             return true;
         }
@@ -535,7 +535,7 @@ private class ExplorerManagerNodeSelectionListener implements PropertyChangeList
         @Override
         public void propertyChange(PropertyChangeEvent evt) {
             try {
-                Case.getCurrentOpenCase();
+                Case.getCurrentCaseThrows();
             } catch (NoCurrentCaseException ex) {
                 return;
             }
diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java
index d95c2220893513337135b23b3e7c75d8619f7dc0..fcd451a4aa52755d2985d6afa386da68f6a1bb86 100644
--- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java
+++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java
@@ -350,7 +350,7 @@ public boolean canClose() {
          */
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             return true;
         }
diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/ImageUtils.java b/Core/src/org/sleuthkit/autopsy/coreutils/ImageUtils.java
index f5c046cb63da05c0e82ea3489e3211406d069440..11e92836ac2d5699822366171f63be997d6bed9d 100644
--- a/Core/src/org/sleuthkit/autopsy/coreutils/ImageUtils.java
+++ b/Core/src/org/sleuthkit/autopsy/coreutils/ImageUtils.java
@@ -384,7 +384,7 @@ public static File getCachedThumbnailFile(Content content, int iconSize) {
     private static File getCachedThumbnailLocation(long fileID) {
         return cacheFileMap.computeIfAbsent(fileID, id -> {
             try {
-                String cacheDirectory = Case.getCurrentOpenCase().getCacheDirectory();
+                String cacheDirectory = Case.getCurrentCaseThrows().getCacheDirectory();
                 return Paths.get(cacheDirectory, "thumbnails", fileID + ".png").toFile(); //NON-NLS
             } catch (NoCurrentCaseException e) {
                 LOGGER.log(Level.WARNING, "Could not get cached thumbnail location.  No case is open."); //NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/coreutils/VideoUtils.java b/Core/src/org/sleuthkit/autopsy/coreutils/VideoUtils.java
index 6621f6cab40b43c6ee02c9d43837cd4dc7945d6f..1ff258dadec060cf375cabfe690d52cfebf1598e 100644
--- a/Core/src/org/sleuthkit/autopsy/coreutils/VideoUtils.java
+++ b/Core/src/org/sleuthkit/autopsy/coreutils/VideoUtils.java
@@ -101,7 +101,7 @@ private VideoUtils() {
      *
      */
     public static File getVideoFileInTempDir(AbstractFile file) throws NoCurrentCaseException {
-        return Paths.get(Case.getCurrentOpenCase().getTempDirectory(), "videos", file.getId() + "." + file.getNameExtension()).toFile(); //NON-NLS
+        return Paths.get(Case.getCurrentCaseThrows().getTempDirectory(), "videos", file.getId() + "." + file.getNameExtension()).toFile(); //NON-NLS
     }
 
     public static boolean isVideoThumbnailSupported(AbstractFile file) {
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java
index d8632e6674cce0a6b4c39cf9fe0e1e8e26462e93..e5bee85c813020faf3803193788a0ad3b5c235d4 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractAbstractFileNode.java
@@ -264,7 +264,7 @@ static public void fillPropertyMap(Map<String, Object> map, AbstractFile content
     protected void addTagProperty(Sheet.Set ss) {
         List<ContentTag> tags = new ArrayList<>();
         try {
-            tags.addAll(Case.getCurrentOpenCase().getServices().getTagsManager().getContentTagsByContent(content));
+            tags.addAll(Case.getCurrentCaseThrows().getServices().getTagsManager().getContentTagsByContent(content));
         } catch (TskCoreException | NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Failed to get tags for content " + content.getName(), ex);
         }
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java
index dca42b22cb64d23426d20910a48bccb598402258..b4c34e5da78fdcc2aa4cf5be8032aa6a588f35e1 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/AbstractContentNode.java
@@ -120,7 +120,7 @@ public static boolean contentHasVisibleContentChildren(Content c){
                         + "     AND type = " + TskData.ObjectType.ABSTRACTFILE.getObjectType() + ") AS OBJECT_IDS"; //NON-NLS;
   
             
-            try (SleuthkitCase.CaseDbQuery dbQuery = Case.getCurrentOpenCase().getSleuthkitCase().executeQuery(query)) {
+            try (SleuthkitCase.CaseDbQuery dbQuery = Case.getCurrentCaseThrows().getSleuthkitCase().executeQuery(query)) {
                 ResultSet resultSet = dbQuery.getResultSet();
                 if(resultSet.next()){
                     return (0 < resultSet.getInt("count"));
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java
index 6f0fd1306c485968e498cae2eeab61c7ad3cf7ae..d86d91b672a1ddc82831269760f82d8a683b0574 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java
@@ -266,7 +266,7 @@ private void setDisplayName() {
             try {
                 for (BlackboardAttribute attribute : artifact.getAttributes()) {
                     if (attribute.getAttributeType().getTypeID() == ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID()) {
-                        BlackboardArtifact associatedArtifact = Case.getCurrentOpenCase().getSleuthkitCase().getBlackboardArtifact(attribute.getValueLong());
+                        BlackboardArtifact associatedArtifact = Case.getCurrentCaseThrows().getSleuthkitCase().getBlackboardArtifact(attribute.getValueLong());
                         if (associatedArtifact != null) {
                             if (artifact.getArtifactTypeID() == ARTIFACT_TYPE.TSK_INTERESTING_ARTIFACT_HIT.getTypeID()) {
                                 artifact.getDisplayName();
@@ -332,7 +332,7 @@ protected Sheet createSheet() {
             try {
                 BlackboardAttribute attribute = artifact.getAttribute(new BlackboardAttribute.Type(ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT));
                 if (attribute != null) {
-                    BlackboardArtifact associatedArtifact = Case.getCurrentOpenCase().getSleuthkitCase().getBlackboardArtifact(attribute.getValueLong());
+                    BlackboardArtifact associatedArtifact = Case.getCurrentCaseThrows().getSleuthkitCase().getBlackboardArtifact(attribute.getValueLong());
                     ss.put(new NodeProperty<>(NbBundle.getMessage(BlackboardArtifactNode.class, "BlackboardArtifactNode.createSheet.artifactType.name"),
                             NbBundle.getMessage(BlackboardArtifactNode.class, "BlackboardArtifactNode.createSheet.artifactType.displayName"),
                             NO_DESCR,
@@ -469,8 +469,8 @@ protected void addTagProperty(Sheet.Set ss) throws MissingResourceException {
         // add properties for tags
         List<Tag> tags = new ArrayList<>();
         try {
-            tags.addAll(Case.getCurrentOpenCase().getServices().getTagsManager().getBlackboardArtifactTagsByArtifact(artifact));
-            tags.addAll(Case.getCurrentOpenCase().getServices().getTagsManager().getContentTagsByContent(associated));
+            tags.addAll(Case.getCurrentCaseThrows().getServices().getTagsManager().getBlackboardArtifactTagsByArtifact(artifact));
+            tags.addAll(Case.getCurrentCaseThrows().getServices().getTagsManager().getContentTagsByContent(associated));
         } catch (TskCoreException | NoCurrentCaseException ex) {
             LOGGER.log(Level.SEVERE, "Failed to get tags for artifact " + artifact.getDisplayName(), ex);
         }
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java
index 698834058a36319080effa67d19253a4647cb869..a0c3597b4d94343d2f3d6365bf3208ec4164c46b 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java
@@ -103,7 +103,7 @@ protected void removeNotify() {
 
         private void reloadKeys() {
             try {
-                currentKeys = Case.getCurrentOpenCase().getDataSources();
+                currentKeys = Case.getCurrentCaseThrows().getDataSources();
                 setKeys(currentKeys);
             } catch (TskCoreException | NoCurrentCaseException ex) {
                 logger.log(Level.SEVERE, "Error getting data sources: {0}", ex.getMessage()); // NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java
index 912c00bb6f60ffa74f21cd9df3eadc043cfde5ca..4934d01ec73f5679f86ef0751045da5a8045ad46 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/DeletedContent.java
@@ -207,7 +207,7 @@ private void removeListeners() {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         // new file was added
                         // @@@ COULD CHECK If the new file is deleted before notifying...
                         update();
@@ -226,7 +226,7 @@ private void removeListeners() {
                      * received for a case that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         update();
                     } catch (NoCurrentCaseException notUsed) {
                         /**
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java b/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java
index f617aa53b67b6c25ffb06acb69da5ed72ccd5295..8a2abb019be65dc4f03621ef8a936169b8963f1a 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/EmailExtracted.java
@@ -241,7 +241,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         /**
                          * Even with the check above, it is still possible that
                          * the case will be closed in a different thread before
@@ -266,7 +266,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         emailResults.update();
                     } catch (NoCurrentCaseException notUsed) {
                         /**
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java
index a52a8bb7e47e3f689c1b1479d5d59e623c726559..68f1daf5950355bac88bdf4bb3308ffe8618affe 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/ExtractedContent.java
@@ -211,7 +211,7 @@ public TypeFactory() {
                  * may be received for a case that is already closed.
                  */
                 try {
-                    Case.getCurrentOpenCase();
+                    Case.getCurrentCaseThrows();
                     /**
                      * Due to some unresolved issues with how cases are closed,
                      * it is possible for the event to have a null oldValue if
@@ -234,7 +234,7 @@ public TypeFactory() {
                  * may be received for a case that is already closed.
                  */
                 try {
-                    Case.getCurrentOpenCase();
+                    Case.getCurrentCaseThrows();
                     refresh(true);
                 } catch (NoCurrentCaseException notUsed) {
                     /**
@@ -402,7 +402,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         /**
                          * Even with the check above, it is still possible that
                          * the case will be closed in a different thread before
@@ -427,7 +427,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         refresh(true);
                     } catch (NoCurrentCaseException notUsed) {
                         /**
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java
index cfb9ddab953fcdfb79399998d45bb92299d5c6ca..b807c6575a2d7cc634e489512bf58394b553acff 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileSize.java
@@ -202,7 +202,7 @@ private void removeListeners() {
                     try {
                         // new file was added
                         // @@@ could check the size here and only fire off updates if we know the file meets the min size criteria
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         update();
                     } catch (NoCurrentCaseException notUsed) {
                         /**
@@ -219,7 +219,7 @@ private void removeListeners() {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         update();
                     } catch (NoCurrentCaseException notUsed) {
                         /**
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesByExtension.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesByExtension.java
index 9df3af7a09d0dd34457423bbe56c492b3c640259..3dd3442bbd2b7c0f9a9b602807d0dad92d8e4391 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesByExtension.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesByExtension.java
@@ -94,7 +94,7 @@ private FileTypesByExtObservable() {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         typesRoot.updateShowCounts();
                         update();
                     } catch (NoCurrentCaseException notUsed) {
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesByMimeType.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesByMimeType.java
index 3062a1a1b1de7d8ec6b8704539df56423df60010..9ae6391ff7b68ba2e19d57a86430ee323ea00f7e 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesByMimeType.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileTypesByMimeType.java
@@ -164,7 +164,7 @@ private void populateHashMap() {
                  * already closed.
                  */
                 try {
-                    Case.getCurrentOpenCase();
+                    Case.getCurrentCaseThrows();
                     typesRoot.updateShowCounts();
                     populateHashMap();
                 } catch (NoCurrentCaseException notUsed) {
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java
index 2ae84768bd5b3dcc9e68de2d8eddd2efcd0ca548..a11ec9b0c432108f0bb82bac0c107aafeb0c7123 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/HashsetHits.java
@@ -209,7 +209,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         /**
                          * Due to some unresolved issues with how cases are
                          * closed, it is possible for the event to have a null
@@ -233,7 +233,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         hashsetResults.update();
                     } catch (NoCurrentCaseException notUsed) {
                         /**
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java
index e7c9f9c97e62fb3cbf741f7f2a7b45e842618988..b2e0aa9ca6278f146a01c3cb4b6dbec57184e881 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/ImageNode.java
@@ -171,7 +171,7 @@ protected Sheet createSheet() {
                 Bundle.ImageNode_createSheet_timezone_desc(),
                 this.content.getTimeZone()));
 
-        try (CaseDbQuery query = Case.getCurrentOpenCase().getSleuthkitCase().executeQuery("SELECT device_id FROM data_source_info WHERE obj_id = " + this.content.getId());) {
+        try (CaseDbQuery query = Case.getCurrentCaseThrows().getSleuthkitCase().executeQuery("SELECT device_id FROM data_source_info WHERE obj_id = " + this.content.getId());) {
             ResultSet deviceIdSet = query.getResultSet();
             if (deviceIdSet.next()) {
                 ss.put(new NodeProperty<>(Bundle.ImageNode_createSheet_deviceId_name(),
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java
index e857ff6760977c353fcc474d34fa574efc0a5c1a..2cc18aef1fab03c52638e2134342758ad644260e 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/InterestingHits.java
@@ -200,7 +200,7 @@ private class SetNameFactory extends ChildFactory.Detachable<String> implements
                  * that is already closed.
                  */
                 try {
-                    Case.getCurrentOpenCase();
+                    Case.getCurrentCaseThrows();
                     /**
                      * Even with the check above, it is still possible that
                      * the case will be closed in a different thread before
@@ -226,7 +226,7 @@ private class SetNameFactory extends ChildFactory.Detachable<String> implements
                  * that is already closed.
                  */
                 try {
-                    Case.getCurrentOpenCase();
+                    Case.getCurrentCaseThrows();
                     interestingResults.update();
                 } catch (NoCurrentCaseException notUsed) {
                     /**
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java b/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java
index 9a31841570a3083789e1277b4b36a26519e0172c..41a8862bc4366cbc95c4f3a611c2ac449d352603 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/KeywordHits.java
@@ -412,7 +412,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         /**
                          * Even with the check above, it is still possible that
                          * the case will be closed in a different thread before
@@ -435,7 +435,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         keywordResults.update();
                     } catch (NoCurrentCaseException notUsed) {
                         // Case is closed, do nothing.
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java b/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java
index f635b0da08c447409f6abc7132b89becc0952738..b2f7667150ee7307350ba2bb3ddbfd3148f337f6 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/Reports.java
@@ -115,7 +115,7 @@ private static final class ReportNodeFactory extends ChildFactory<Report> {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         ReportNodeFactory.this.refresh(true);
                     } catch (NoCurrentCaseException notUsed) {
                         /**
@@ -129,7 +129,7 @@ private static final class ReportNodeFactory extends ChildFactory<Report> {
         @Override
         protected boolean createKeys(List<Report> keys) {
             try {
-                keys.addAll(Case.getCurrentOpenCase().getAllReports());
+                keys.addAll(Case.getCurrentCaseThrows().getAllReports());
             } catch (TskCoreException | NoCurrentCaseException ex) {
                 Logger.getLogger(Reports.ReportNodeFactory.class.getName()).log(Level.SEVERE, "Failed to get reports", ex); //NON-NLS
             }
@@ -266,7 +266,7 @@ public void actionPerformed(ActionEvent e) {
                         NbBundle.getMessage(Reports.class, "DeleteReportAction.actionPerformed.showConfirmDialog.title"),
                         JOptionPane.YES_NO_OPTION)) {
                     try {
-                        Case.getCurrentOpenCase().deleteReports(selectedReportsCollection);
+                        Case.getCurrentCaseThrows().deleteReports(selectedReportsCollection);
                     } catch (TskCoreException | NoCurrentCaseException ex) {
                         Logger.getLogger(DeleteReportAction.class.getName()).log(Level.SEVERE, "Error deleting reports", ex); // NON-NLS
                         MessageNotifyUtil.Message.error(Bundle.DeleteReportAction_showConfirmDialog_errorMsg());
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java b/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java
index 7773672c759d89d0d397d664e56bf24ddcf8664d..832741ddc978235ed093e5575f5e325d771e3d7a 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/Tags.java
@@ -142,7 +142,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         refresh(true);
                         tagResults.update();
                     } catch (NoCurrentCaseException notUsed) {
@@ -159,7 +159,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         refresh(true);
                         tagResults.update();
                     } catch (NoCurrentCaseException notUsed) {
@@ -196,7 +196,7 @@ protected void removeNotify() {
         @Override
         protected boolean createKeys(List<TagName> keys) {
             try {
-                List<TagName> tagNamesInUse = Case.getCurrentOpenCase().getServices().getTagsManager().getTagNamesInUse();
+                List<TagName> tagNamesInUse = Case.getCurrentCaseThrows().getServices().getTagsManager().getTagNamesInUse();
                 Collections.sort(tagNamesInUse);
                 keys.addAll(tagNamesInUse);
             } catch (TskCoreException | NoCurrentCaseException ex) {
@@ -243,7 +243,7 @@ public TagNameNode(TagName tagName) {
         private void updateDisplayName() {
             long tagsCount = 0;
             try {
-                TagsManager tm = Case.getCurrentOpenCase().getServices().getTagsManager();
+                TagsManager tm = Case.getCurrentCaseThrows().getServices().getTagsManager();
                 tagsCount = tm.getContentTagsCountByTagName(tagName);
                 tagsCount += tm.getBlackboardArtifactTagsCountByTagName(tagName);
             } catch (TskCoreException | NoCurrentCaseException ex) {
@@ -348,7 +348,7 @@ public ContentTagTypeNode(TagName tagName) {
         private void updateDisplayName() {
             long tagsCount = 0;
             try {
-                tagsCount = Case.getCurrentOpenCase().getServices().getTagsManager().getContentTagsCountByTagName(tagName);
+                tagsCount = Case.getCurrentCaseThrows().getServices().getTagsManager().getContentTagsCountByTagName(tagName);
             } catch (TskCoreException | NoCurrentCaseException ex) {
                 Logger.getLogger(ContentTagTypeNode.class.getName()).log(Level.SEVERE, "Failed to get content tags count for " + tagName.getDisplayName() + " tag name", ex); //NON-NLS
             }
@@ -403,7 +403,7 @@ private class ContentTagNodeFactory extends ChildFactory<ContentTag> implements
         protected boolean createKeys(List<ContentTag> keys) {
             // Use the content tags bearing the specified tag name as the keys.
             try {
-                keys.addAll(Case.getCurrentOpenCase().getServices().getTagsManager().getContentTagsByTagName(tagName));
+                keys.addAll(Case.getCurrentCaseThrows().getServices().getTagsManager().getContentTagsByTagName(tagName));
             } catch (TskCoreException | NoCurrentCaseException ex) {
                 Logger.getLogger(ContentTagNodeFactory.class.getName()).log(Level.SEVERE, "Failed to get tag names", ex); //NON-NLS
             }
@@ -447,7 +447,7 @@ public BlackboardArtifactTagTypeNode(TagName tagName) {
         private void updateDisplayName() {
             long tagsCount = 0;
             try {
-                tagsCount = Case.getCurrentOpenCase().getServices().getTagsManager().getBlackboardArtifactTagsCountByTagName(tagName);
+                tagsCount = Case.getCurrentCaseThrows().getServices().getTagsManager().getBlackboardArtifactTagsCountByTagName(tagName);
             } catch (TskCoreException | NoCurrentCaseException ex) {
                 Logger.getLogger(BlackboardArtifactTagTypeNode.class.getName()).log(Level.SEVERE, "Failed to get blackboard artifact tags count for " + tagName.getDisplayName() + " tag name", ex); //NON-NLS
             }
@@ -502,7 +502,7 @@ private class BlackboardArtifactTagNodeFactory extends ChildFactory<BlackboardAr
         protected boolean createKeys(List<BlackboardArtifactTag> keys) {
             try {
                 // Use the blackboard artifact tags bearing the specified tag name as the keys.
-                keys.addAll(Case.getCurrentOpenCase().getServices().getTagsManager().getBlackboardArtifactTagsByTagName(tagName));
+                keys.addAll(Case.getCurrentCaseThrows().getServices().getTagsManager().getBlackboardArtifactTagsByTagName(tagName));
             } catch (TskCoreException | NoCurrentCaseException ex) {
                 Logger.getLogger(BlackboardArtifactTagNodeFactory.class.getName()).log(Level.SEVERE, "Failed to get tag names", ex); //NON-NLS
             }
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java
index 9a1ae4297c9660d4fbbe96123f4167aad2d21565..6d5efbd558e9fe983dcea6cfbd67d569f35c42db 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/VirtualDirectoryNode.java
@@ -106,7 +106,7 @@ protected Sheet createSheet() {
                     Bundle.VirtualDirectoryNode_createSheet_size_displayName(),
                     Bundle.VirtualDirectoryNode_createSheet_size_desc(),
                     this.content.getSize()));
-            try (SleuthkitCase.CaseDbQuery query = Case.getCurrentOpenCase().getSleuthkitCase().executeQuery("SELECT time_zone FROM data_source_info WHERE obj_id = " + this.content.getId())) {
+            try (SleuthkitCase.CaseDbQuery query = Case.getCurrentCaseThrows().getSleuthkitCase().executeQuery("SELECT time_zone FROM data_source_info WHERE obj_id = " + this.content.getId())) {
                 ResultSet timeZoneSet = query.getResultSet();
                 if (timeZoneSet.next()) {
                     ss.put(new NodeProperty<>(Bundle.VirtualDirectoryNode_createSheet_timezone_name(),
@@ -117,7 +117,7 @@ protected Sheet createSheet() {
             } catch (SQLException | TskCoreException | NoCurrentCaseException ex) {
                 logger.log(Level.SEVERE, "Failed to get time zone for the following image: " + this.content.getId(), ex);
             }
-            try (SleuthkitCase.CaseDbQuery query = Case.getCurrentOpenCase().getSleuthkitCase().executeQuery("SELECT device_id FROM data_source_info WHERE obj_id = " + this.content.getId());) {
+            try (SleuthkitCase.CaseDbQuery query = Case.getCurrentCaseThrows().getSleuthkitCase().executeQuery("SELECT device_id FROM data_source_info WHERE obj_id = " + this.content.getId());) {
                 ResultSet deviceIdSet = query.getResultSet();
                 if (deviceIdSet.next()) {
                     ss.put(new NodeProperty<>(Bundle.VirtualDirectoryNode_createSheet_deviceId_name(),
diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/accounts/Accounts.java b/Core/src/org/sleuthkit/autopsy/datamodel/accounts/Accounts.java
index 702de27090dc23e7f3153f2a18e4163d4a897af8..7ea17957149b05386ba5f36d8d5659b4fdf5c880 100644
--- a/Core/src/org/sleuthkit/autopsy/datamodel/accounts/Accounts.java
+++ b/Core/src/org/sleuthkit/autopsy/datamodel/accounts/Accounts.java
@@ -238,7 +238,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         /**
                          * Even with the check above, it is still possible that
                          * the case will be closed in a different thread before
@@ -262,7 +262,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         refresh(true);
                     } catch (NoCurrentCaseException notUsed) {
                         // Case is closed, do nothing.
@@ -364,7 +364,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         /**
                          * Even with the check above, it is still possible that
                          * the case will be closed in a different thread before
@@ -388,7 +388,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         refresh(true);
 
                     } catch (NoCurrentCaseException notUsed) {
@@ -513,7 +513,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         /**
                          * Even with the check above, it is still possible that
                          * the case will be closed in a different thread before
@@ -537,7 +537,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         refresh(true);
 
                     } catch (NoCurrentCaseException notUsed) {
@@ -647,7 +647,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         /**
                          * Even with the check above, it is still possible that
                          * the case will be closed in a different thread before
@@ -671,7 +671,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         refresh(true);
 
                     } catch (NoCurrentCaseException notUsed) {
@@ -858,7 +858,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         /**
                          * Even with the check above, it is still possible that
                          * the case will be closed in a different thread before
@@ -882,7 +882,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
 
                         refresh(true);
                     } catch (NoCurrentCaseException notUsed) { //NOPMD empy catch clause
diff --git a/Core/src/org/sleuthkit/autopsy/datasourceprocessors/AddRawImageTask.java b/Core/src/org/sleuthkit/autopsy/datasourceprocessors/AddRawImageTask.java
index f283a26a667edf51e08fb273c874321ba7197e74..f8ff559afd3b870eac9cbdfd8543025b3282b4e2 100644
--- a/Core/src/org/sleuthkit/autopsy/datasourceprocessors/AddRawImageTask.java
+++ b/Core/src/org/sleuthkit/autopsy/datasourceprocessors/AddRawImageTask.java
@@ -127,7 +127,7 @@ public void run() {
     private void addImageToCase(List<Content> dataSources, List<String> errorMessages) {
         SleuthkitCase caseDatabase;
         try {
-            caseDatabase = Case.getCurrentOpenCase().getSleuthkitCase();
+            caseDatabase = Case.getCurrentCaseThrows().getSleuthkitCase();
         } catch (NoCurrentCaseException ex) {
             errorMessages.add(Bundle.AddRawImageTask_noOpenCase_errMsg());
             logger.log(Level.SEVERE, Bundle.AddRawImageTask_noOpenCase_errMsg(), ex);
diff --git a/Core/src/org/sleuthkit/autopsy/datasourceprocessors/RawDSInputPanel.java b/Core/src/org/sleuthkit/autopsy/datasourceprocessors/RawDSInputPanel.java
index 320a6a68801315aa7a58135de2660e355d63b637..baf9b1522347bb39148315d7322cf0666d350cfd 100644
--- a/Core/src/org/sleuthkit/autopsy/datasourceprocessors/RawDSInputPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/datasourceprocessors/RawDSInputPanel.java
@@ -301,7 +301,7 @@ boolean validatePanel() {
         "RawDSInputPanel.noOpenCase.errMsg=Exception while getting open case."})
     private void warnIfPathIsInvalid(String path) {
         try {
-        if (!PathValidator.isValid(path, Case.getCurrentOpenCase().getCaseType())) {
+        if (!PathValidator.isValid(path, Case.getCurrentCaseThrows().getCaseType())) {
             errorLabel.setVisible(true);
             errorLabel.setText(Bundle.RawDSInputPanel_error_text());
         }
diff --git a/Core/src/org/sleuthkit/autopsy/diagnostics/PerformancePanel.java b/Core/src/org/sleuthkit/autopsy/diagnostics/PerformancePanel.java
index 57385244df5e5cf21ec54cb3bf77e97e342527a4..d50f31e383c53aee316ab75c801a118da8e28ba3 100644
--- a/Core/src/org/sleuthkit/autopsy/diagnostics/PerformancePanel.java
+++ b/Core/src/org/sleuthkit/autopsy/diagnostics/PerformancePanel.java
@@ -299,7 +299,7 @@ private void doImgTest() {
 
             Case curCase;
             try {
-                curCase = Case.getCurrentOpenCase();
+                curCase = Case.getCurrentCaseThrows();
             } catch (Exception e) {
                 setImgLabel(NbBundle.getMessage(this.getClass(), "PerformancePanel.label.caseNotOpen.text"));
                 setStatusMsg("");
@@ -380,7 +380,7 @@ private void doFileReadTest() {
 
             Case curCase;
             try {
-                curCase = Case.getCurrentOpenCase();
+                curCase = Case.getCurrentCaseThrows();
             } catch (Exception e) {
                 setFileReadLabel(
                         NbBundle.getMessage(this.getClass(), "PerformancePanel.label.caseNotOpen.text"));
@@ -472,7 +472,7 @@ private void doDbTest() {
 
             Case curCase;
             try {
-                curCase = Case.getCurrentOpenCase();
+                curCase = Case.getCurrentCaseThrows();
             } catch (Exception e) {
                 setDbLabel(NbBundle.getMessage(this.getClass(), "PerformancePanel.label.caseNotOpen.text"));
                 return;
diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java
index c431f03b23d103e1dbe6cc46c1aa5765737724a9..5fc6c814fae49ab9d55af8e8141bae54dc3dac56 100644
--- a/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java
+++ b/Core/src/org/sleuthkit/autopsy/directorytree/DirectoryTreeTopComponent.java
@@ -364,7 +364,7 @@ public void componentOpened() {
         this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
         Case currentCase = null;
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             // No open case.
         }
@@ -526,7 +526,7 @@ public boolean canClose() {
          * sources.
          */
         try {
-            Case openCase = Case.getCurrentOpenCase();
+            Case openCase = Case.getCurrentCaseThrows();
             return openCase.hasData() == false;
         } catch (NoCurrentCaseException ex) {
             return true;
@@ -619,7 +619,7 @@ else if (changed.equals(Case.Events.DATA_SOURCE_ADDED.toString())) {
                  * already closed.
                  */
                 try {
-                    Case currentCase = Case.getCurrentOpenCase();
+                    Case currentCase = Case.getCurrentCaseThrows();
                     // We only need to trigger openCoreWindows() when the
                     // first data source is added.
                     if (currentCase.getDataSources().size() == 1) {
diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerAction.java
index 137fe1224af9168c7b47026a19fd39317be122b2..3451b073a32715142d571d92ca54d4034c2d76e8 100644
--- a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerAction.java
+++ b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerAction.java
@@ -89,7 +89,7 @@ public void actionPerformed(ActionEvent e) {
         // Get the temp folder path of the case
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.WARNING, "Exception while getting open case.", ex); //NON-NLS
             return;
diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ExtractAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ExtractAction.java
index 7392454f35d1d05150a2abd7214725dc187b12ab..2f45e443315b379ed4b8e5d9cba99aa0bbd0b4d7 100644
--- a/Core/src/org/sleuthkit/autopsy/directorytree/ExtractAction.java
+++ b/Core/src/org/sleuthkit/autopsy/directorytree/ExtractAction.java
@@ -101,7 +101,7 @@ public void actionPerformed(ActionEvent e) {
     private void extractFile(ActionEvent e, AbstractFile selectedFile) {
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             JOptionPane.showMessageDialog((Component) e.getSource(), Bundle.ExtractAction_noOpenCase_errMsg());
             logger.log(Level.INFO, "Exception while getting open case.", ex); //NON-NLS
@@ -127,7 +127,7 @@ private void extractFile(ActionEvent e, AbstractFile selectedFile) {
     private void extractFiles(ActionEvent e, Collection<? extends AbstractFile> selectedFiles) {
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             JOptionPane.showMessageDialog((Component) e.getSource(), Bundle.ExtractAction_noOpenCase_errMsg());
             logger.log(Level.INFO, "Exception while getting open case.", ex); //NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ExtractUnallocAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ExtractUnallocAction.java
index b834471d443969b562e449a41237c6f0e785f228..b0729d24c676f303f4f262d3fc781c8ccf7bdb1c 100644
--- a/Core/src/org/sleuthkit/autopsy/directorytree/ExtractUnallocAction.java
+++ b/Core/src/org/sleuthkit/autopsy/directorytree/ExtractUnallocAction.java
@@ -121,7 +121,7 @@ public void actionPerformed(ActionEvent e) {
             }
             Case openCase;
             try {
-                openCase = Case.getCurrentOpenCase();
+                openCase = Case.getCurrentCaseThrows();
             } catch (NoCurrentCaseException ex) {
                 MessageNotifyUtil.Message.info(Bundle.ExtractAction_noOpenCase_errMsg());
                 return;
@@ -611,7 +611,7 @@ private class OutputFileData {
             this.imageId = img.getId();
             this.imageName = img.getName();
             this.fileName = this.imageName + "-Unalloc-" + this.imageId + "-" + 0 + ".dat"; //NON-NLS
-            this.fileInstance = new File(Case.getCurrentOpenCase().getExportDirectory() + File.separator + this.fileName);
+            this.fileInstance = new File(Case.getCurrentCaseThrows().getExportDirectory() + File.separator + this.fileName);
             this.sizeInBytes = calcSizeInBytes();
         }
 
@@ -633,7 +633,7 @@ private class OutputFileData {
                 this.imageId = 0;
             }
             this.fileName = this.imageName + "-Unalloc-" + this.imageId + "-" + volumeId + ".dat"; //NON-NLS
-            this.fileInstance = new File(Case.getCurrentOpenCase().getExportDirectory() + File.separator + this.fileName);
+            this.fileInstance = new File(Case.getCurrentCaseThrows().getExportDirectory() + File.separator + this.fileName);
             this.layoutFiles = getUnallocFiles(volume);
             Collections.sort(layoutFiles, new SortObjId());
             this.sizeInBytes = calcSizeInBytes();
diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ViewSourceArtifactAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ViewSourceArtifactAction.java
index 141d60996906862856549814b39f4be5ea331c01..c98c59901f6965aa92ad0981d1bfe648a9887fc8 100644
--- a/Core/src/org/sleuthkit/autopsy/directorytree/ViewSourceArtifactAction.java
+++ b/Core/src/org/sleuthkit/autopsy/directorytree/ViewSourceArtifactAction.java
@@ -49,7 +49,7 @@ public void actionPerformed(ActionEvent e) {
         try {
             for (BlackboardAttribute attribute : artifact.getAttributes()) {
                 if (attribute.getAttributeType().getTypeID() == BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ASSOCIATED_ARTIFACT.getTypeID()) {
-                    BlackboardArtifact associatedArtifact = Case.getCurrentOpenCase().getSleuthkitCase().getBlackboardArtifact(attribute.getValueLong());
+                    BlackboardArtifact associatedArtifact = Case.getCurrentCaseThrows().getSleuthkitCase().getBlackboardArtifact(attribute.getValueLong());
                     if (associatedArtifact != null) {
                         dirTree.viewArtifact(associatedArtifact);
                         break;
diff --git a/Core/src/org/sleuthkit/autopsy/examples/SampleDataSourceIngestModule.java b/Core/src/org/sleuthkit/autopsy/examples/SampleDataSourceIngestModule.java
index 8d2ba6af794747393322e15d18f2ef1f61399875..9a1bd96cc7e9cb158ef6390582de89b7c6bf8df3 100644
--- a/Core/src/org/sleuthkit/autopsy/examples/SampleDataSourceIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/examples/SampleDataSourceIngestModule.java
@@ -77,7 +77,7 @@ public ProcessResult process(Content dataSource, DataSourceIngestModuleProgress
 
         try {
             // Get count of files with .doc extension.
-            FileManager fileManager = Case.getCurrentOpenCase().getServices().getFileManager();
+            FileManager fileManager = Case.getCurrentCaseThrows().getServices().getFileManager();
             List<AbstractFile> docFiles = fileManager.findFiles(dataSource, "%.doc");
 
             long fileCount = 0;
diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java
index 854375448b8cbdc536610b6245ab7f1b4b6e1e9a..048ccd5f7975f57cea8e69db5cb3042b985ecd8d 100644
--- a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java
+++ b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java
@@ -141,7 +141,7 @@ private static List<String> createTimeZoneList() {
 
         try {
             // get the latest case
-            Case currentCase = Case.getCurrentOpenCase(); // get the most updated case
+            Case currentCase = Case.getCurrentCaseThrows(); // get the most updated case
 
             Set<TimeZone> caseTimeZones = currentCase.getTimeZones();
             Iterator<TimeZone> iterator = caseTimeZones.iterator();
@@ -282,7 +282,7 @@ public void propertyChange(PropertyChangeEvent evt) {
                      * that is already closed.
                      */
                     try {
-                        Case.getCurrentOpenCase();
+                        Case.getCurrentCaseThrows();
                         SwingUtilities.invokeLater(DateSearchFilter.this::updateTimeZoneList);
                     } catch (NoCurrentCaseException notUsed) {
                         /**
diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchPanel.java b/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchPanel.java
index ee30802b5d5862520db07c61b840130558cfc437..169b36d7eaa617be63da0863a74983c114a70065 100644
--- a/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/filesearch/FileSearchPanel.java
@@ -153,7 +153,7 @@ private void search() {
                 String pathText = NbBundle.getMessage(this.getClass(), "FileSearchPanel.search.results.pathText");
 
                 // try to get the number of matches first
-                Case currentCase = Case.getCurrentOpenCase(); // get the most updated case
+                Case currentCase = Case.getCurrentCaseThrows(); // get the most updated case
                 long totalMatches = 0;
                 List<AbstractFile> contentList = null;
                 try {
diff --git a/Core/src/org/sleuthkit/autopsy/imagewriter/ImageWriter.java b/Core/src/org/sleuthkit/autopsy/imagewriter/ImageWriter.java
index e1178d8104ab197ecbcaccc0f897776a6c34dc4e..71404c76e74b680c6948ea39765b53a7b39cb10d 100644
--- a/Core/src/org/sleuthkit/autopsy/imagewriter/ImageWriter.java
+++ b/Core/src/org/sleuthkit/autopsy/imagewriter/ImageWriter.java
@@ -83,7 +83,7 @@ class ImageWriter implements PropertyChangeListener{
         // null before Image Writer finishes. The user can still elect to wait for image writer
         // (in ImageWriterService.closeCaseResources) even though the case is closing. 
         try{
-            caseDb = Case.getCurrentOpenCase().getSleuthkitCase();
+            caseDb = Case.getCurrentCaseThrows().getSleuthkitCase();
         } catch (NoCurrentCaseException ex){
             logger.log(Level.SEVERE, "Unable to load case. Image writer will be cancelled.");
             this.isCancelled = true;
@@ -152,7 +152,7 @@ private void startFinishImage(String dataSourceName){
             
             Image image;
             try{
-                image = Case.getCurrentOpenCase().getSleuthkitCase().getImageById(dataSourceId);
+                image = Case.getCurrentCaseThrows().getSleuthkitCase().getImageById(dataSourceId);
                 imageHandle = image.getImageHandle();
             } catch (NoCurrentCaseException ex){
                 // This exception means that getOpenCase() failed because no case was open.
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/DataSourceIngestJob.java b/Core/src/org/sleuthkit/autopsy/ingest/DataSourceIngestJob.java
index 2d301aed09d69b1e2ea2f002322a5f77cac15c3c..c59b3f20bfc515408b4bf1cefb569475246d1569 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/DataSourceIngestJob.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/DataSourceIngestJob.java
@@ -277,7 +277,7 @@ private void createIngestPipelines() {
             Thread.currentThread().interrupt();
         }
         try {
-            SleuthkitCase skCase = Case.getCurrentOpenCase().getSleuthkitCase();
+            SleuthkitCase skCase = Case.getCurrentCaseThrows().getSleuthkitCase();
             this.addIngestModules(firstStageDataSourceModuleTemplates, IngestModuleType.DATA_SOURCE_LEVEL, skCase);
             this.addIngestModules(fileIngestModuleTemplates, IngestModuleType.FILE_LEVEL, skCase);
             this.addIngestModules(secondStageDataSourceModuleTemplates, IngestModuleType.DATA_SOURCE_LEVEL, skCase);
@@ -415,7 +415,7 @@ List<IngestModuleError> start() {
         List<IngestModuleError> errors = startUpIngestPipelines();
         if (errors.isEmpty()) {
             try {
-                this.ingestJob = Case.getCurrentOpenCase().getSleuthkitCase().addIngestJob(dataSource, NetworkUtils.getLocalHostName(), ingestModules, new Date(this.createTime), new Date(0), IngestJobStatusType.STARTED, "");
+                this.ingestJob = Case.getCurrentCaseThrows().getSleuthkitCase().addIngestJob(dataSource, NetworkUtils.getLocalHostName(), ingestModules, new Date(this.createTime), new Date(0), IngestJobStatusType.STARTED, "");
             } catch (TskCoreException | NoCurrentCaseException ex) {
                 logger.log(Level.SEVERE, "Failed to add ingest job to database.", ex);
             }
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/GetFilesCountVisitor.java b/Core/src/org/sleuthkit/autopsy/ingest/GetFilesCountVisitor.java
index 64c7ae1941750902ff5ef103a4824b90a105c282..8796009f2a8fbe6ebae9f3ce36291e6d1e1ffff8 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/GetFilesCountVisitor.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/GetFilesCountVisitor.java
@@ -47,7 +47,7 @@ public Long visit(FileSystem fs) {
         //case of a real fs, query all files for it
         SleuthkitCase sc;
         try {
-            sc = Case.getCurrentOpenCase().getSleuthkitCase();
+            sc = Case.getCurrentCaseThrows().getSleuthkitCase();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return 0L;
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestJobSettingsPanel.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestJobSettingsPanel.java
index b67e7b3318ed5a8d9c26acb4b5e51177e214150d..405157b751b9935e6173e0a2d9aab9c8f1519ea6 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/IngestJobSettingsPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestJobSettingsPanel.java
@@ -98,7 +98,7 @@ public IngestJobSettingsPanel(IngestJobSettings settings, List<Content> dataSour
         this.settings = settings;
         this.dataSources.addAll(dataSources);
         try {
-            SleuthkitCase skCase = Case.getCurrentOpenCase().getSleuthkitCase();
+            SleuthkitCase skCase = Case.getCurrentCaseThrows().getSleuthkitCase();
             ingestJobs.addAll(skCase.getIngestJobs());
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "No open case", ex);
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java
index 9ed5a6fd27d569a4f9011c6c1d6621f42b851b90..28a7c44474dfae38abf029157e06c5683ca9a23f 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestManager.java
@@ -191,7 +191,7 @@ private void subscribeToServiceMonitorEvents() {
                  * only necessary for multi-user cases.
                  */
                 try {
-                    if (Case.getCurrentOpenCase().getCaseType() != Case.CaseType.MULTI_USER_CASE) {
+                    if (Case.getCurrentCaseThrows().getCaseType() != Case.CaseType.MULTI_USER_CASE) {
                         return;
                     }
                 } catch (NoCurrentCaseException noCaseOpenException) {
@@ -252,7 +252,7 @@ void handleCaseOpened() {
         caseIsOpen = true;
         clearIngestMessageBox();
         try {
-            Case openedCase = Case.getCurrentOpenCase();
+            Case openedCase = Case.getCurrentCaseThrows();
             String channelPrefix = openedCase.getName();
             if (Case.CaseType.MULTI_USER_CASE == openedCase.getCaseType()) {
                 jobEventPublisher.openRemoteEventChannel(String.format(INGEST_JOB_EVENT_CHANNEL_NAME, channelPrefix));
@@ -369,7 +369,7 @@ private IngestJobStartResult startIngestJob(IngestJob job) {
         List<IngestModuleError> errors = null;
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             return new IngestJobStartResult(null, new IngestManagerException("Exception while getting open case.", ex), Collections.<IngestModuleError>emptyList()); //NON-NLS
         }
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java
index 3be012765cc8f0e104e3bb177f31edf9f29396f7..17645ccb6810c5900cba777a84eec1832ac15f98 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestMessageDetailsPanel.java
@@ -248,7 +248,7 @@ void showDetails(int rowNumber) {
                 long objId = artifact.getObjectID();
                 AbstractFile file = null;
                 try {
-                    file = Case.getCurrentOpenCase().getSleuthkitCase().getAbstractFileById(objId);
+                    file = Case.getCurrentCaseThrows().getSleuthkitCase().getAbstractFileById(objId);
                 } catch (TskException | NoCurrentCaseException ex) {
 
                 }
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestMonitor.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestMonitor.java
index 842b7474f7c61e99be9a58b7c0ad22fc5415ff0a..16fa63554d6388b00909c10cfb5b1d025ecb83a1 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/IngestMonitor.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestMonitor.java
@@ -145,7 +145,7 @@ private class MonitorTimerAction implements ActionListener {
          */
         private void findRootDirectoryForCurrentCase() {
             try {
-                Case currentCase = Case.getCurrentOpenCase();
+                Case currentCase = Case.getCurrentCaseThrows();
                 findRootDirectoryForCurrentCase(currentCase);
             } catch (NoCurrentCaseException unused) {
                 /*
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestServices.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestServices.java
index 43c82ac6862081b3912d1ef52f8b04ebb06316b6..01e86823c522194cd338f6d1bc108ccff5979014 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/IngestServices.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestServices.java
@@ -63,7 +63,7 @@ public static synchronized IngestServices getInstance() {
      * @throws NoCurrentCaseException if there is no open case.
      */
     public Case getCase() throws NoCurrentCaseException {
-        return Case.getCurrentOpenCase();
+        return Case.getCurrentCaseThrows();
     }
 
     /**
@@ -74,7 +74,7 @@ public Case getCase() throws NoCurrentCaseException {
      * @throws NoCurrentCaseException if there is no open case.
      */
     public SleuthkitCase getCaseDatabase() throws NoCurrentCaseException {
-        return Case.getCurrentOpenCase().getSleuthkitCase();
+        return Case.getCurrentCaseThrows().getSleuthkitCase();
     }
 
     /**
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/RunIngestAction.java b/Core/src/org/sleuthkit/autopsy/ingest/RunIngestAction.java
index d5e0b3670333b7a69397aa90caa0c2042a399585..d18faeee7bc72a9761e3776b31acb1a373f21281 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/RunIngestAction.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/RunIngestAction.java
@@ -84,7 +84,7 @@ public void actionPerformed(ActionEvent e) {
     @Override
     public boolean isEnabled() {
         try {
-            Case openCase = Case.getCurrentOpenCase();
+            Case openCase = Case.getCurrentCaseThrows();
             return openCase.hasData();
         } catch (NoCurrentCaseException ex) {
             return false;
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/RunIngestSubMenu.java b/Core/src/org/sleuthkit/autopsy/ingest/RunIngestSubMenu.java
index b8d18e42883cdbbb09ac3f9cd2f6c858aecb208d..c03abd577ba53a6f60d379b388c89b5f3f45e29a 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/RunIngestSubMenu.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/RunIngestSubMenu.java
@@ -49,7 +49,7 @@ public JComponent[] getMenuPresenters() {
         List<Content> dataSources = new ArrayList<>();
 
         try {
-            dataSources = Case.getCurrentOpenCase().getDataSources();
+            dataSources = Case.getCurrentCaseThrows().getDataSources();
         } catch (IllegalStateException ex) {
             // No open Cases, create a disabled empty menu
             return getEmpty();
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/events/BlackboardPostEvent.java b/Core/src/org/sleuthkit/autopsy/ingest/events/BlackboardPostEvent.java
index d8055f05a606221120713b52cc0be9e7fe4b0a20..7d57b420ab6e594eb2c86dbd561e87ae23cc6320 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/events/BlackboardPostEvent.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/events/BlackboardPostEvent.java
@@ -94,7 +94,7 @@ public Object getOldValue() {
             SerializableEventData data = (SerializableEventData) super.getOldValue();
             Collection<BlackboardArtifact> artifacts = new ArrayList<>();
             for (Long id : data.artifactIds) {
-                artifacts.add(Case.getCurrentOpenCase().getSleuthkitCase().getBlackboardArtifact(id));
+                artifacts.add(Case.getCurrentCaseThrows().getSleuthkitCase().getBlackboardArtifact(id));
             }
             eventData = new ModuleDataEvent(data.moduleName, data.artifactTypeId, !artifacts.isEmpty() ? artifacts : null);
             return eventData;
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/events/ContentChangedEvent.java b/Core/src/org/sleuthkit/autopsy/ingest/events/ContentChangedEvent.java
index 4d555147a19423d38269bc9f9005fc1820f9b68a..fbb842d9d2ba7dbfccf7afba50a934239d29f815 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/events/ContentChangedEvent.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/events/ContentChangedEvent.java
@@ -86,7 +86,7 @@ public Object getOldValue() {
         }
         try {
             SerializableEventData data = (SerializableEventData) super.getOldValue();
-            Content content = Case.getCurrentOpenCase().getSleuthkitCase().getContentById(data.contentId);
+            Content content = Case.getCurrentCaseThrows().getSleuthkitCase().getContentById(data.contentId);
             eventData = new ModuleContentEvent(data.moduleName, content);
             return eventData;
         } catch (NoCurrentCaseException | TskCoreException ex) {
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/events/DataSourceAnalysisEvent.java b/Core/src/org/sleuthkit/autopsy/ingest/events/DataSourceAnalysisEvent.java
index d3b4c6277d08775fa76edc2792efd5b83ea54892..fb7d2f2f5685bd3d94cba7afab4c54002ddcfd70 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/events/DataSourceAnalysisEvent.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/events/DataSourceAnalysisEvent.java
@@ -97,7 +97,7 @@ public Content getDataSource() {
         }
         try {
             long id = (Long) super.getNewValue();
-            dataSource = Case.getCurrentOpenCase().getSleuthkitCase().getContentById(id);
+            dataSource = Case.getCurrentCaseThrows().getSleuthkitCase().getContentById(id);
             return dataSource;
         } catch (NoCurrentCaseException | TskCoreException ex) {
             logger.log(Level.SEVERE, "Error doing lazy load for remote event", ex); //NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/ingest/events/FileAnalyzedEvent.java b/Core/src/org/sleuthkit/autopsy/ingest/events/FileAnalyzedEvent.java
index 0c8f7f5b7cd2d9297200af4afa17f41295ef027b..42488c69de3210e7cc7c60e5c80c8f854a06a78f 100644
--- a/Core/src/org/sleuthkit/autopsy/ingest/events/FileAnalyzedEvent.java
+++ b/Core/src/org/sleuthkit/autopsy/ingest/events/FileAnalyzedEvent.java
@@ -77,7 +77,7 @@ public Object getNewValue() {
         }
         try {
             long id = (Long) super.getOldValue();
-            file = Case.getCurrentOpenCase().getSleuthkitCase().getAbstractFileById(id);
+            file = Case.getCurrentCaseThrows().getSleuthkitCase().getAbstractFileById(id);
             return file;
         } catch (NoCurrentCaseException | TskCoreException ex) {
             logger.log(Level.SEVERE, "Error doing lazy load for remote event", ex); //NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/menuactions/DataContentDynamicMenu.java b/Core/src/org/sleuthkit/autopsy/menuactions/DataContentDynamicMenu.java
index 8bb509fc276aedefd49b532f8b115066a17a5d0b..b025cebf7947a5629ba7bc624db2b34fd1df8e14 100644
--- a/Core/src/org/sleuthkit/autopsy/menuactions/DataContentDynamicMenu.java
+++ b/Core/src/org/sleuthkit/autopsy/menuactions/DataContentDynamicMenu.java
@@ -52,7 +52,7 @@ public JComponent[] getMenuPresenters() {
         defaultItem.addActionListener(new OpenTopComponentAction(contentWin));
 
         try {
-            Case currentCase = Case.getCurrentOpenCase();
+            Case currentCase = Case.getCurrentCaseThrows();
             defaultItem.setEnabled(currentCase.hasData());
         } catch (NoCurrentCaseException ex) {
             defaultItem.setEnabled(false); // disable the menu when no case is opened
diff --git a/Core/src/org/sleuthkit/autopsy/menuactions/DataExplorerDynamicMenu.java b/Core/src/org/sleuthkit/autopsy/menuactions/DataExplorerDynamicMenu.java
index a196d25d9e679e1fb114fa76f28313b5ae6973a3..8dac009bf07a2c2d48e7f54a245104acfe2b81a3 100644
--- a/Core/src/org/sleuthkit/autopsy/menuactions/DataExplorerDynamicMenu.java
+++ b/Core/src/org/sleuthkit/autopsy/menuactions/DataExplorerDynamicMenu.java
@@ -55,7 +55,7 @@ public JComponent[] getMenuPresenters() {
             item.addActionListener(new OpenTopComponentAction(explorerWin));
 
             try {
-                Case currentCase = Case.getCurrentOpenCase();
+                Case currentCase = Case.getCurrentCaseThrows();
                 item.setEnabled(currentCase.hasData());
             } catch (NoCurrentCaseException ex) {
                 item.setEnabled(false); // disable the menu when no case is opened
diff --git a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/EmbeddedFileExtractorIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/EmbeddedFileExtractorIngestModule.java
index a906cb84a5ee096b89fe2f06fd55cbc6ce4290d1..5e67e9da8beba9dc7e390ec9b8569456d580a1ca 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/EmbeddedFileExtractorIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/EmbeddedFileExtractorIngestModule.java
@@ -67,7 +67,7 @@ public void startUp(IngestJobContext context) throws IngestModuleException {
          * is used to write the extracted (derived) files to local storage.
          */
         try {
-        final Case currentCase = Case.getCurrentOpenCase();
+        final Case currentCase = Case.getCurrentCaseThrows();
         moduleDirRelative = Paths.get(currentCase.getModuleOutputDirectoryRelativePath(), EmbeddedFileExtractorModuleFactory.getModuleName()).toString();
         moduleDirAbsolute = Paths.get(currentCase.getModuleDirectory(), EmbeddedFileExtractorModuleFactory.getModuleName()).toString();
         } catch (NoCurrentCaseException ex) {
diff --git a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/ExtractArchiveWithPasswordAction.java b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/ExtractArchiveWithPasswordAction.java
index 27c927279c91ea6486b5143d1fcf290a17f12bd5..722f2119514703ca12acc55664a75f933c99b47d 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/ExtractArchiveWithPasswordAction.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/ExtractArchiveWithPasswordAction.java
@@ -111,8 +111,8 @@ private ExtractAndIngestWorker(String pass, AbstractFile file) {
         protected Boolean doInBackground() {
             boolean done = false;
             try {
-                String moduleDirRelative = Paths.get(Case.getCurrentOpenCase().getModuleOutputDirectoryRelativePath(), EmbeddedFileExtractorModuleFactory.getModuleName()).toString();
-                String moduleDirAbsolute = Paths.get(Case.getCurrentOpenCase().getModuleDirectory(), EmbeddedFileExtractorModuleFactory.getModuleName()).toString();
+                String moduleDirRelative = Paths.get(Case.getCurrentCaseThrows().getModuleOutputDirectoryRelativePath(), EmbeddedFileExtractorModuleFactory.getModuleName()).toString();
+                String moduleDirAbsolute = Paths.get(Case.getCurrentCaseThrows().getModuleDirectory(), EmbeddedFileExtractorModuleFactory.getModuleName()).toString();
                 /*
                  * Construct a file type detector.
                  */
diff --git a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/MSOfficeEmbeddedContentExtractor.java b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/MSOfficeEmbeddedContentExtractor.java
index 968e47a6b75af14054f902bad0b060a5becfb656..b123197f0aee91d2070b67c164da0aa6b560b232 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/MSOfficeEmbeddedContentExtractor.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/MSOfficeEmbeddedContentExtractor.java
@@ -118,7 +118,7 @@ public String toString() {
 
     MSOfficeEmbeddedContentExtractor(IngestJobContext context, FileTypeDetector fileTypeDetector, String moduleDirRelative, String moduleDirAbsolute) throws NoCurrentCaseException {
 
-        this.fileManager = Case.getCurrentOpenCase().getServices().getFileManager();
+        this.fileManager = Case.getCurrentCaseThrows().getServices().getFileManager();
         this.services = IngestServices.getInstance();
         this.context = context;
         this.fileTypeDetector = fileTypeDetector;
diff --git a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java
index a3799672c6e06f489cbd51b52774c269e42f17c6..d09c170110fae5cefc59d4cb3b312d14c5037f4f 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/embeddedfileextractor/SevenZipExtractor.java
@@ -284,7 +284,7 @@ private List<AbstractFile> getAlreadyExtractedFiles(AbstractFile archiveFile, St
         //check if already has derived files, skip
         //check if local unpacked dir exists 
         if (archiveFile.hasChildren() && new File(moduleDirAbsolute, EmbeddedFileExtractorIngestModule.getUniqueName(archiveFile)).exists()) {
-            return Case.getCurrentOpenCase().getServices().getFileManager().findFilesByParentPath(getRootArchiveId(archiveFile), archiveFilePath);
+            return Case.getCurrentCaseThrows().getServices().getFileManager().findFilesByParentPath(getRootArchiveId(archiveFile), archiveFilePath);
         }
         return new ArrayList<>();
     }
@@ -494,7 +494,7 @@ boolean unpack(AbstractFile archiveFile, String password) {
         final long archiveId = archiveFile.getId();
         SevenZipExtractor.ArchiveDepthCountTree.Archive parentAr = null;
         try {
-            blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.INFO, "Exception while getting open case.", ex); //NON-NLS
             unpackSuccessful = false;
@@ -997,7 +997,7 @@ private void getAllFileObjectsRec(List<AbstractFile> list, UnpackedNode parent)
          * files for the entire hierarchy
          */
         void updateOrAddFileToCaseRec(HashMap<String, ZipFileStatusWrapper> statusMap, String archiveFilePath) throws TskCoreException, NoCurrentCaseException {
-            final FileManager fileManager = Case.getCurrentOpenCase().getServices().getFileManager();
+            final FileManager fileManager = Case.getCurrentCaseThrows().getServices().getFileManager();
             for (UnpackedNode child : rootNode.children) {
                 updateOrAddFileToCaseRec(child, fileManager, statusMap, archiveFilePath);
             }
diff --git a/Core/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionFileIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionFileIngestModule.java
index 14302d201440171f2458d609fb97019562a3bb3f..889a489baf825c06d70b072e1e64935390eb486b 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionFileIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/encryptiondetection/EncryptionDetectionFileIngestModule.java
@@ -88,7 +88,7 @@ final class EncryptionDetectionFileIngestModule extends FileIngestModuleAdapter
     public void startUp(IngestJobContext context) throws IngestModule.IngestModuleException {
         try {
             validateSettings();
-            blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
             fileTypeDetector = new FileTypeDetector();
         } catch (FileTypeDetector.FileTypeDetectorInitException ex) {
             throw new IngestModule.IngestModuleException("Failed to create file type detector", ex);
diff --git a/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java
index 1f689d7d05085c4e738377befe5788759e3203f8..b0894cbdd9be964854539759cd2666e1b9a34d37 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/exif/ExifParserFileIngestModule.java
@@ -104,7 +104,7 @@ public void startUp(IngestJobContext context) throws IngestModuleException {
     @Override
     public ProcessResult process(AbstractFile content) {
         try {
-            blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.INFO, "Exception while getting open case.", ex); //NON-NLS
             return ProcessResult.ERROR;
diff --git a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java
index d6174bfab4c00ff8d21d728a43650909effe3768..6f2281c45dfa579147363f313b38db4214e9e10d 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/fileextmismatch/FileExtMismatchIngestModule.java
@@ -110,7 +110,7 @@ public void startUp(IngestJobContext context) throws IngestModuleException {
     @Messages({"FileExtMismatchIngestModule.indexError.message=Failed to index file extension mismatch artifact for keyword search."})
     public ProcessResult process(AbstractFile abstractFile) {
         try {
-            blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.WARNING, "Exception while getting open case.", ex); //NON-NLS
             return ProcessResult.ERROR;
diff --git a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java
index e984acbde65b48bf1b4a2bb850c470504583390f..e342f06bbfbe65a03c090182a8a19a55e33d7be0 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/filetypeid/FileTypeIdIngestModule.java
@@ -156,7 +156,7 @@ private void createInterestingFileHit(AbstractFile file, FileType fileType) {
             attributes.add(ruleNameAttribute);
             artifact.addAttributes(attributes);
             try {
-                Case.getCurrentOpenCase().getServices().getBlackboard().indexArtifact(artifact);
+                Case.getCurrentCaseThrows().getServices().getBlackboard().indexArtifact(artifact);
             } catch (Blackboard.BlackboardException ex) {
                 logger.log(Level.SEVERE, String.format("Unable to index TSK_INTERESTING_FILE_HIT blackboard artifact %d (file obj_id=%d)", artifact.getArtifactID(), file.getId()), ex); //NON-NLS
             } catch (NoCurrentCaseException ex) {
diff --git a/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashDbIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashDbIngestModule.java
index 6c2bbf26fe1af3f4d2a2a3e12c8c686943d3a02e..f4a08e3f720c4d6d9612f6f7d7a1e9f7de423ec7 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashDbIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashDbIngestModule.java
@@ -90,7 +90,7 @@ private static synchronized IngestJobTotals getTotalsForIngestJobs(long ingestJo
 
     HashDbIngestModule(HashLookupModuleSettings settings) throws NoCurrentCaseException {
         this.settings = settings;
-        skCase = Case.getCurrentOpenCase().getSleuthkitCase();
+        skCase = Case.getCurrentCaseThrows().getSleuthkitCase();
     }
 
     @Override
@@ -147,7 +147,7 @@ private void updateEnabledHashSets(List<HashDb> allHashSets, List<HashDb> enable
     @Override
     public ProcessResult process(AbstractFile file) {
         try {
-            blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return ProcessResult.ERROR;
diff --git a/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashDbSearcher.java b/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashDbSearcher.java
index 6286f52b735f7287e1c8084d1e992d1ecee8014e..91d1d08e369ae7006bf9baed634fcc55a06ec678 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashDbSearcher.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/hashdatabase/HashDbSearcher.java
@@ -46,7 +46,7 @@ class HashDbSearcher {
      * @return a List of all FsContent with the given hash
      */
     static List<AbstractFile> findFilesByMd5(String md5Hash) throws NoCurrentCaseException {
-        final Case currentCase = Case.getCurrentOpenCase();
+        final Case currentCase = Case.getCurrentCaseThrows();
         final SleuthkitCase skCase = currentCase.getSleuthkitCase();
         return skCase.findFilesByMd5(md5Hash);
     }
@@ -123,7 +123,7 @@ static List<AbstractFile> findFiles(FsContent file) {
      * @return true if the search feature is ready.
      */
     static boolean allFilesMd5Hashed() throws NoCurrentCaseException {
-        final Case currentCase = Case.getCurrentOpenCase();
+        final Case currentCase = Case.getCurrentCaseThrows();
         final SleuthkitCase skCase = currentCase.getSleuthkitCase();
         return skCase.allFilesMd5Hashed();
     }
@@ -134,7 +134,7 @@ static boolean allFilesMd5Hashed() throws NoCurrentCaseException {
      * @return the number of files with an MD5
      */
     static int countFilesMd5Hashed() throws NoCurrentCaseException {
-        final Case currentCase = Case.getCurrentOpenCase();
+        final Case currentCase = Case.getCurrentCaseThrows();
         final SleuthkitCase skCase = currentCase.getSleuthkitCase();
         return skCase.countFilesMd5Hashed();
     }
diff --git a/Core/src/org/sleuthkit/autopsy/modules/iOS/CallLogAnalyzer.java b/Core/src/org/sleuthkit/autopsy/modules/iOS/CallLogAnalyzer.java
index 9ca636bdc9b205e27fa285ab631ab66df41b7ee5..ec8c84dc0bd6e5212285d2b71c7a34656a268d82 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/iOS/CallLogAnalyzer.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/iOS/CallLogAnalyzer.java
@@ -65,7 +65,7 @@ final class CallLogAnalyzer {
     public void findCallLogs(IngestJobContext context) {
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return;
@@ -80,7 +80,7 @@ public void findCallLogs(IngestJobContext context) {
             }
             for (AbstractFile file : absFiles) {
                 try {
-                    jFile = new java.io.File(Case.getCurrentOpenCase().getTempDirectory(), file.getName().replaceAll("[<>%|\"/:*\\\\]", ""));
+                    jFile = new java.io.File(Case.getCurrentCaseThrows().getTempDirectory(), file.getName().replaceAll("[<>%|\"/:*\\\\]", ""));
                     dbPath = jFile.toString(); //path of file as string
                     fileId = file.getId();
                     ContentUtils.writeToFile(file, jFile, context::dataSourceIngestIsCancelled);
@@ -117,7 +117,7 @@ private void findCallLogsInDB(String DatabasePath, long fileId) {
 
         Case currentCase;
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return;
diff --git a/Core/src/org/sleuthkit/autopsy/modules/iOS/ContactAnalyzer.java b/Core/src/org/sleuthkit/autopsy/modules/iOS/ContactAnalyzer.java
index 3a33b6d6fe34e94301a73a637f2ccaac0b7d8584..1adb60d4ddc67dfc4bbfaf8eb4baaf2fb0667890 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/iOS/ContactAnalyzer.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/iOS/ContactAnalyzer.java
@@ -71,7 +71,7 @@ final class ContactAnalyzer {
     public void findContacts(IngestJobContext context) {
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return;
@@ -116,7 +116,7 @@ private void findContactsInDB(String DatabasePath, long fileId) {
         }
         Case currentCase;
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return;
diff --git a/Core/src/org/sleuthkit/autopsy/modules/iOS/TextMessageAnalyzer.java b/Core/src/org/sleuthkit/autopsy/modules/iOS/TextMessageAnalyzer.java
index 5256dba188066e8ac474ca9eb35fc9512953392e..c6288f09330edb8549554ab28f1f555ca936c5c7 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/iOS/TextMessageAnalyzer.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/iOS/TextMessageAnalyzer.java
@@ -68,7 +68,7 @@ class TextMessageAnalyzer {
     void findTexts(IngestJobContext context) {
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return;
@@ -82,7 +82,7 @@ void findTexts(IngestJobContext context) {
             }
             for (AbstractFile file : absFiles) {
                 try {
-                    jFile = new java.io.File(Case.getCurrentOpenCase().getTempDirectory(), file.getName().replaceAll("[<>%|\"/:*\\\\]", ""));
+                    jFile = new java.io.File(Case.getCurrentCaseThrows().getTempDirectory(), file.getName().replaceAll("[<>%|\"/:*\\\\]", ""));
                     dbPath = jFile.toString(); //path of file as string
                     fileId = file.getId();
                     ContentUtils.writeToFile(file, jFile, context::dataSourceIngestIsCancelled);
@@ -112,7 +112,7 @@ private void findTextsInDB(String DatabasePath, long fileId) {
         }
         Case currentCase;
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return;
diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesIdentifierIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesIdentifierIngestModule.java
index ed3083fcea70b1a68fb39a2472e2d188b4c01bc1..88eea65ddaa6428df6698875986c5fd77a6675c3 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesIdentifierIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesIdentifierIngestModule.java
@@ -107,7 +107,7 @@ public void startUp(IngestJobContext context) throws IngestModuleException {
     @Messages({"FilesIdentifierIngestModule.indexError.message=Failed to index interesting file hit artifact for keyword search."})
     public ProcessResult process(AbstractFile file) {
         try {
-            blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();        
+            blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();        
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return ProcessResult.ERROR;
diff --git a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java
index 41f33020f6ebdf684d4905cf08070ef4eee779d8..e98e15a331fdbad6b190074bb56cc1992e94a9c7 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverFileIngestModule.java
@@ -427,7 +427,7 @@ Path getTempDirPath() {
     synchronized Path createModuleOutputDirectoryForCase() throws IngestModule.IngestModuleException {
         Path path;
         try {
-            path = Paths.get(Case.getCurrentOpenCase().getModuleDirectory(), PhotoRecCarverIngestModuleFactory.getModuleName());
+            path = Paths.get(Case.getCurrentCaseThrows().getModuleDirectory(), PhotoRecCarverIngestModuleFactory.getModuleName());
         } catch (NoCurrentCaseException ex) {
             throw new IngestModule.IngestModuleException(Bundle.cannotCreateOutputDir_message(ex.getLocalizedMessage()), ex);
         }
diff --git a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java
index a30dba3c4e448fae2139bf9143147dfbdf9f4ae9..967a3c41ab297f492651e5a188763e9303553972 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/photoreccarver/PhotoRecCarverOutputParser.java
@@ -100,7 +100,7 @@ List<LayoutFile> parse(File xmlInputFile, AbstractFile af, IngestJobContext cont
             NodeList fileRanges;
             Element entry;
             Path filePath;
-            FileManager fileManager = Case.getCurrentOpenCase().getServices().getFileManager();
+            FileManager fileManager = Case.getCurrentCaseThrows().getServices().getFileManager();
 
             // create and initialize the list to put into the database
             List<CarvingResult.CarvedFile> carvedFiles = new ArrayList<>();
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAccountObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAccountObj.java
index b234e98e86e9006fcda65e285adb067dc5a8a711..35bfd82eff1f52529d7db27ead45661f6db42d06 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAccountObj.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAccountObj.java
@@ -105,7 +105,7 @@ public synchronized ObservableResult evaluate() {
         try {
             List<BlackboardArtifact> finalHits = new ArrayList<BlackboardArtifact>();
 
-            Case case1 = Case.getCurrentOpenCase();
+            Case case1 = Case.getCurrentCaseThrows();
             SleuthkitCase sleuthkitCase = case1.getSleuthkitCase();
             List<BlackboardArtifact> artList
                     = sleuthkitCase.getBlackboardArtifacts(BlackboardArtifact.ARTIFACT_TYPE.TSK_OS_ACCOUNT);
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAddressObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAddressObj.java
index 5dec0ed7c6770a58d345ac91192686ad2df5fab6..b37f9dd304805296620d2ecfd3b3519160306792 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAddressObj.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalAddressObj.java
@@ -57,7 +57,7 @@ public synchronized ObservableResult evaluate() {
 
         Case case1;
         try {
-            case1 = Case.getCurrentOpenCase();
+            case1 = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             return new ObservableResult(id, "Exception while getting open case.", //NON-NLS
                     spacing, ObservableResult.ObservableState.FALSE, null);
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalDomainObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalDomainObj.java
index fcb52141a8edba51adb35de0ce4c2093ab2b733a..e57ac8e06752ae322f63dbe29ac5e362d4d63a3f 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalDomainObj.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalDomainObj.java
@@ -55,7 +55,7 @@ public synchronized ObservableResult evaluate() {
 
         Case case1;
         try {
-            case1 = Case.getCurrentOpenCase();
+            case1 = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             return new ObservableResult(id, "Exception while getting open case.", //NON-NLS
                     spacing, ObservableResult.ObservableState.FALSE, null);
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalFileObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalFileObj.java
index d0064ba5b8f09cc12913222deced78d274fc4db4..c5b3bae881073357e85a0794215df5ac3ea31b30 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalFileObj.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalFileObj.java
@@ -62,7 +62,7 @@ public synchronized ObservableResult evaluate() {
 
         Case case1;
         try {
-            case1 = Case.getCurrentOpenCase();
+            case1 = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) { 
            return new ObservableResult(id, "Exception while getting open case.", //NON-NLS
                             spacing, ObservableResult.ObservableState.FALSE, null);
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalNetworkShareObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalNetworkShareObj.java
index a82ce9ea7f8b7e60e3798daca3bd888a4c0e00ef..7e6fa7c7b1c0adf1f05770fa27d0e345bb019629 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalNetworkShareObj.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalNetworkShareObj.java
@@ -89,7 +89,7 @@ public synchronized ObservableResult evaluate() {
         try {
             List<BlackboardArtifact> finalHits = new ArrayList<BlackboardArtifact>();
 
-            Case case1 = Case.getCurrentOpenCase();
+            Case case1 = Case.getCurrentCaseThrows();
             SleuthkitCase sleuthkitCase = case1.getSleuthkitCase();
             List<BlackboardArtifact> artList
                     = sleuthkitCase.getBlackboardArtifacts(BlackboardArtifact.ARTIFACT_TYPE.TSK_REMOTE_DRIVE);
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalRegistryObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalRegistryObj.java
index 45ddd3f8bf18418d71737eacaf8f98174284b2de..b5a4662ec60e27c2bab1885083a2ae65d378884a 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalRegistryObj.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalRegistryObj.java
@@ -348,7 +348,7 @@ public static List<RegistryFileInfo> copyRegistryFiles() throws TskCoreException
         // Make the temp directory
         String tmpDir;
         try {
-           tmpDir = Case.getCurrentOpenCase().getTempDirectory() + File.separator + "STIX"; //NON-NLS
+           tmpDir = Case.getCurrentCaseThrows().getTempDirectory() + File.separator + "STIX"; //NON-NLS
         } catch (NoCurrentCaseException ex) { 
             throw new TskCoreException(ex.getLocalizedMessage());
         }
@@ -385,7 +385,7 @@ private static List<AbstractFile> findRegistryFiles() throws TskCoreException {
         List<AbstractFile> registryFiles = new ArrayList<AbstractFile>();
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) { 
             throw new TskCoreException(ex.getLocalizedMessage());
         }
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalSystemObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalSystemObj.java
index 43df781ad1383616ce4f76065dfc1ca745ef00df..73a7b1449f2aa9c995fb7f09c3dd6e660992d9f2 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalSystemObj.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalSystemObj.java
@@ -136,7 +136,7 @@ public synchronized ObservableResult evaluate() {
         setUnsupportedFieldWarnings();
 
         try {
-            Case case1 = Case.getCurrentOpenCase();
+            Case case1 = Case.getCurrentCaseThrows();
             SleuthkitCase sleuthkitCase = case1.getSleuthkitCase();
             List<OSInfo> osInfoList = OSUtility.getOSInfo(sleuthkitCase);
 
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURIObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURIObj.java
index 607d1c2367a55da3cf028719081f81ec86bf75cc..0c0ddb697180eae5c7d667742340fc5d2db995ee 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURIObj.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURIObj.java
@@ -56,7 +56,7 @@ public synchronized ObservableResult evaluate() {
 
         Case case1;
         try {
-            case1 = Case.getCurrentOpenCase();
+            case1 = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             return new ObservableResult(id, "Exception while getting open case: " + ex.getLocalizedMessage(), //NON-NLS
                     spacing, ObservableResult.ObservableState.FALSE, null);
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURLHistoryObj.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURLHistoryObj.java
index bac1d40f9ad51d8e1c3b433669cc7559efdbe316..5cf0b28213eadd2e3e587f23dbb3ad781fcecbbf 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURLHistoryObj.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvalURLHistoryObj.java
@@ -139,7 +139,7 @@ public synchronized ObservableResult evaluate() {
                 }
 
                 try {
-                    Case case1 = Case.getCurrentOpenCase();
+                    Case case1 = Case.getCurrentCaseThrows();
                     SleuthkitCase sleuthkitCase = case1.getSleuthkitCase();
                     List<BlackboardArtifact> artList
                             = sleuthkitCase.getBlackboardArtifacts(BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY);
@@ -232,7 +232,7 @@ public synchronized ObservableResult evaluate() {
             // It doesn't seem too useful, but we can just search for the browser name
             // if there aren't any URL entries
             try {
-                Case case1 = Case.getCurrentOpenCase();
+                Case case1 = Case.getCurrentCaseThrows();
                 SleuthkitCase sleuthkitCase = case1.getSleuthkitCase();
                 List<BlackboardArtifact> artList
                         = sleuthkitCase.getBlackboardArtifacts(BlackboardArtifact.ARTIFACT_TYPE.TSK_WEB_HISTORY);
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/EvaluatableObject.java b/Core/src/org/sleuthkit/autopsy/modules/stix/EvaluatableObject.java
index a4775aac92a19198d3006e7f06ce54ea3a8df677..1fd7a7bed19b1419bba75205ae355726eb9453eb 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/EvaluatableObject.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/EvaluatableObject.java
@@ -101,7 +101,7 @@ public List<BlackboardArtifact> findArtifactsBySubstring(StringObjectPropertyTyp
 
         List<BlackboardArtifact> hits = null;
         try {
-            Case case1 = Case.getCurrentOpenCase();
+            Case case1 = Case.getCurrentCaseThrows();
             SleuthkitCase sleuthkitCase = case1.getSleuthkitCase();
 
             String[] parts = item.getValue().toString().split("##comma##"); //NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/STIXReportModule.java b/Core/src/org/sleuthkit/autopsy/modules/stix/STIXReportModule.java
index ff00ffc1098c43e9e35c644ccf94779fb8562d92..5daf23c217e0851b8a5bea3437650129e2811301 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/STIXReportModule.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/STIXReportModule.java
@@ -186,7 +186,7 @@ public void generateReport(String baseReportDir, ReportProgressPanel progressPan
 
             // Set the progress bar to done. If any errors occurred along the way, modify
             // the "complete" message to indicate this.
-            Case.getCurrentOpenCase().addReport(reportPath, Bundle.STIXReportModule_srcModuleName_text(), "");
+            Case.getCurrentCaseThrows().addReport(reportPath, Bundle.STIXReportModule_srcModuleName_text(), "");
             if (hadErrors) {
                 progressPanel.complete(ReportStatus.ERROR);
                 progressPanel.updateStatusLabel(
diff --git a/Core/src/org/sleuthkit/autopsy/modules/stix/StixArtifactData.java b/Core/src/org/sleuthkit/autopsy/modules/stix/StixArtifactData.java
index 39642a9cb8a5503ba4e79184b610f221251fbf36..6b0622f6309e8b86040a030356ca0f0a147de290 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/stix/StixArtifactData.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/stix/StixArtifactData.java
@@ -51,7 +51,7 @@ public StixArtifactData(AbstractFile a_file, String a_observableId, String a_obj
 
     public StixArtifactData(long a_objId, String a_observableId, String a_objType) {
         try {
-            Case case1 = Case.getCurrentOpenCase();
+            Case case1 = Case.getCurrentCaseThrows();
             SleuthkitCase sleuthkitCase = case1.getSleuthkitCase();
             file = sleuthkitCase.getAbstractFileById(a_objId);
         } catch (TskCoreException | NoCurrentCaseException ex) {
@@ -66,7 +66,7 @@ public StixArtifactData(long a_objId, String a_observableId, String a_objType) {
     public void createArtifact(String a_title) throws TskCoreException {
         Blackboard blackboard;
         try {
-            blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             MessageNotifyUtil.Notify.error(Bundle.StixArtifactData_noOpenCase_errMsg(), ex.getLocalizedMessage());
diff --git a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java
index 10d3dcb9a784db0f2be8f81b973d5b8a5df51d7e..843b07a3d68ed62e85f6dbc287e93ae4111e6903 100644
--- a/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/modules/vmextractor/VMExtractorIngestModule.java
@@ -81,7 +81,7 @@ public void startUp(IngestJobContext context) throws IngestModuleException {
         this.context = context;
         long dataSourceObjId = context.getDataSource().getId();
         try {
-            Case currentCase = Case.getCurrentOpenCase();
+            Case currentCase = Case.getCurrentCaseThrows();
             SleuthkitCase caseDb = currentCase.getSleuthkitCase();
             DataSource dataSource = caseDb.getDataSource(dataSourceObjId);
             parentDeviceId = dataSource.getDeviceId();
@@ -234,7 +234,7 @@ private static List<AbstractFile> findVirtualMachineFiles(Content dataSource) th
         List<AbstractFile> vmFiles = new ArrayList<>();
         for (String vmExtension : GeneralFilter.VIRTUAL_MACHINE_EXTS) {
             String searchString = "%" + vmExtension;    // want a search string that looks like this "%.vmdk"
-            vmFiles.addAll(Case.getCurrentOpenCase().getServices().getFileManager().findFiles(dataSource, searchString));
+            vmFiles.addAll(Case.getCurrentCaseThrows().getServices().getFileManager().findFiles(dataSource, searchString));
         }
         return vmFiles;
     }
@@ -275,7 +275,7 @@ private void ingestVirtualMachineImage(Path vmFile) throws InterruptedException,
          * Try to add the virtual machine file to the case as a data source.
          */
         UUID taskId = UUID.randomUUID();
-        Case.getCurrentOpenCase().notifyAddingDataSource(taskId);
+        Case.getCurrentCaseThrows().notifyAddingDataSource(taskId);
         ImageDSProcessor dataSourceProcessor = new ImageDSProcessor();
         AddDataSourceCallback dspCallback = new AddDataSourceCallback(vmFile);
         synchronized (this) {
@@ -291,7 +291,7 @@ private void ingestVirtualMachineImage(Path vmFile) throws InterruptedException,
          * ingest context.
          */
         if (!dspCallback.vmDataSources.isEmpty()) {
-            Case.getCurrentOpenCase().notifyDataSourceAdded(dspCallback.vmDataSources.get(0), taskId);
+            Case.getCurrentCaseThrows().notifyDataSourceAdded(dspCallback.vmDataSources.get(0), taskId);
             List<Content> dataSourceContent = new ArrayList<>(dspCallback.vmDataSources);
             IngestJobSettings ingestJobSettings = new IngestJobSettings(context.getExecutionContext());
             for (String warning : ingestJobSettings.getWarnings()) {
@@ -302,7 +302,7 @@ private void ingestVirtualMachineImage(Path vmFile) throws InterruptedException,
                     NbBundle.getMessage(this.getClass(), "VMExtractorIngestModule.addedVirtualMachineImage.message", vmFile.toString())));
             IngestManager.getInstance().queueIngestJob(dataSourceContent, ingestJobSettings);
         } else {
-            Case.getCurrentOpenCase().notifyFailedAddingDataSource(taskId);
+            Case.getCurrentCaseThrows().notifyFailedAddingDataSource(taskId);
         }
     }
 
diff --git a/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java b/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java
index fc88f17389aa9cd45cf1ec36e87d302ee5067ab2..50e9715a167acd474bf3303243b5aa6a170fe80b 100644
--- a/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java
+++ b/Core/src/org/sleuthkit/autopsy/report/ArtifactSelectionDialog.java
@@ -75,7 +75,7 @@ private void populateList() {
                     BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getLabel(),
                     BlackboardArtifact.ARTIFACT_TYPE.TSK_TOOL_OUTPUT.getDisplayName())); // output is too unstructured for table review
 
-            artifactTypes = Case.getCurrentOpenCase().getSleuthkitCase().getArtifactTypesInUse();
+            artifactTypes = Case.getCurrentCaseThrows().getSleuthkitCase().getArtifactTypesInUse();
             artifactTypes.removeAll(doNotReport);
             Collections.sort(artifactTypes, new Comparator<BlackboardArtifact.Type>() {
                 @Override
diff --git a/Core/src/org/sleuthkit/autopsy/report/FileReportText.java b/Core/src/org/sleuthkit/autopsy/report/FileReportText.java
index 1dfef3622af556b19a90b9c5ab1385c7de1e8515..f96bad446b8725276fe5648fd3ecbc1836bc0612 100644
--- a/Core/src/org/sleuthkit/autopsy/report/FileReportText.java
+++ b/Core/src/org/sleuthkit/autopsy/report/FileReportText.java
@@ -72,7 +72,7 @@ public void endReport() {
         if (out != null) {
             try {
                 out.close();
-                Case.getCurrentOpenCase().addReport(reportPath, NbBundle.getMessage(this.getClass(),
+                Case.getCurrentCaseThrows().addReport(reportPath, NbBundle.getMessage(this.getClass(),
                         "FileReportText.getName.text"), "");
             } catch (IOException ex) {
                 logger.log(Level.WARNING, "Could not close output writer when ending report.", ex); //NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java b/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java
index afe551d9ed9e658e3b48f2a478587beab860a70d..46954181179b7c322294e55b61ae35fea13b9341 100644
--- a/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java
+++ b/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java
@@ -75,7 +75,7 @@ public static synchronized ReportBodyFile getDefault() {
     public void generateReport(String baseReportDir, ReportProgressPanel progressPanel) {
         // Start the progress bar and setup the report
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex);
             return;
@@ -161,7 +161,7 @@ public void generateReport(String baseReportDir, ReportProgressPanel progressPan
                     if (out != null) {
                         out.flush();
                         out.close();
-                        Case.getCurrentOpenCase().addReport(reportPath,
+                        Case.getCurrentCaseThrows().addReport(reportPath,
                                 NbBundle.getMessage(this.getClass(),
                                         "ReportBodyFile.generateReport.srcModuleName.text"), "");
 
diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java b/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java
index 7b7907f3bff4ec0dc1cb34d0aec214d2e4056b22..3dcc416ef3aa9c9094406309947f4770d4fe93f9 100644
--- a/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java
+++ b/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java
@@ -113,7 +113,7 @@ public void endReport() {
         try {
             out = new FileOutputStream(reportPath);
             wb.write(out);
-            Case.getCurrentOpenCase().addReport(reportPath, NbBundle.getMessage(this.getClass(),
+            Case.getCurrentCaseThrows().addReport(reportPath, NbBundle.getMessage(this.getClass(),
                     "ReportExcel.endReport.srcModuleName.text"), "");
         } catch (IOException ex) {
             logger.log(Level.SEVERE, "Failed to write Excel report.", ex); //NON-NLS
@@ -305,7 +305,7 @@ private static String escapeForExcel(String text) {
     private void writeSummaryWorksheet() {
         Case currentCase;
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return;
diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java
index d2b4228f91d1159fe8c748c79f519da67b52ef29..aecfe0661adf10d230a9e473c4b1204bf2081aff 100644
--- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java
+++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java
@@ -228,7 +228,7 @@ void generateFileListReport(FileReportModule fileReportModule, Map<FileReportDat
     private List<AbstractFile> getFiles() {
         List<AbstractFile> absFiles;
         try {
-            SleuthkitCase skCase = Case.getCurrentOpenCase().getSleuthkitCase();
+            SleuthkitCase skCase = Case.getCurrentCaseThrows().getSleuthkitCase();
             absFiles = skCase.findAllFilesWhere("meta_type != " + TskData.TSK_FS_META_TYPE_ENUM.TSK_FS_META_TYPE_DIR.getValue()); //NON-NLS
             return absFiles;
         } catch (TskCoreException | NoCurrentCaseException ex) {
@@ -253,7 +253,7 @@ private void setupProgressPanel(ReportModule module, String reportDir) {
     private static String createReportDirectory(ReportModule module) throws IOException {
         Case currentCase;
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             throw new IOException("Exception while getting open case.", ex);
         }
diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java b/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java
index 65ccb6d7951e2faddf8e0db35af7b2a2e71dfd72..2f0cb5f77025a6c144b963765ea8d83503fae02f 100644
--- a/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java
+++ b/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java
@@ -104,7 +104,7 @@ private ReportHTML() {
 
     // Refesh the member variables
     private void refresh() throws NoCurrentCaseException {
-        currentCase = Case.getCurrentOpenCase();
+        currentCase = Case.getCurrentCaseThrows();
         skCase = currentCase.getSleuthkitCase();
 
         dataTypes = new TreeMap<>();
@@ -890,7 +890,7 @@ private void writeIndex() {
         String indexFilePath = path + "report.html"; //NON-NLS
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return;
diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportKML.java b/Core/src/org/sleuthkit/autopsy/report/ReportKML.java
index a286384e19c5f2fdb75dd8c3ea0886e80243c672..3a092efc831a5f581faad4d06b0e296227854717 100644
--- a/Core/src/org/sleuthkit/autopsy/report/ReportKML.java
+++ b/Core/src/org/sleuthkit/autopsy/report/ReportKML.java
@@ -101,7 +101,7 @@ public static synchronized ReportKML getDefault() {
     @Override
     public void generateReport(String baseReportDir, ReportProgressPanel progressPanel) {
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return;
@@ -387,7 +387,7 @@ public void generateReport(String baseReportDir, ReportProgressPanel progressPan
             if (result == ReportProgressPanel.ReportStatus.ERROR) {
                 prependedStatus = "Incomplete ";
             }
-            Case.getCurrentOpenCase().addReport(kmlFileFullPath,
+            Case.getCurrentCaseThrows().addReport(kmlFileFullPath,
                     NbBundle.getMessage(this.getClass(), "ReportKML.genReport.srcModuleName.text"),
                     prependedStatus + NbBundle.getMessage(this.getClass(), "ReportKML.genReport.reportName"));
         } catch (IOException ex) {
diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel2.java b/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel2.java
index 1b8d5d585c454bfd66d75e43b41d6e9801b1a0f2..98160874c90cfa8302ca3d51abc8c84c97df6962 100644
--- a/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel2.java
+++ b/Core/src/org/sleuthkit/autopsy/report/ReportVisualPanel2.java
@@ -98,7 +98,7 @@ public void stateChanged(ChangeEvent e) {
     private void initTags() {
         List<TagName> tagNamesInUse;
         try {
-            tagNamesInUse = Case.getCurrentOpenCase().getServices().getTagsManager().getTagNamesInUse();
+            tagNamesInUse = Case.getCurrentCaseThrows().getServices().getTagsManager().getTagNamesInUse();
         } catch (TskCoreException | NoCurrentCaseException ex) {
             Logger.getLogger(ReportVisualPanel2.class.getName()).log(Level.SEVERE, "Failed to get tag names", ex); //NON-NLS
             return;
@@ -137,7 +137,7 @@ public void mousePressed(MouseEvent evt) {
     private void initArtifactTypes() {
 
         try {
-            Case openCase = Case.getCurrentOpenCase();
+            Case openCase = Case.getCurrentCaseThrows();
             ArrayList<BlackboardArtifact.Type> doNotReport = new ArrayList<>();
             doNotReport.add(new BlackboardArtifact.Type(BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO.getTypeID(),
                     BlackboardArtifact.ARTIFACT_TYPE.TSK_GEN_INFO.getLabel(),
diff --git a/Core/src/org/sleuthkit/autopsy/report/TableReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/TableReportGenerator.java
index 1bcb6fecba5f475e32d4ed72f23bdc992317e266..9d5d41c836b7460d5be0bf05e9709ca741f0294b 100644
--- a/Core/src/org/sleuthkit/autopsy/report/TableReportGenerator.java
+++ b/Core/src/org/sleuthkit/autopsy/report/TableReportGenerator.java
@@ -182,7 +182,7 @@ private void makeBlackboardArtifactTables() {
                     String accountDisplayname = accountTypeStr;
                     if (accountTypeStr != null) {
                         try {
-                            Account.Type acctType = Case.getCurrentOpenCase().getSleuthkitCase().getCommunicationsManager().getAccountType(accountTypeStr);
+                            Account.Type acctType = Case.getCurrentCaseThrows().getSleuthkitCase().getCommunicationsManager().getAccountType(accountTypeStr);
                             if (acctType != null) {
                                 accountDisplayname = acctType.getDisplayName();
                             }
@@ -268,7 +268,7 @@ private void makeContentTagsTables() {
         // Get the content tags.
         List<ContentTag> tags;
         try {
-            tags = Case.getCurrentOpenCase().getServices().getTagsManager().getAllContentTags();
+            tags = Case.getCurrentCaseThrows().getServices().getTagsManager().getAllContentTags();
         } catch (TskCoreException | NoCurrentCaseException ex) {
             errorList.add(NbBundle.getMessage(this.getClass(), "ReportGenerator.errList.failedGetContentTags"));
             logger.log(Level.SEVERE, "failed to get content tags", ex); //NON-NLS
@@ -361,7 +361,7 @@ private void makeBlackboardArtifactTagsTables() {
 
         List<BlackboardArtifactTag> tags;
         try {
-            tags = Case.getCurrentOpenCase().getServices().getTagsManager().getAllBlackboardArtifactTags();
+            tags = Case.getCurrentCaseThrows().getServices().getTagsManager().getAllBlackboardArtifactTags();
         } catch (TskCoreException | NoCurrentCaseException ex) {
             errorList.add(NbBundle.getMessage(this.getClass(), "ReportGenerator.errList.failedGetBBArtifactTags"));
             logger.log(Level.SEVERE, "failed to get blackboard artifact tags", ex); //NON-NLS
@@ -453,7 +453,7 @@ private void makeThumbnailTable() {
     private void checkIfTagHasImage(BlackboardArtifactTag artifactTag) {
         AbstractFile file;
         try {
-            file = Case.getCurrentOpenCase().getSleuthkitCase().getAbstractFileById(artifactTag.getArtifact().getObjectID());
+            file = Case.getCurrentCaseThrows().getSleuthkitCase().getAbstractFileById(artifactTag.getArtifact().getObjectID());
         } catch (TskCoreException | NoCurrentCaseException ex) {
             errorList.add(
                     NbBundle.getMessage(this.getClass(), "ReportGenerator.errList.errGetContentFromBBArtifact"));
@@ -532,7 +532,7 @@ private void writeKeywordHits(TableReportModule tableModule, String comment, Has
         String orderByClause;
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             errorList.add(Bundle.ReportGenerator_errList_noOpenCase());
             logger.log(Level.SEVERE, "Exception while getting open case: ", ex); //NON-NLS
@@ -697,7 +697,7 @@ private void writeHashsetHits(TableReportModule tableModule, String comment, Has
         String orderByClause;
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             errorList.add(Bundle.ReportGenerator_errList_noOpenCase());
             logger.log(Level.SEVERE, "Exception while getting open case: ", ex); //NON-NLS
@@ -852,7 +852,7 @@ private class ArtifactData implements Comparable<ArtifactData> {
             this.attributes = attrs;
             this.tags = tags;
             try {
-                this.content = Case.getCurrentOpenCase().getSleuthkitCase().getContentById(artifact.getObjectID());
+                this.content = Case.getCurrentCaseThrows().getSleuthkitCase().getContentById(artifact.getObjectID());
             } catch (TskCoreException | NoCurrentCaseException ex) {
                 logger.log(Level.SEVERE, "Could not get content from database", ex);
             }
@@ -990,7 +990,7 @@ private List<String> getOrderedRowDataAsStrings() throws TskCoreException {
 
                 HashSet<String> allTags = getTags();
                 try {
-                    List<ContentTag> contentTags = Case.getCurrentOpenCase().getServices().getTagsManager().getContentTagsByContent(content);
+                    List<ContentTag> contentTags = Case.getCurrentCaseThrows().getServices().getTagsManager().getContentTagsByContent(content);
                     for (ContentTag ct : contentTags) {
                         String notableString = ct.getName().getKnownStatus() == TskData.FileKnown.BAD ? TagsManager.getNotableTagLabel() : "";
                         allTags.add(ct.getName().getDisplayName() + notableString);
@@ -1026,8 +1026,8 @@ private List<String> getOrderedRowDataAsStrings() throws TskCoreException {
     private List<ArtifactData> getFilteredArtifacts(BlackboardArtifact.Type type, HashSet<String> tagNamesFilter) {
         List<ArtifactData> artifacts = new ArrayList<>();
         try {
-            for (BlackboardArtifact artifact : Case.getCurrentOpenCase().getSleuthkitCase().getBlackboardArtifacts(type.getTypeID())) {
-                List<BlackboardArtifactTag> tags = Case.getCurrentOpenCase().getServices().getTagsManager().getBlackboardArtifactTagsByArtifact(artifact);
+            for (BlackboardArtifact artifact : Case.getCurrentCaseThrows().getSleuthkitCase().getBlackboardArtifacts(type.getTypeID())) {
+                List<BlackboardArtifactTag> tags = Case.getCurrentCaseThrows().getServices().getTagsManager().getBlackboardArtifactTagsByArtifact(artifact);
                 HashSet<String> uniqueTagNames = new HashSet<>();
                 for (BlackboardArtifactTag tag : tags) {
                     String notableString = tag.getName().getKnownStatus() == TskData.FileKnown.BAD ? TagsManager.getNotableTagLabel() : "";
@@ -1037,7 +1037,7 @@ private List<ArtifactData> getFilteredArtifacts(BlackboardArtifact.Type type, Ha
                     continue;
                 }
                 try {
-                    artifacts.add(new ArtifactData(artifact, Case.getCurrentOpenCase().getSleuthkitCase().getBlackboardAttributes(artifact), uniqueTagNames));
+                    artifacts.add(new ArtifactData(artifact, Case.getCurrentCaseThrows().getSleuthkitCase().getBlackboardAttributes(artifact), uniqueTagNames));
                 } catch (TskCoreException ex) {
                     errorList.add(NbBundle.getMessage(this.getClass(), "ReportGenerator.errList.failedGetBBAttribs"));
                     logger.log(Level.SEVERE, "Failed to get Blackboard Attributes when generating report.", ex); //NON-NLS
@@ -1627,7 +1627,7 @@ private HashSet<String> getUniqueTagNames(long artifactId) throws TskCoreExcepti
                 + //NON-NLS 
                 "WHERE tn.tag_name_id = bat.tag_name_id AND bat.artifact_id = " + artifactId; //NON-NLS
 
-        try (SleuthkitCase.CaseDbQuery dbQuery = Case.getCurrentOpenCase().getSleuthkitCase().executeQuery(query)) {
+        try (SleuthkitCase.CaseDbQuery dbQuery = Case.getCurrentCaseThrows().getSleuthkitCase().executeQuery(query)) {
             ResultSet tagNameRows = dbQuery.getResultSet();
             while (tagNameRows.next()) {
                 uniqueTagNames.add(tagNameRows.getString("display_name")); //NON-NLS
diff --git a/Core/src/org/sleuthkit/autopsy/report/taggedhashes/AddTaggedHashesToHashDb.java b/Core/src/org/sleuthkit/autopsy/report/taggedhashes/AddTaggedHashesToHashDb.java
index 7829d0eedff9633db1508525dd81d32afd6998e1..eb8b8a289f7e04a678215c117c5e822ee32fb167 100644
--- a/Core/src/org/sleuthkit/autopsy/report/taggedhashes/AddTaggedHashesToHashDb.java
+++ b/Core/src/org/sleuthkit/autopsy/report/taggedhashes/AddTaggedHashesToHashDb.java
@@ -69,7 +69,7 @@ public String getRelativeFilePath() {
     public void generateReport(String reportPath, ReportProgressPanel progressPanel) {
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             Logger.getLogger(AddTaggedHashesToHashDb.class.getName()).log(Level.SEVERE, "Exception while getting open case.", ex);
             JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), "No open Case", "Exception while getting open case.", JOptionPane.ERROR_MESSAGE);
diff --git a/Core/src/org/sleuthkit/autopsy/report/taggedhashes/AddTaggedHashesToHashDbConfigPanel.java b/Core/src/org/sleuthkit/autopsy/report/taggedhashes/AddTaggedHashesToHashDbConfigPanel.java
index e49c597414c9b12993d53a39641a73e89877f9e1..06484468a4630cc0ed425e0a5ee305075047f30f 100644
--- a/Core/src/org/sleuthkit/autopsy/report/taggedhashes/AddTaggedHashesToHashDbConfigPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/report/taggedhashes/AddTaggedHashesToHashDbConfigPanel.java
@@ -68,7 +68,7 @@ private void customizeComponents() {
     private void populateTagNameComponents() {
         // Get the tag names in use for the current case.
         try {
-            tagNames = Case.getCurrentOpenCase().getServices().getTagsManager().getTagNamesInUse();
+            tagNames = Case.getCurrentCaseThrows().getServices().getTagsManager().getTagNamesInUse();
         } catch (TskCoreException ex) {
             Logger.getLogger(AddTaggedHashesToHashDbConfigPanel.class.getName()).log(Level.SEVERE, "Failed to get tag names", ex);
             JOptionPane.showMessageDialog(this, "Error getting tag names for case.", "Tag Names Not Found", JOptionPane.ERROR_MESSAGE);
diff --git a/Core/src/org/sleuthkit/autopsy/test/CustomArtifactType.java b/Core/src/org/sleuthkit/autopsy/test/CustomArtifactType.java
index 9284ae888b92259e8b36f9afc01b76feb885ff72..032f7da50609e1dbec9aca49bfca8a518264331e 100644
--- a/Core/src/org/sleuthkit/autopsy/test/CustomArtifactType.java
+++ b/Core/src/org/sleuthkit/autopsy/test/CustomArtifactType.java
@@ -65,7 +65,7 @@ final class CustomArtifactType {
      * @throws BlackboardException If there is an error adding any of the types.
      */
     static void addToCaseDatabase() throws Blackboard.BlackboardException, NoCurrentCaseException {
-        Blackboard blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+        Blackboard blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
         artifactType = blackboard.getOrAddArtifactType(ARTIFACT_TYPE_NAME, ARTIFACT_DISPLAY_NAME);
         intAttrType = blackboard.getOrAddAttributeType(INT_ATTR_TYPE_NAME, BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.INTEGER, INT_ATTR_DISPLAY_NAME);
         doubleAttrType = blackboard.getOrAddAttributeType(DOUBLE_ATTR_TYPE_NAME, BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DOUBLE, DOUBLE_ATTR_DISPLAY_NAME);
diff --git a/Core/src/org/sleuthkit/autopsy/test/InterestingArtifactCreatorIngestModule.java b/Core/src/org/sleuthkit/autopsy/test/InterestingArtifactCreatorIngestModule.java
index f4df2242d834704eafaa8f7ac41cdec32efe2f74..f3232ceb86d2027c6ea53846e869f5235efdb3c3 100644
--- a/Core/src/org/sleuthkit/autopsy/test/InterestingArtifactCreatorIngestModule.java
+++ b/Core/src/org/sleuthkit/autopsy/test/InterestingArtifactCreatorIngestModule.java
@@ -55,7 +55,7 @@ final class InterestingArtifactCreatorIngestModule extends FileIngestModuleAdapt
     @Override
     public void startUp(IngestJobContext context) throws IngestModuleException {
         try {
-            Blackboard blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            Blackboard blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
             artifactType = blackboard.getOrAddArtifactType(INT_ARTIFACT_TYPE_NAME, INT_ARTIFACT_DISPLAY_NAME);
          } catch (Blackboard.BlackboardException | NoCurrentCaseException ex) {
             throw new IngestModuleException(Bundle.InterestingArtifactCreatorIngestModule_exceptionMessage_errorCreatingCustomType(), ex);
@@ -77,7 +77,7 @@ public ProcessResult process(AbstractFile file) {
              * type.
              */
             int randomArtIndex = (int) (Math.random() * 3);
-            Blackboard blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            Blackboard blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
             BlackboardArtifact.Type artifactTypeBase = blackboard.getOrAddArtifactType(ARTIFACT_TYPE_NAMES[randomArtIndex], ARTIFACT_DISPLAY_NAMES[randomArtIndex]);
             BlackboardArtifact artifactBase = file.newArtifact(artifactTypeBase.getTypeID());
             Collection<BlackboardAttribute> baseAttributes = new ArrayList<>();
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java b/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java
index 9111b205d0a191fa2e5299ce657939f0113d56c1..362853db3b636aa08f34f9d0fd2a56d1ea070d2a 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/OpenTimelineAction.java
@@ -112,7 +112,7 @@ public void performAction() {
         "OpenTimeLineAction.msgdlg.text=Could not create timeline, there are no data sources."})
     synchronized private void showTimeline(AbstractFile file, BlackboardArtifact artifact) {
         try {
-            Case currentCase = Case.getCurrentOpenCase();
+            Case currentCase = Case.getCurrentCaseThrows();
             if (currentCase.hasData() == false) {
                 MessageNotifyUtil.Message.info(Bundle.OpenTimeLineAction_msgdlg_text());
                 logger.log(Level.INFO, "Could not create timeline, there are no data sources.");// NON-NLS
@@ -213,7 +213,7 @@ public JMenuItem getMenuPresenter() {
 
     private boolean tooManyFiles() {
         try {
-            return FILE_LIMIT < Case.getCurrentOpenCase().getSleuthkitCase().countFilesWhere("1 = 1");
+            return FILE_LIMIT < Case.getCurrentCaseThrows().getSleuthkitCase().countFilesWhere("1 = 1");
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Can not open timeline with no case open.", ex);
         } catch (TskCoreException ex) {
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/TimeLineController.java b/Core/src/org/sleuthkit/autopsy/timeline/TimeLineController.java
index cd5c7d5ba63c4b5bf456d5560a03c974c640b493..c1cd61e427f9a7a7f49390597a4325eb119ce566 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/TimeLineController.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/TimeLineController.java
@@ -950,7 +950,7 @@ public void propertyChange(PropertyChangeEvent evt) {
              * already closed.
              */
             try {
-                Case.getCurrentOpenCase();
+                Case.getCurrentCaseThrows();
             } catch (NoCurrentCaseException notUsed) {
                 // Case is closed, do nothing.
                 return;
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/actions/SaveSnapshotAsReport.java b/Core/src/org/sleuthkit/autopsy/timeline/actions/SaveSnapshotAsReport.java
index bf16dc32dac890b4487eadcb7aaab7475f2398ba..b7fe2de31325caea24255e3c7614f6a091a89502 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/actions/SaveSnapshotAsReport.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/actions/SaveSnapshotAsReport.java
@@ -153,7 +153,7 @@ public ValidationResult apply(Control textField, String enteredReportName) {
 
                 try {
                     //add main file as report to case
-                    Case.getCurrentOpenCase().addReport(reportMainFilePath.toString(), Bundle.Timeline_ModuleName(), reportName);
+                    Case.getCurrentCaseThrows().addReport(reportMainFilePath.toString(), Bundle.Timeline_ModuleName(), reportName);
                 } catch (TskCoreException | NoCurrentCaseException ex) {
                     LOGGER.log(Level.WARNING, "Failed to add " + reportMainFilePath.toString() + " to case as a report", ex); //NON_NLS
                     new Alert(Alert.AlertType.ERROR, Bundle.SaveSnapShotAsReport_FailedToAddReport()).show();
diff --git a/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventNode.java b/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventNode.java
index d7758c6a8d39b2a9c5bc54796b1268f2fa33ce46..71618c31619054e266873df338743d9919fe3186 100644
--- a/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventNode.java
+++ b/Core/src/org/sleuthkit/autopsy/timeline/explorernodes/EventNode.java
@@ -223,7 +223,7 @@ public static EventNode createEventNode(final Long eventID, FilteredEventsModel
          */
         final SingleEvent eventById = eventsModel.getEventById(eventID);
 
-        SleuthkitCase sleuthkitCase = Case.getCurrentOpenCase().getSleuthkitCase();
+        SleuthkitCase sleuthkitCase = Case.getCurrentCaseThrows().getSleuthkitCase();
         AbstractFile file = sleuthkitCase.getAbstractFileById(eventById.getFileID());
 
         if (eventById.getArtifactID().isPresent()) {
diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/centralrepository/datamodel/CentralRepoDatamodelTest.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/centralrepository/datamodel/CentralRepoDatamodelTest.java
index e8947f10557f87eb59ca22377c3f4be2d63d0a14..99dbd9204daa1768dc0f6ae729b6d5caf646a04e 100644
--- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/centralrepository/datamodel/CentralRepoDatamodelTest.java
+++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/centralrepository/datamodel/CentralRepoDatamodelTest.java
@@ -2344,7 +2344,7 @@ public void testCases() {
             // Test creating a case from an Autopsy case
             // The case may already be in the database - the result is the same either way
             try {
-                caseB = EamDb.getInstance().newCase(Case.getCurrentOpenCase());
+                caseB = EamDb.getInstance().newCase(Case.getCurrentCaseThrows());
                 assertTrue("Failed to create correlation case from Autopsy case", caseB != null);
             } catch (EamDbException | NoCurrentCaseException ex) {
                 Exceptions.printStackTrace(ex);
@@ -2413,7 +2413,7 @@ public void testCases() {
 
             // Test getting a case from an Autopsy case
             try {
-                CorrelationCase tempCase = EamDb.getInstance().getCase(Case.getCurrentOpenCase());
+                CorrelationCase tempCase = EamDb.getInstance().getCase(Case.getCurrentCaseThrows());
                 assertTrue("getCase returned null for current Autopsy case", tempCase != null);
             } catch (EamDbException | NoCurrentCaseException ex) {
                 Exceptions.printStackTrace(ex);
diff --git a/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/IngestFileFiltersTest.java b/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/IngestFileFiltersTest.java
index b52da4a3319125340297a40ece09dc7afdfef0ca..940c3d062a5e8c52beaea3f1e3d889c3ffacaab2 100644
--- a/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/IngestFileFiltersTest.java
+++ b/Core/test/qa-functional/src/org/sleuthkit/autopsy/ingest/IngestFileFiltersTest.java
@@ -134,7 +134,7 @@ public void testBasicDir() {
         FilesSet Files_Dirs_Unalloc_Ingest_Filter = new FilesSet("Filter", "Filter to find all files in dir1.", false, true, rule);        
 
         try {
-            Case openCase = Case.getCurrentOpenCase();
+            Case openCase = Case.getCurrentCaseThrows();
             runIngestJob(openCase.getDataSources(), Files_Dirs_Unalloc_Ingest_Filter);
             FileManager fileManager = openCase.getServices().getFileManager();
             List<AbstractFile> results = fileManager.findFiles("file.jpg", "dir1");
diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AddArchiveTask.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AddArchiveTask.java
index e25142fd7c6914e86a9505f89992eeeec353bdfc..9830cecbe99b504f93f168ee2164325cc05e446f 100644
--- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AddArchiveTask.java
+++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AddArchiveTask.java
@@ -100,7 +100,7 @@ public void run() {
 
         // extract the archive and pass the extracted folder as input
         try {
-            Case currentCase = Case.getCurrentOpenCase();
+            Case currentCase = Case.getCurrentCaseThrows();
 
             // create folder to extract archive to
             Path destinationFolder = createDirectoryForFile(archivePath, currentCase.getModuleDirectory());
diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/ArchiveFilePanel.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/ArchiveFilePanel.java
index 263b600d085fd1365e64b6d911c2ad519cbecc22..e0a53784440171c46cbf9eeec59af9118dc8f7f4 100644
--- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/ArchiveFilePanel.java
+++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/ArchiveFilePanel.java
@@ -217,7 +217,7 @@ public boolean validatePanel() {
 
         // display warning if there is one (but don't disable "next" button)
         try {
-            if (false == PathValidator.isValid(path, Case.getCurrentOpenCase().getCaseType())) {
+            if (false == PathValidator.isValid(path, Case.getCurrentCaseThrows().getCaseType())) {
                 errorLabel.setVisible(true);
                 errorLabel.setText(Bundle.DataSourceOnCDriveError_text());
             }
diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestManager.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestManager.java
index b078f621d0ad7e16c8d913bddd49a7f7276f0666..2f94ba3bd0799301853667f9d951d16b58be6ad4 100644
--- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestManager.java
+++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestManager.java
@@ -2271,7 +2271,7 @@ private Case openCase() throws CoordinationServiceException, CaseManagementExcep
                             Thread.sleep(AutoIngestUserPreferences.getSecondsToSleepBetweenCases() * 1000);
                         }
                         currentJob.setCaseDirectoryPath(caseDirectoryPath);
-                        Case caseForJob = Case.getCurrentOpenCase();
+                        Case caseForJob = Case.getCurrentCaseThrows();
                         SYS_LOGGER.log(Level.INFO, "Opened case {0} for {1}", new Object[]{caseForJob.getName(), manifest.getFilePath()});
                         return caseForJob;
 
diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExportRuleSet.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExportRuleSet.java
index a8091c0e2b121281f239a587ff13b3ac1c14c857..399ae574ba5b96a54169b093fd00a48f568ac38f 100644
--- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExportRuleSet.java
+++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExportRuleSet.java
@@ -375,7 +375,7 @@ public int compareTo(Rule that) {
          */
         List<Long> evaluate(long dataSourceId) throws ExportRulesException {
             try {
-                SleuthkitCase db = Case.getCurrentOpenCase().getSleuthkitCase();
+                SleuthkitCase db = Case.getCurrentCaseThrows().getSleuthkitCase();
                 try (SleuthkitCase.CaseDbQuery queryResult = db.executeQuery(getQuery(dataSourceId))) {
                     ResultSet resultSet = queryResult.getResultSet();
                     List<Long> fileIds = new ArrayList<>();
@@ -1063,7 +1063,7 @@ public int compareTo(ArtifactCondition that) {
             private String getConditionClause(int index) throws ExportRulesException {
                 Case currentCase;
                 try {
-                    currentCase = Case.getCurrentOpenCase();
+                    currentCase = Case.getCurrentCaseThrows();
                 } catch (NoCurrentCaseException ex) {
                     throw new ExportRulesException("Exception while getting open case.", ex);
                 }
diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporter.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporter.java
index 23fd8d07737904400017ed7d5e3239f2f8ae8a43..f129635f95c4cbc9788db2bfcb7956de383f37e6 100644
--- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporter.java
+++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporter.java
@@ -131,7 +131,7 @@ void process(String deviceId, List<Content> dataSources, Supplier<Boolean> cance
     private boolean verifyPrerequisites(List<Content> dataSources) throws FileExportException {
         SleuthkitCase skCase;
         try {
-            skCase = Case.getCurrentOpenCase().getSleuthkitCase();
+            skCase = Case.getCurrentCaseThrows().getSleuthkitCase();
         } catch (NoCurrentCaseException ex) {
             throw new FileExportException("Exception while getting open case.", ex);
         }
@@ -341,7 +341,7 @@ private void exportFiles(Map<Long, List<String>> fileIdsToRuleNames, Supplier<Bo
      *                          storage.
      */
     private void exportFile(Long fileId, List<String> ruleNames, Supplier<Boolean> cancelCheck) throws TskCoreException, IOException, NoCurrentCaseException {
-        AbstractFile file = Case.getCurrentOpenCase().getSleuthkitCase().getAbstractFileById(fileId);
+        AbstractFile file = Case.getCurrentCaseThrows().getSleuthkitCase().getAbstractFileById(fileId);
         if (!shouldExportFile(file)) {
             return;
         }
diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporterSettingsPanel.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporterSettingsPanel.java
index 79cee64f079a16fda04cc73a499e2571c75d9b92..cea7338f51bcb8bd00a9493e86c2eaed4d112599 100644
--- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporterSettingsPanel.java
+++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/FileExporterSettingsPanel.java
@@ -529,7 +529,7 @@ void populateMimeTypes() {
     void populateArtifacts() {
         Set<String> artifactTypes = scanRulesForArtifacts();
         try {
-            SleuthkitCase currentCase = Case.getCurrentOpenCase().getSleuthkitCase();
+            SleuthkitCase currentCase = Case.getCurrentCaseThrows().getSleuthkitCase();
             for (BlackboardArtifact.Type type : currentCase.getArtifactTypes()) {
                 artifactTypes.add(type.getTypeName());
             }
@@ -603,7 +603,7 @@ void populateAttributes() {
         Set<String> attributeTypes = scanRulesForAttributes();
 
         try {
-            SleuthkitCase currentCase = Case.getCurrentOpenCase().getSleuthkitCase();
+            SleuthkitCase currentCase = Case.getCurrentCaseThrows().getSleuthkitCase();
             for (BlackboardAttribute.Type type : currentCase.getAttributeTypes()) {
                 attributeTypes.add(type.getTypeName());
                 attributeTypeMap.put(type.getTypeName(), type.getValueType());
diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/AddMemoryImageTask.java b/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/AddMemoryImageTask.java
index aa7aeabba6c51dd56d1a1d2b51ebf8c73c9b5df4..bcae2b3153d2e984312be94c80e530c6f61ac191 100644
--- a/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/AddMemoryImageTask.java
+++ b/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/AddMemoryImageTask.java
@@ -145,7 +145,7 @@ public void run() {
     private Image addImageToCase() throws NoCurrentCaseException, TskCoreException {
         progressMonitor.setProgressText(Bundle.AddMemoryImageTask_progressMessage_addingImageFile( memoryImagePath));
 
-        SleuthkitCase caseDatabase = Case.getCurrentOpenCase().getSleuthkitCase();
+        SleuthkitCase caseDatabase = Case.getCurrentCaseThrows().getSleuthkitCase();
         caseDatabase.acquireSingleUserCaseWriteLock();
         try {
             /*
diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/MemoryDSInputPanel.java b/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/MemoryDSInputPanel.java
index ce51e1121bde202176664ff79b93e308fe44cf74..a26136fd1a5df28118230353422c802b0d050d2d 100644
--- a/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/MemoryDSInputPanel.java
+++ b/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/MemoryDSInputPanel.java
@@ -421,7 +421,7 @@ boolean validatePanel() {
     })
     private void warnIfPathIsInvalid(String path) {
         try {
-            if (!PathValidator.isValid(path, Case.getCurrentOpenCase().getCaseType())) {
+            if (!PathValidator.isValid(path, Case.getCurrentCaseThrows().getCaseType())) {
                 errorLabel.setVisible(true);
                 errorLabel.setText(Bundle.MemoryDSInputPanel_errorMsg_dataSourcePathOnCdrive());
             }
diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/VolatilityProcessor.java b/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/VolatilityProcessor.java
index a66c760cf0e3fceefe388b493efe3855efaa5fc4..bff999c810ded49cfb96dcff73b1998c9b9e7c2b 100644
--- a/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/VolatilityProcessor.java
+++ b/Experimental/src/org/sleuthkit/autopsy/experimental/volatilityDSP/VolatilityProcessor.java
@@ -108,7 +108,7 @@ void run() throws VolatilityProcessorException {
         this.errorMsgs.clear();
 
         try {
-            this.currentCase = Case.getCurrentOpenCase();
+            this.currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             throw new VolatilityProcessorException(Bundle.VolatilityProcessor_progressMessage_noCurrentCase(), ex);
         }
diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java
index c21b65962e0977f04278449b5b37e7ad5d1d4bf9..c8837fa13be619794f78e80c0e78516560dc887e 100644
--- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java
+++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java
@@ -194,7 +194,7 @@ void setStale(Boolean b) {
             stale.set(b);
         });
         try {
-            new PerCaseProperties(Case.getCurrentOpenCase()).setConfigSetting(ImageGalleryModule.getModuleName(), PerCaseProperties.STALE, b.toString());
+            new PerCaseProperties(Case.getCurrentCaseThrows()).setConfigSetting(ImageGalleryModule.getModuleName(), PerCaseProperties.STALE, b.toString());
         } catch (NoCurrentCaseException ex) {
             Logger.getLogger(ImageGalleryController.class.getName()).log(Level.WARNING, "Exception while getting open case."); //NON-NLS
         }
@@ -214,7 +214,7 @@ private ImageGalleryController() {
         listeningEnabled.addListener((observable, oldValue, newValue) -> {
             try {
                 //if we just turned on listening and a case is open and that case is not up to date
-                if (newValue && !oldValue && ImageGalleryModule.isDrawableDBStale(Case.getCurrentOpenCase())) {
+                if (newValue && !oldValue && ImageGalleryModule.isDrawableDBStale(Case.getCurrentCaseThrows())) {
                     //populate the db
                     queueDBTask(new CopyAnalyzedFiles(instance, db, sleuthKitCase));
                 }
diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryOptionsPanel.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryOptionsPanel.java
index ab559f5dc1c38304c4de6827e570e86035168b4a..beb2bc0a3d38cd9755facab59cea07cea71fc746 100644
--- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryOptionsPanel.java
+++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryOptionsPanel.java
@@ -189,7 +189,7 @@ void load() {
         try {
             if (IngestManager.getInstance().isIngestRunning() == false) {
                 enabledForCaseBox.setEnabled(true);
-                enabledForCaseBox.setSelected(ImageGalleryModule.isEnabledforCase(Case.getCurrentOpenCase()));
+                enabledForCaseBox.setSelected(ImageGalleryModule.isEnabledforCase(Case.getCurrentCaseThrows()));
             } else {
                 enabledForCaseBox.setEnabled(false);
                 enabledForCaseBox.setSelected(enabledByDefaultBox.isSelected());
@@ -204,7 +204,7 @@ void load() {
     void store() {
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             Logger.getLogger(ImageGalleryOptionsPanel.class.getName()).log(Level.SEVERE, "Exception while getting open case.", ex); //NON-NLS
             return;
diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteTagAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteTagAction.java
index 9e665e4f0112f1bb63047497e97d4eebee03f6d4..efe279bba370d071c14f735518749fa77bea8af4 100644
--- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteTagAction.java
+++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/DeleteTagAction.java
@@ -123,7 +123,7 @@ private static class TagMenu extends Menu {
 
             try {
                 List<ContentTag> existingTagsList
-                        = Case.getCurrentOpenCase().getServices().getTagsManager()
+                        = Case.getCurrentCaseThrows().getServices().getTagsManager()
                         .getContentTagsByContent(file);
 
                 Collection<TagName> tagNamesList
diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenAction.java
index 359bdf2c57e691137219af36dc622008ca71d6ba..e10a67979233b7648d949db45bb2e08784bbf9d7 100644
--- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenAction.java
+++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenAction.java
@@ -109,7 +109,7 @@ public OpenAction() {
     public boolean isEnabled() {
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             return false;
         }
@@ -154,7 +154,7 @@ public void performAction() {
         //check case
         final Case currentCase;
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex);
             return;
@@ -188,7 +188,7 @@ public void performAction() {
 
     private boolean tooManyFiles() {
         try {
-            return FILE_LIMIT < Case.getCurrentOpenCase().getSleuthkitCase().countFilesWhere("1 = 1");
+            return FILE_LIMIT < Case.getCurrentCaseThrows().getSleuthkitCase().countFilesWhere("1 = 1");
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Can not open image gallery with no case open.", ex);
         } catch (TskCoreException ex) {
diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java
index 620ac5db91acdbd77349963a12dd16c999588713..34c9d5a4c5e2b68ba8ed4e2998ee6c86db24eee9 100644
--- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java
+++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableFile.java
@@ -75,7 +75,7 @@ public static DrawableFile create(AbstractFile abstractFileById, boolean analyze
     }
 
     public static DrawableFile create(Long id, boolean analyzed) throws TskCoreException, NoCurrentCaseException {
-        return create(Case.getCurrentOpenCase().getSleuthkitCase().getAbstractFileById(id), analyzed);
+        return create(Case.getCurrentCaseThrows().getSleuthkitCase().getAbstractFileById(id), analyzed);
     }
 
     private SoftReference<Image> imageRef;
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ArtifactTextExtractor.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ArtifactTextExtractor.java
index da1003522aec63ba7bd67eb14342d8427316033e..a2724e72da31abdcd4a04912bf543a5a58d614ca 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ArtifactTextExtractor.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ArtifactTextExtractor.java
@@ -58,7 +58,7 @@ static Content getDataSource(BlackboardArtifact artifact) throws TskCoreExceptio
 
         Case currentCase;
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ignore) {
             // thorown by Case.getCurrentOpenCase() if currentCase is null
             return null;
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentViewer.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentViewer.java
index 18729b07b687fed05735a4e05a3eae723368ec02..be89109329f259cad24ac1ef8a460e0a15e72001 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentViewer.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/ExtractedContentViewer.java
@@ -220,7 +220,7 @@ static private IndexedText getRawArtifactText(BlackboardArtifact artifact) throw
                 BlackboardAttribute attribute = artifact.getAttribute(TSK_ASSOCIATED_ARTIFACT_TYPE);
                 if (attribute != null) {
                     long artifactId = attribute.getValueLong();
-                    BlackboardArtifact associatedArtifact = Case.getCurrentOpenCase().getSleuthkitCase().getBlackboardArtifact(artifactId);
+                    BlackboardArtifact associatedArtifact = Case.getCurrentCaseThrows().getSleuthkitCase().getBlackboardArtifact(artifactId);
                     rawArtifactText = new RawText(associatedArtifact, associatedArtifact.getArtifactID());
 
                 }
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordHit.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordHit.java
index b3cebcd9794b2b1b2f321cfe03c8b8c59f89fac3..c147618558b355a5d0a9f6112a8b6264f3ce0e58 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordHit.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordHit.java
@@ -119,7 +119,7 @@ long getContentID() throws TskCoreException {
             // If the hit was in an artifact, look up the source content for the artifact.
             SleuthkitCase caseDb;
             try {
-                caseDb = Case.getCurrentOpenCase().getSleuthkitCase();
+                caseDb = Case.getCurrentCaseThrows().getSleuthkitCase();
             } catch (NoCurrentCaseException ex) {
                 throw new TskCoreException("Exception while getting open case.", ex);
             }
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java
index c1eb0bb60ab65e45629ced961b0fee3aab8d3269..ad16ec4461489b9bca8b1cac96880ed54ca267ed 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java
@@ -184,7 +184,7 @@ public void startUp(IngestJobContext context) throws IngestModuleException {
         // if first instance of this module for this job then check the server and existence of keywords
         Case openCase;
         try {
-            openCase = Case.getCurrentOpenCase();
+            openCase = Case.getCurrentCaseThrows();
         } catch (NoCurrentCaseException ex) {
             throw new IngestModuleException(Bundle.KeywordSearchIngestModule_noOpenCase_errMsg(), ex);
         }
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java
index 061b1c625885314eb0e6eb5c75cb19d15dfbbf40..d2676a4ed36213da7cacd02d73766e3088d2782b 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchResultFactory.java
@@ -148,7 +148,7 @@ private boolean createFlatKeys(KeywordSearchQuery queryRequest, List<KeyValue> t
         }
         SleuthkitCase tskCase;
         try {
-            tskCase = Case.getCurrentOpenCase().getSleuthkitCase();
+            tskCase = Case.getCurrentCaseThrows().getSleuthkitCase();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "There was no case open.", ex); //NON-NLS
             return false;
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/QueryResults.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/QueryResults.java
index 8ceee790621b394d7b24d40fca100e2bdf1542bc..e27a01b06363ae924ad88f2fac565f26b9f8c96a 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/QueryResults.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/QueryResults.java
@@ -213,7 +213,7 @@ void process(ProgressHandle progress, ProgressContributor subProgress, SwingWork
                  */
                 Content content = null;
                 try {
-                    SleuthkitCase tskCase = Case.getCurrentOpenCase().getSleuthkitCase();
+                    SleuthkitCase tskCase = Case.getCurrentCaseThrows().getSleuthkitCase();
                     content = tskCase.getContentById(hit.getContentID());
                 } catch (TskCoreException | NoCurrentCaseException tskCoreException) {
                     logger.log(Level.SEVERE, "Failed to get text source object for ", tskCoreException); //NON-NLS
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/RegexQuery.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/RegexQuery.java
index 3ab9d2751e66f1fe96f6e136d879f6c24f427138..c679c653eb60ac7134099c3350d53379229f8d2a 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/RegexQuery.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/RegexQuery.java
@@ -591,7 +591,7 @@ private void createCCNAccount(Content content, Keyword foundKeyword, KeywordHit
          * Create an account instance.
          */
         try {
-            AccountFileInstance ccAccountInstance = Case.getCurrentOpenCase().getSleuthkitCase().getCommunicationsManager().createAccountFileInstance(Account.Type.CREDIT_CARD, ccnAttribute.getValueString() , MODULE_NAME, content);
+            AccountFileInstance ccAccountInstance = Case.getCurrentCaseThrows().getSleuthkitCase().getCommunicationsManager().createAccountFileInstance(Account.Type.CREDIT_CARD, ccnAttribute.getValueString() , MODULE_NAME, content);
             
             ccAccountInstance.addAttributes(attributes);
 
diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/TermsComponentQuery.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/TermsComponentQuery.java
index 7ab63167bee389c57f82e67de8b121ff4c0ea716..7b3893df9869798fa3a27e8c110ec0807feec150 100644
--- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/TermsComponentQuery.java
+++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/TermsComponentQuery.java
@@ -495,7 +495,7 @@ private void createCCNAccount(Content content, KeywordHit hit, String snippet, S
          * Create an account.
          */
         try {
-            AccountFileInstance ccAccountInstance = Case.getCurrentOpenCase().getSleuthkitCase().getCommunicationsManager().createAccountFileInstance(Account.Type.CREDIT_CARD, ccnAttribute.getValueString(), MODULE_NAME, content);
+            AccountFileInstance ccAccountInstance = Case.getCurrentCaseThrows().getSleuthkitCase().getCommunicationsManager().createAccountFileInstance(Account.Type.CREDIT_CARD, ccnAttribute.getValueString(), MODULE_NAME, content);
             ccAccountInstance.addAttributes(attributes);
         } catch (TskCoreException | NoCurrentCaseException ex) {
             LOGGER.log(Level.SEVERE, "Error creating CCN account instance", ex); //NON-NLS
diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java
index 2a40e4270c5b7ce5e36174258e1618a4b3685780..8ec5b79d567bc9042f56370be0f9aa827e25368a 100644
--- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java
+++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Extract.java
@@ -53,7 +53,7 @@ abstract class Extract {
 
     final void init() throws IngestModuleException {
         try {
-            currentCase = Case.getCurrentOpenCase();
+            currentCase = Case.getCurrentCaseThrows();
             tskCase = currentCase.getSleuthkitCase();
         } catch (NoCurrentCaseException ex) {
             throw new IngestModuleException(Bundle.Extract_indexError_message(), ex);
@@ -126,7 +126,7 @@ protected BlackboardArtifact addArtifact(BlackboardArtifact.ARTIFACT_TYPE type,
                "Extract.noOpenCase.errMsg=No open case available."})
     void indexArtifact(BlackboardArtifact bbart) {
         try {
-            Blackboard blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            Blackboard blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
             // index the artifact for keyword search
             blackboard.indexArtifact(bbart);
         } catch (Blackboard.BlackboardException ex) {
diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractIE.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractIE.java
index 5b71823731cb7581fcecb2f4ba33e72cfc5d47c8..1af8761144ce7175912a4511d732bbedc7b0c81a 100644
--- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractIE.java
+++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractIE.java
@@ -75,7 +75,7 @@ class ExtractIE extends Extract {
 
     ExtractIE() throws NoCurrentCaseException {
         moduleName = NbBundle.getMessage(ExtractIE.class, "ExtractIE.moduleName.text");
-        moduleTempResultsDir = RAImageIngestModule.getRATempPath(Case.getCurrentOpenCase(), "IE") + File.separator + "results"; //NON-NLS
+        moduleTempResultsDir = RAImageIngestModule.getRATempPath(Case.getCurrentCaseThrows(), "IE") + File.separator + "results"; //NON-NLS
         JAVA_PATH = PlatformUtil.getJavaPath();
     }
 
diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Util.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Util.java
index a10ad6f9f4c387055cc3b1c314b3188738e87507..a47d33f22a050ef565cee5b93a64efb85b4edb94 100644
--- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Util.java
+++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Util.java
@@ -193,7 +193,7 @@ public static long findID(Content dataSource, String path) {
         parent_path = parent_path.substring(0, index);
         List<AbstractFile> files = null;
         try {
-            FileManager fileManager = Case.getCurrentOpenCase().getServices().getFileManager();
+            FileManager fileManager = Case.getCurrentCaseThrows().getServices().getFileManager();
             files = fileManager.findFiles(dataSource, name, parent_path);
         } catch (TskCoreException | NoCurrentCaseException ex) {
             logger.log(Level.WARNING, "Error fetching 'index.data' files for Internet Explorer history."); //NON-NLS
diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java
index 77a01139cd37ec0254007e552099d212ac3dfdbd..bfa1542ce11ea36f8a0ee3a6a38ca058ce6023d9 100644
--- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java
+++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/ThunderbirdMboxFileIngestModule.java
@@ -79,7 +79,7 @@ public final class ThunderbirdMboxFileIngestModule implements FileIngestModule {
     public void startUp(IngestJobContext context) throws IngestModuleException {
         this.context = context;
         try {
-            fileManager = Case.getCurrentOpenCase().getServices().getFileManager();
+            fileManager = Case.getCurrentCaseThrows().getServices().getFileManager();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex);
             throw new IngestModuleException(Bundle.ThunderbirdMboxFileIngestModule_noOpenCase_errMsg(), ex);
@@ -90,7 +90,7 @@ public void startUp(IngestJobContext context) throws IngestModuleException {
     public ProcessResult process(AbstractFile abstractFile) {
 
         try {
-            blackboard = Case.getCurrentOpenCase().getServices().getBlackboard();
+            blackboard = Case.getCurrentCaseThrows().getServices().getBlackboard();
         } catch (NoCurrentCaseException ex) {
             logger.log(Level.SEVERE, "Exception while getting open case.", ex);
             return ProcessResult.ERROR;
@@ -307,7 +307,7 @@ private ProcessResult processMBox(AbstractFile abstractFile) {
      * @return the temporary folder
      */
     static String getTempPath() throws NoCurrentCaseException {
-        String tmpDir = Case.getCurrentOpenCase().getTempDirectory() + File.separator
+        String tmpDir = Case.getCurrentCaseThrows().getTempDirectory() + File.separator
                 + "EmailParser"; //NON-NLS
         File dir = new File(tmpDir);
         if (dir.exists() == false) {
@@ -323,7 +323,7 @@ static String getTempPath() throws NoCurrentCaseException {
      * @return the module output folder
      */
     static String getModuleOutputPath() throws NoCurrentCaseException {
-        String outDir = Case.getCurrentOpenCase().getModuleDirectory() + File.separator
+        String outDir = Case.getCurrentCaseThrows().getModuleDirectory() + File.separator
                 + EmailParserModuleFactory.getModuleName();
         File dir = new File(outDir);
         if (dir.exists() == false) {
@@ -339,7 +339,7 @@ static String getModuleOutputPath() throws NoCurrentCaseException {
      * @return the relative path of the module output folder
      */
     static String getRelModuleOutputPath() throws NoCurrentCaseException {
-        return Case.getCurrentOpenCase().getModuleOutputDirectoryRelativePath() + File.separator
+        return Case.getCurrentCaseThrows().getModuleOutputDirectoryRelativePath() + File.separator
                 + EmailParserModuleFactory.getModuleName();
     }
 
@@ -460,7 +460,7 @@ private BlackboardArtifact addArtifact(EmailMessage email, AbstractFile abstract
         
         AccountFileInstance senderAccountInstance = null;
 
-        Case openCase = Case.getCurrentOpenCase();
+        Case openCase = Case.getCurrentCaseThrows();
         
         if (senderAddressList.size() == 1) {
             senderAddress = senderAddressList.get(0);