From e5955ac5429f47a61817d8d58478a19c45f5452d Mon Sep 17 00:00:00 2001
From: Richard Cordovano <rcordovano@basistech.com>
Date: Mon, 7 May 2018 10:46:24 -0400
Subject: [PATCH] Case.getCurrentOpenCase => getCurrentCaseThrows

---
 .../AddBlackboardArtifactTagAction.java       |  2 +-
 .../autopsy/actions/AddBookmarkTagAction.java |  2 +-
 .../autopsy/actions/AddContentTagAction.java  |  2 +-
 .../autopsy/actions/AddTagAction.java         |  4 ++--
 .../DeleteBlackboardArtifactTagAction.java    |  2 +-
 .../actions/DeleteContentTagAction.java       |  2 +-
 ...DeleteFileBlackboardArtifactTagAction.java |  6 ++---
 .../actions/DeleteFileContentTagAction.java   |  6 ++---
 .../actions/GetTagNameAndCommentDialog.java   |  2 +-
 .../autopsy/actions/GetTagNameDialog.java     |  6 ++---
 .../autopsy/actions/OpenLogFolderAction.java  |  2 +-
 .../actions/OpenOutputFolderAction.java       |  2 +-
 .../autopsy/casemodule/AddImageTask.java      |  2 +-
 .../AddImageWizardAddingProgressPanel.java    |  6 ++---
 .../AddImageWizardSelectDspVisual.java        |  4 ++--
 .../autopsy/casemodule/AddLocalFilesTask.java |  2 +-
 .../sleuthkit/autopsy/casemodule/Case.java    | 21 +++++++++-------
 .../autopsy/casemodule/CaseDeleteAction.java  |  2 +-
 .../casemodule/CaseInformationPanel.java      |  2 +-
 .../casemodule/CasePropertiesPanel.java       |  2 +-
 .../autopsy/casemodule/ImageDSProcessor.java  |  2 +-
 .../autopsy/casemodule/ImageFilePanel.java    |  2 +-
 .../casemodule/IngestJobInfoPanel.java        |  4 ++--
 .../autopsy/casemodule/LocalDiskPanel.java    |  2 +-
 .../casemodule/LocalFilesDSProcessor.java     |  2 +-
 .../autopsy/casemodule/LocalFilesPanel.java   |  2 +-
 .../casemodule/LogicalEvidenceFilePanel.java  |  2 +-
 .../casemodule/NewCaseWizardAction.java       |  4 ++--
 .../OptionalCasePropertiesPanel.java          |  8 +++----
 .../autopsy/casemodule/RecentCases.java       |  4 ++--
 .../BlackBoardArtifactTagAddedEvent.java      |  2 +-
 .../events/ContentTagAddedEvent.java          |  2 +-
 .../events/DataSourceAddedEvent.java          |  2 +-
 .../casemodule/events/ReportAddedEvent.java   |  2 +-
 .../services/TagNameDefinition.java           |  2 +-
 .../casemodule/services/TagOptionsPanel.java  |  2 +-
 .../casemodule/services/TagsManager.java      | 10 ++++----
 .../DataContentViewerOtherCases.java          |  8 +++----
 .../datamodel/CorrelationDataSource.java      |  2 +-
 .../datamodel/EamArtifactUtil.java            | 12 +++++-----
 .../eventlisteners/CaseEventListener.java     | 18 +++++++-------
 .../eventlisteners/IngestEventsListener.java  |  2 +-
 .../ingestmodule/IngestModule.java            |  4 ++--
 .../AccountDeviceInstanceKey.java             |  2 +-
 .../communications/AccountsBrowser.java       |  2 +-
 .../autopsy/communications/FiltersPanel.java  |  2 +-
 .../communications/VisualizationPanel.java    |  2 +-
 .../autopsy/contentviewers/PListViewer.java   |  2 +-
 .../autopsy/contentviewers/SQLiteViewer.java  |  4 ++--
 .../DataContentTopComponent.java              |  2 +-
 .../corecomponents/DataResultPanel.java       |  4 ++--
 .../DataResultTopComponent.java               |  2 +-
 .../autopsy/coreutils/ImageUtils.java         |  2 +-
 .../autopsy/coreutils/VideoUtils.java         |  2 +-
 .../datamodel/AbstractAbstractFileNode.java   |  2 +-
 .../datamodel/AbstractContentNode.java        |  2 +-
 .../datamodel/BlackboardArtifactNode.java     |  8 +++----
 .../autopsy/datamodel/DataSourcesNode.java    |  2 +-
 .../autopsy/datamodel/DeletedContent.java     |  4 ++--
 .../autopsy/datamodel/EmailExtracted.java     |  4 ++--
 .../autopsy/datamodel/ExtractedContent.java   |  8 +++----
 .../sleuthkit/autopsy/datamodel/FileSize.java |  4 ++--
 .../datamodel/FileTypesByExtension.java       |  2 +-
 .../datamodel/FileTypesByMimeType.java        |  2 +-
 .../autopsy/datamodel/HashsetHits.java        |  4 ++--
 .../autopsy/datamodel/ImageNode.java          |  2 +-
 .../autopsy/datamodel/InterestingHits.java    |  4 ++--
 .../autopsy/datamodel/KeywordHits.java        |  4 ++--
 .../sleuthkit/autopsy/datamodel/Reports.java  |  6 ++---
 .../org/sleuthkit/autopsy/datamodel/Tags.java | 16 ++++++-------
 .../datamodel/VirtualDirectoryNode.java       |  4 ++--
 .../autopsy/datamodel/accounts/Accounts.java  | 20 ++++++++--------
 .../datasourceprocessors/AddRawImageTask.java |  2 +-
 .../datasourceprocessors/RawDSInputPanel.java |  2 +-
 .../autopsy/diagnostics/PerformancePanel.java |  6 ++---
 .../DirectoryTreeTopComponent.java            |  6 ++---
 .../directorytree/ExternalViewerAction.java   |  2 +-
 .../autopsy/directorytree/ExtractAction.java  |  4 ++--
 .../directorytree/ExtractUnallocAction.java   |  6 ++---
 .../ViewSourceArtifactAction.java             |  2 +-
 .../SampleDataSourceIngestModule.java         |  2 +-
 .../autopsy/filesearch/DateSearchFilter.java  |  4 ++--
 .../autopsy/filesearch/FileSearchPanel.java   |  2 +-
 .../autopsy/imagewriter/ImageWriter.java      |  4 ++--
 .../autopsy/ingest/DataSourceIngestJob.java   |  4 ++--
 .../autopsy/ingest/GetFilesCountVisitor.java  |  2 +-
 .../ingest/IngestJobSettingsPanel.java        |  2 +-
 .../autopsy/ingest/IngestManager.java         |  6 ++---
 .../ingest/IngestMessageDetailsPanel.java     |  2 +-
 .../autopsy/ingest/IngestMonitor.java         |  2 +-
 .../autopsy/ingest/IngestServices.java        |  4 ++--
 .../autopsy/ingest/RunIngestAction.java       |  2 +-
 .../autopsy/ingest/RunIngestSubMenu.java      |  2 +-
 .../ingest/events/BlackboardPostEvent.java    |  2 +-
 .../ingest/events/ContentChangedEvent.java    |  2 +-
 .../events/DataSourceAnalysisEvent.java       |  2 +-
 .../ingest/events/FileAnalyzedEvent.java      |  2 +-
 .../menuactions/DataContentDynamicMenu.java   |  2 +-
 .../menuactions/DataExplorerDynamicMenu.java  |  2 +-
 .../EmbeddedFileExtractorIngestModule.java    |  2 +-
 .../ExtractArchiveWithPasswordAction.java     |  4 ++--
 .../MSOfficeEmbeddedContentExtractor.java     |  2 +-
 .../SevenZipExtractor.java                    |  6 ++---
 .../EncryptionDetectionFileIngestModule.java  |  2 +-
 .../exif/ExifParserFileIngestModule.java      |  2 +-
 .../FileExtMismatchIngestModule.java          |  2 +-
 .../filetypeid/FileTypeIdIngestModule.java    |  2 +-
 .../hashdatabase/HashDbIngestModule.java      |  4 ++--
 .../modules/hashdatabase/HashDbSearcher.java  |  6 ++---
 .../autopsy/modules/iOS/CallLogAnalyzer.java  |  6 ++---
 .../autopsy/modules/iOS/ContactAnalyzer.java  |  4 ++--
 .../modules/iOS/TextMessageAnalyzer.java      |  6 ++---
 .../FilesIdentifierIngestModule.java          |  2 +-
 .../PhotoRecCarverFileIngestModule.java       |  2 +-
 .../PhotoRecCarverOutputParser.java           |  2 +-
 .../autopsy/modules/stix/EvalAccountObj.java  |  2 +-
 .../autopsy/modules/stix/EvalAddressObj.java  |  2 +-
 .../autopsy/modules/stix/EvalDomainObj.java   |  2 +-
 .../autopsy/modules/stix/EvalFileObj.java     |  2 +-
 .../modules/stix/EvalNetworkShareObj.java     |  2 +-
 .../autopsy/modules/stix/EvalRegistryObj.java |  4 ++--
 .../autopsy/modules/stix/EvalSystemObj.java   |  2 +-
 .../autopsy/modules/stix/EvalURIObj.java      |  2 +-
 .../modules/stix/EvalURLHistoryObj.java       |  4 ++--
 .../modules/stix/EvaluatableObject.java       |  2 +-
 .../modules/stix/STIXReportModule.java        |  2 +-
 .../modules/stix/StixArtifactData.java        |  4 ++--
 .../vmextractor/VMExtractorIngestModule.java  | 10 ++++----
 .../report/ArtifactSelectionDialog.java       |  2 +-
 .../autopsy/report/FileReportText.java        |  2 +-
 .../autopsy/report/ReportBodyFile.java        |  4 ++--
 .../sleuthkit/autopsy/report/ReportExcel.java |  4 ++--
 .../autopsy/report/ReportGenerator.java       |  4 ++--
 .../sleuthkit/autopsy/report/ReportHTML.java  |  4 ++--
 .../sleuthkit/autopsy/report/ReportKML.java   |  4 ++--
 .../autopsy/report/ReportVisualPanel2.java    |  4 ++--
 .../autopsy/report/TableReportGenerator.java  | 24 +++++++++----------
 .../taggedhashes/AddTaggedHashesToHashDb.java |  2 +-
 .../AddTaggedHashesToHashDbConfigPanel.java   |  2 +-
 .../autopsy/test/CustomArtifactType.java      |  2 +-
 ...nterestingArtifactCreatorIngestModule.java |  4 ++--
 .../autopsy/timeline/OpenTimelineAction.java  |  4 ++--
 .../autopsy/timeline/TimeLineController.java  |  2 +-
 .../actions/SaveSnapshotAsReport.java         |  2 +-
 .../timeline/explorernodes/EventNode.java     |  2 +-
 .../datamodel/CentralRepoDatamodelTest.java   |  4 ++--
 .../autopsy/ingest/IngestFileFiltersTest.java |  2 +-
 .../autoingest/AddArchiveTask.java            |  2 +-
 .../autoingest/ArchiveFilePanel.java          |  2 +-
 .../autoingest/AutoIngestManager.java         |  2 +-
 .../autoingest/FileExportRuleSet.java         |  4 ++--
 .../experimental/autoingest/FileExporter.java |  4 ++--
 .../autoingest/FileExporterSettingsPanel.java |  4 ++--
 .../volatilityDSP/AddMemoryImageTask.java     |  2 +-
 .../volatilityDSP/MemoryDSInputPanel.java     |  2 +-
 .../volatilityDSP/VolatilityProcessor.java    |  2 +-
 .../imagegallery/ImageGalleryController.java  |  4 ++--
 .../ImageGalleryOptionsPanel.java             |  4 ++--
 .../imagegallery/actions/DeleteTagAction.java |  2 +-
 .../imagegallery/actions/OpenAction.java      |  6 ++---
 .../imagegallery/datamodel/DrawableFile.java  |  2 +-
 .../keywordsearch/ArtifactTextExtractor.java  |  2 +-
 .../keywordsearch/ExtractedContentViewer.java |  2 +-
 .../autopsy/keywordsearch/KeywordHit.java     |  2 +-
 .../KeywordSearchIngestModule.java            |  2 +-
 .../KeywordSearchResultFactory.java           |  2 +-
 .../autopsy/keywordsearch/QueryResults.java   |  2 +-
 .../autopsy/keywordsearch/RegexQuery.java     |  2 +-
 .../keywordsearch/TermsComponentQuery.java    |  2 +-
 .../autopsy/recentactivity/Extract.java       |  4 ++--
 .../autopsy/recentactivity/ExtractIE.java     |  2 +-
 .../autopsy/recentactivity/Util.java          |  2 +-
 .../ThunderbirdMboxFileIngestModule.java      | 12 +++++-----
 173 files changed, 319 insertions(+), 314 deletions(-)

