From 4b55817a8456c3768e50788b9fef7f606ff4eaa3 Mon Sep 17 00:00:00 2001
From: apriestman <apriestman@basistech.com>
Date: Tue, 9 Jun 2020 19:22:20 -0400
Subject: [PATCH] Added exception firewall

---
 .../src/org/sleuthkit/datamodel/JniDbHelper.java  | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java b/bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java
index a282d8d41..dc41ea72b 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java
@@ -125,7 +125,13 @@ long addImageInfo(int type, long ssize, String timezone,
             }
             commitTransaction();
             
-			addDataSourceCallbacks.onDataSourceAdded(objId);
+			try {
+				addDataSourceCallbacks.onDataSourceAdded(objId);
+			} catch (Exception ex) {
+				// Exception firewall - we do not want to return to the native code without
+				// passing it the data source ID
+				logger.log(Level.SEVERE, "Unexpected error from data source added callback", ex);
+			}
             return objId;
         } catch (TskCoreException ex) {
             logger.log(Level.SEVERE, "Error adding image to the database", ex);
@@ -370,7 +376,12 @@ private long addBatchedFilesToDb() {
                 }
             }
             commitTransaction();
-            addDataSourceCallbacks.onFilesAdded(newObjIds);
+			try {
+				addDataSourceCallbacks.onFilesAdded(newObjIds);
+			} catch (Exception ex) {
+				// Exception firewall to prevent unexpected return to the native code
+				logger.log(Level.SEVERE, "Unexpected error from files added callback", ex);
+			}
         } catch (TskCoreException ex) {
             logger.log(Level.SEVERE, "Error adding batched files to database", ex);
             revertTransaction();
-- 
GitLab