diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
index 3a74e2d1674e36c9390bf640c9f46bccd495c7cb..1d033b7b32860cfe9eec7e4944b977ce61663a65 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
@@ -5695,6 +5695,43 @@ public Volume addVolume(long parentObjId, long addr, long start, long length, St
 			releaseSingleUserCaseWriteLock();
 		}
 	}
+	
+	/**
+	 * Add a pool to the database
+	 *
+	 * @param parentObjId Object ID of the pool's parent
+     * @param type        Type of pool
+	 * @param transaction Case DB transaction
+	 *
+	 * @return the newly created Pool
+	 *
+	 * @throws TskCoreException
+	 */
+	public Pool addPool(long parentObjId, TskData.TSK_POOL_TYPE_ENUM type, CaseDbTransaction transaction) throws TskCoreException {
+		acquireSingleUserCaseWriteLock();
+		Statement statement = null;
+		try {
+			// Insert a row for the Pool into the tsk_objects table.
+			CaseDbConnection connection = transaction.getConnection();
+			long newObjId = addObject(parentObjId, TskData.ObjectType.POOL.getObjectType(), connection);
+
+			// Add a row to tsk_pool_info
+			// INSERT INTO tsk_pool_info (obj_id, pool_type) VALUES (?, ?)
+			PreparedStatement preparedStatement = connection.getPreparedStatement(PREPARED_STATEMENT.INSERT_POOL_INFO);
+			preparedStatement.clearParameters();
+			preparedStatement.setLong(1, newObjId);
+			preparedStatement.setShort(2, type.getValue());
+			connection.executeUpdate(preparedStatement);
+
+			// Create the new Pool object
+			return new Pool(this, newObjId, type.getName(), type.getValue());
+		} catch (SQLException ex) {
+			throw new TskCoreException(String.format("Error creating pool with type %d and parent ID %d", type.getValue(), parentObjId), ex);
+		} finally {
+			closeStatement(statement);
+			releaseSingleUserCaseWriteLock();
+		}
+	}		
 
 	/**
 	 * Add a FileSystem to the database.
@@ -10903,6 +10940,7 @@ private enum PREPARED_STATEMENT {
 		INSERT_VS_INFO("INSERT INTO tsk_vs_info (obj_id, vs_type, img_offset, block_size) VALUES (?, ?, ?, ?)"),
 		INSERT_VS_PART_SQLITE("INSERT INTO tsk_vs_parts (obj_id, addr, start, length, desc, flags) VALUES (?, ?, ?, ?, ?, ?)"),
 		INSERT_VS_PART_POSTGRESQL("INSERT INTO tsk_vs_parts (obj_id, addr, start, length, descr, flags) VALUES (?, ?, ?, ?, ?, ?)"),
+		INSERT_POOL_INFO("INSERT INTO tsk_pool_info (obj_id, pool_type) VALUES (?, ?)"),
 		INSERT_FS_INFO("INSERT INTO tsk_fs_info (obj_id, img_offset, fs_type, block_size, block_count, root_inum, first_inum, last_inum, display_name)"
 				+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
 
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
index 9172dce77dbf264ab0c3554cf388d7bd5d1246ed..3246cf5003c6aa4d347017d11db894859d89c3e7 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java
@@ -105,7 +105,7 @@ private static class CaseHandles {
 		 * open file system handles are contained in a pool so we can set the locks
 		 * appropriately. 
 		 */
-		private final List<Long> poolFsList = new ArrayList();
+		private final List<Long> poolFsList = new ArrayList<>();
 		
 		private CaseHandles() {
 			// Nothing to do here
diff --git a/bindings/java/src/org/sleuthkit/datamodel/TskData.java b/bindings/java/src/org/sleuthkit/datamodel/TskData.java
index 622861e56392241614d7d5b840cb4b7b1108a08e..6ff21a0a03cb007cc49d3d6fe5fa3579307ce8c2 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/TskData.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/TskData.java
@@ -734,7 +734,7 @@ public enum TSK_POOL_TYPE_ENUM {
 		TSK_POOL_TYPE_UNSUPP(0xffff, "Unsupported") ///< Unsupported pool container type
 		;
 
-		private final long poolType;
+		private final short poolType;
 		private final String name;
 
 		TSK_POOL_TYPE_ENUM(int poolType, String name) {
@@ -764,7 +764,7 @@ public static TSK_POOL_TYPE_ENUM valueOf(long poolType) {
 		 *
 		 * @return the long value of the file type
 		 */
-		public long getPoolType() {
+		public short getValue() {
 			return poolType;
 		}