From e3f02d804d23ba961ab0bd13f810dfe71dd629ac Mon Sep 17 00:00:00 2001
From: Eugene Livis <elivis@basistech.com>
Date: Tue, 22 Sep 2020 12:46:26 -0400
Subject: [PATCH] Performance improvement

---
 Core/src/org/sleuthkit/autopsy/casemodule/Case.java | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java
index 3ad14f6137..395310e600 100644
--- a/Core/src/org/sleuthkit/autopsy/casemodule/Case.java
+++ b/Core/src/org/sleuthkit/autopsy/casemodule/Case.java
@@ -1468,9 +1468,16 @@ public String getTextIndexName() {
      */
     public boolean hasData() {
         boolean hasDataSources = false;
-        try {
-            hasDataSources = (getDataSources().size() > 0);
-        } catch (TskCoreException ex) {
+        String query = "SELECT count(*) AS count FROM tsk_objects WHERE par_obj_id IS NULL";
+        try (SleuthkitCase.CaseDbQuery dbQuery = caseDb.executeQuery(query)) {
+            ResultSet resultSet = dbQuery.getResultSet();
+            if (resultSet.next()) {
+                long numDataSources = resultSet.getLong("count");
+                if (numDataSources > 0) {
+                    hasDataSources = true;
+                }
+            }
+        } catch (TskCoreException | SQLException ex) {
             logger.log(Level.SEVERE, "Error accessing case database", ex); //NON-NLS
         }
         return hasDataSources;
-- 
GitLab