diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
index 0f8fb7c889864f012d2bd9c1a3bc158eadd8e3bb..42060e51aaa4229dd86c44740b18f0ccf96d0c6e 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
@@ -11699,6 +11699,12 @@ void executeUpdate(PreparedStatement statement) throws SQLException {
 		@Override
 		public void close() {
 			try {
+				for (PreparedStatement stmt:preparedStatements.values()) {
+					closeStatement(stmt);
+				}
+				for (PreparedStatement stmt:adHocPreparedStatements.values()) {
+					closeStatement(stmt);
+				}
 				connection.close();
 			} catch (SQLException ex) {
 				logger.log(Level.SEVERE, "Unable to close connection to case database", ex);
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
index 608123381cc53ad04dbdb90911b3875b90f3178e..fbdec24d6c0af560845382c3a8d68d436557b5ea 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
@@ -439,7 +439,7 @@ void free() throws TskCoreException {
 		 *                          case database.
 		 */
 		long addImageInfo(long deviceObjId, List<String> imageFilePaths, String timeZone, SleuthkitCase skCase) throws TskCoreException {
-			JniDbHelper dbHelper = new JniDbHelper(skCase, new DefaultAddDataSourceCallbacks());
+			TskCaseDbBridge dbHelper = new TskCaseDbBridge(skCase, new DefaultAddDataSourceCallbacks());
 			try {
 				long tskAutoDbPointer = initializeAddImgNat(dbHelper, timezoneLongToShort(timeZone), false, false, false);
 				runOpenAndAddImgNat(tskAutoDbPointer, UUID.randomUUID().toString(), imageFilePaths.toArray(new String[0]), imageFilePaths.size(), timeZone);				
@@ -486,7 +486,7 @@ public class AddImageProcess {
 			private long imageId = 0;
 			private boolean isCanceled;
 			private final SleuthkitCase skCase;
-			private JniDbHelper dbHelper;
+			private TskCaseDbBridge dbHelper;
 
 			/**
 			 * Constructs an object that encapsulates a multi-step process to
@@ -552,7 +552,7 @@ public void run(String deviceId, String[] imageFilePaths, int sectorSize) throws
 			 */
 			public void run(String deviceId, Image image, int sectorSize, 
 					AddDataSourceCallbacks addDataSourceCallbacks) throws TskCoreException, TskDataException {			
-				dbHelper = new JniDbHelper(skCase, addDataSourceCallbacks);
+				dbHelper = new TskCaseDbBridge(skCase, addDataSourceCallbacks);
 				getTSKReadLock();
 				try {
 					long imageHandle = 0;
@@ -2096,9 +2096,9 @@ public static long openFile(long fsHandle, long fileId, TSK_FS_ATTR_TYPE_ENUM at
 
 	private static native HashHitInfo hashDbLookupVerbose(String hash, int dbHandle) throws TskCoreException;
 
-	private static native long initAddImgNat(JniDbHelper dbHelperObj, String timezone, boolean addUnallocSpace, boolean skipFatFsOrphans) throws TskCoreException;
+	private static native long initAddImgNat(TskCaseDbBridge dbHelperObj, String timezone, boolean addUnallocSpace, boolean skipFatFsOrphans) throws TskCoreException;
 
-	private static native long initializeAddImgNat(JniDbHelper dbHelperObj, String timezone, boolean addFileSystems, boolean addUnallocSpace, boolean skipFatFsOrphans) throws TskCoreException;
+	private static native long initializeAddImgNat(TskCaseDbBridge dbHelperObj, String timezone, boolean addFileSystems, boolean addUnallocSpace, boolean skipFatFsOrphans) throws TskCoreException;
 
 	private static native void runOpenAndAddImgNat(long process, String deviceId, String[] imgPath, int splits, String timezone) throws TskCoreException, TskDataException;
 
diff --git a/bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java b/bindings/java/src/org/sleuthkit/datamodel/TskCaseDbBridge.java
similarity index 99%
rename from bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java
rename to bindings/java/src/org/sleuthkit/datamodel/TskCaseDbBridge.java
index 1b700b77d4019909ea85a69a2f4d0cc7a900c1f6..6fcf0a38fb77eebfeb5d6238e150ab1f8f4ceb0e 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/TskCaseDbBridge.java
@@ -43,9 +43,9 @@
  * Note that this code should only be used for the add image process, and not
  * to add additional files afterward.
  */
-class JniDbHelper {
+class TskCaseDbBridge {
     
-    private static final Logger logger = Logger.getLogger(JniDbHelper.class.getName());
+    private static final Logger logger = Logger.getLogger(TskCaseDbBridge.class.getName());
     
     private final SleuthkitCase caseDb;
     private CaseDbTransaction trans = null;
@@ -60,7 +60,7 @@ class JniDbHelper {
     private final Queue<LayoutRangeInfo> batchedLayoutRanges = new LinkedList<>();
     private final List<Long> layoutFileIds = new ArrayList<>();
     
-    JniDbHelper(SleuthkitCase caseDb, AddDataSourceCallbacks addDataSourceCallbacks) {
+    TskCaseDbBridge(SleuthkitCase caseDb, AddDataSourceCallbacks addDataSourceCallbacks) {
         this.caseDb = caseDb;
         this.addDataSourceCallbacks = addDataSourceCallbacks;
         trans = null;