diff --git a/Core/src/org/sleuthkit/autopsy/actions/AddBlackboardArtifactTagAction.java b/Core/src/org/sleuthkit/autopsy/actions/AddBlackboardArtifactTagAction.java
index f4cd7e82d6..7ad185ac8e 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 d4c7b8adfe..d6090b2ace 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 de8f5838fd..602789735d 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 d489183032..7d0212b51c 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 569a8c6694..18ae9ac7e5 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 01c981d7bc..07cce02bfc 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 1e2be550bf..008cb419ff 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 88253181d7..f336cd888f 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 d106f3c300..51665012cd 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 ed421d086a..21785f2003 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 06287ea65a..fb178c797d 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 1cbeb50d64..29b8d67960 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 8b92eab6fe..cbcb06c936 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 8023384190..6c6097717e 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 bb7c8fceb1..43bfed1caa 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 cb12b2a5f3..feae1ddb6b 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 765d604ce3..61f54b87af 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 a55ac143cb..a389aca979 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 73b61c2c7a..b8542552c4 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 b19eca4469..cc3c682830 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 2e8d0cff11..2db469e371 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 a6e777ccf6..56d5e67839 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 d117e8e12e..3c7d6593db 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 51be317e5d..fc702076a0 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 e344e3a399..1e90777367 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 ba4bb9685a..3ab4088094 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 e4b8677426..d38106a0ab 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 2f3f947366..2b85a74333 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 129aca5a78..4625727d94 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 ecad0b7450..ccf592ca67 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 71a77de147..8c2a2d6dfa 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 a553fdfffc..8e7ea629d7 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 721d3ac3b5..84a99ee8b2 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 72947aa170..7f35c625c5 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 9e9b671d2e..fb02e7d2d4 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 b65d7ac03f..419a92e8c9 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 ef3a61a186..f113a622fe 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 9da8d804a4..2a86e7c279 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 597826d11e..864bf50923 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 4d6c0675f7..69cad2abef 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 94457004cb..570f5bca06 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 8aee7ef319..46ebe75541 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 64899be83d..96486a8f5b 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 089d0a2fa1..2262e6af61 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 2fbf37d768..a0417855fe 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 2c941b771f..6cd46fbab4 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 efc5b2b911..8d0743b272 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 d12ecc99f8..6478114314 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 65c317269d..250b74f36a 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 e545115b62..6331d67023 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 641691bae8..be5176f78a 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 d95c222089..fcd451a4aa 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 f5c046cb63..11e92836ac 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 6621f6cab4..1ff258dade 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 d8632e6674..e5bee85c81 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 dca42b22cb..b4c34e5da7 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 6f0fd1306c..d86d91b672 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 698834058a..a0c3597b4d 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 912c00bb6f..4934d01ec7 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 f617aa53b6..8a2abb019b 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 a52a8bb7e4..68f1daf595 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 cfb9ddab95..b807c6575a 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 9df3af7a09..3dd3442bbd 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 3062a1a1b1..9ae6391ff7 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 2ae84768bd..a11ec9b0c4 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 e7c9f9c97e..b2e0aa9ca6 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 e857ff6760..2cc18aef1f 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 9a31841570..41a8862bc4 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 f635b0da08..b2f7667150 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 7773672c75..832741ddc9 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 9a1ae4297c..6d5efbd558 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 702de27090..7ea1795714 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 f283a26a66..f8ff559afd 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 320a6a6880..baf9b15223 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 57385244df..d50f31e383 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 c431f03b23..5fc6c814fa 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 137fe1224a..3451b073a3 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 7392454f35..2f45e44331 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 b834471d44..b0729d24c6 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 141d609969..c98c59901f 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 8d2ba6af79..9a1bd96cc7 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 854375448b..048ccd5f79 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 ee30802b5d..169b36d7ea 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 e1178d8104..71404c76e7 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 2d301aed09..c59b3f20bf 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 64c7ae1941..8796009f2a 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 b67e7b3318..405157b751 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 9ed5a6fd27..28a7c44474 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 3be012765c..17645ccb68 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 842b7474f7..16fa63554d 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 43c82ac686..01e86823c5 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 d5e0b36703..d18faeee7b 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 b8d18e4288..c03abd577b 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 d8055f05a6..7d57b420ab 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 4d555147a1..fbb842d9d2 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 d3b4c6277d..fb7d2f2f56 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 0c8f7f5b7c..42488c69de 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 8bb509fc27..b025cebf79 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 a196d25d9e..8dac009bf0 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 a906cb84a5..5e67e9da8b 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 27c927279c..722f211951 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 968e47a6b7..b123197f0a 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 a3799672c6..d09c170110 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 14302d2014..889a489baf 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 1f689d7d05..b0894cbdd9 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 d6174bfab4..6f2281c45d 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 e984acbde6..e342f06bbf 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 6c2bbf26fe..f4a08e3f72 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 6286f52b73..91d1d08e36 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 9ca636bdc9..ec8c84dc0b 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 3a33b6d6fe..1adb60d4dd 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 5256dba188..c6288f0933 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 ed3083fcea..88eea65dda 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 41f33020f6..e98e15a331 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 a30dba3c4e..967a3c41ab 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 b234e98e86..35bfd82eff 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 5dec0ed7c6..b37f9dd304 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 fcb52141a8..e57ac8e067 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 d0064ba5b8..c5b3bae881 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 a82ce9ea7f..7e6fa7c7b1 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 45ddd3f8bf..b5a4662ec6 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 43df781ad1..73a7b1449f 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 607d1c2367..0c0ddb6971 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 bac1d40f9a..5cf0b28213 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 a4775aac92..1fd7a7bed1 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 ff00ffc109..5daf23c217 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 39642a9cb8..6b0622f630 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 10d3dcb9a7..843b07a3d6 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 fc88f17389..50e9715a16 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 1dfef3622a..f96bad446b 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 afe551d9ed..4695418117 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 7b7907f3bf..3dcc416ef3 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 d2b4228f91..aecfe0661a 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 65ccb6d795..2f0cb5f770 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 a286384e19..3a092efc83 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 1b8d5d585c..98160874c9 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 1bcb6fecba..9d5d41c836 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 7829d0eedf..eb8b8a289f 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 e49c597414..06484468a4 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 9284ae888b..032f7da506 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 f4df2242d8..f3232ceb86 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 9111b205d0..362853db3b 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 cd5c7d5ba6..c1cd61e427 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 bf16dc32da..b7fe2de313 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 d7758c6a8d..71618c3161 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 e8947f1055..99dbd9204d 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 b52da4a331..940c3d062a 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 e25142fd7c..9830cecbe9 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 263b600d08..e0a5378444 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 b078f621d0..2f94ba3bd0 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 a8091c0e2b..399ae574ba 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 23fd8d0773..f129635f95 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 79cee64f07..cea7338f51 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 aa7aeabba6..bcae2b3153 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 ce51e1121b..a26136fd1a 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 a66c760cf0..bff999c810 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 c21b65962e..c8837fa13b 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 ab559f5dc1..beb2bc0a3d 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 9e665e4f01..efe279bba3 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 359bdf2c57..e10a679792 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 620ac5db91..34c9d5a4c5 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 da1003522a..a2724e72da 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 18729b07b6..be89109329 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 b3cebcd979..c147618558 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 c1eb0bb60a..ad16ec4461 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 061b1c6258..d2676a4ed3 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 8ceee79062..e27a01b063 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 3ab9d2751e..c679c653eb 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 7ab63167be..7b3893df98 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 2a40e4270c..8ec5b79d56 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 5b71823731..1af8761144 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 a10ad6f9f4..a47d33f22a 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 77a01139cd..bfa1542ce1 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);
-- 
GitLab