From a341eee92adb7da69f5db766240fe50981dfc410 Mon Sep 17 00:00:00 2001 From: millmanorama Date: Thu, 27 Sep 2018 14:32:34 +0200 Subject: [PATCH] check for table before checking for column to avoid "query doesn't return ResultSet"error --- .../imagegallery/datamodel/DrawableDB.java | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java index 4c3b4cb29e..ee447f66ba 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java @@ -379,13 +379,26 @@ public final class DrawableDB { } private static boolean hasDataSourceObjIdColumn(Path dbPath) throws TskCoreException { - String sql = "PRAGMA table_info('drawable_files')"; //NON-NLS try (Connection con = DriverManager.getConnection("jdbc:sqlite:" + dbPath.toString()); //NON-NLS - Statement stmt = con.createStatement(); - ResultSet results = stmt.executeQuery(sql);) { - while (results.next()) { - if ("data_source_obj_id".equals(results.getString("name"))) { - return true; + Statement stmt = con.createStatement();) { + boolean tableExists = false; + try (ResultSet results = stmt.executeQuery("SELECT name FROM sqlite_master WHERE type='table'");) {//NON-NLS + while (results.next()) { + if ("drawable_files".equals(results.getString("name"))) { + tableExists = true; + break; + } + } + } + if (false == tableExists) { + return false; + } else { + try (ResultSet results = stmt.executeQuery("PRAGMA table_info('drawable_files')");) { //NON-NLS + while (results.next()) { + if ("data_source_obj_id".equals(results.getString("name"))) { + return true; + } + } } }