diff --git a/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java b/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java
index f1e5641d92f066d196b7b9ac65f65f88ef46f83b..fcec827f006e7ea5c9d89f9f554bb8876cf64185 100755
--- a/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java
@@ -31,7 +31,7 @@
 public abstract class AbstractContent implements Content {
 
 	public final static long UNKNOWN_ID = -1;
-	private SleuthkitCase db;
+	private final SleuthkitCase db;
 	private long objId;
 	private String name;
 	private Content parent;
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
index 88678e7357ff847366e0b2cc75a71546954f9aea..0bbec519a298b55658f586e1de8c7f72b9f702f7 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
@@ -2618,6 +2618,29 @@ private long getFileSystemByFileId(long fileId) {
 		}
 		return ret;
 	}
+	
+	/**
+	 * Gets the root-level data source object id
+	 * (such as Image or VirtualDirectory representing filesets) for the file
+	 * @param file file to get the root-level object id for
+	 * @return the root content object id in the hierarchy, or -1 if not found (such as when invalid file object passed in)
+	 * @throws TskCoreException thrown if check failed due to a critical tsk error
+	 */
+	public long getFileDataSource(AbstractFile file) throws TskCoreException {
+		
+		final Image image = file.getImage();
+		if (image != null) {
+			//case for image data source
+			return image.getId();
+		}
+		else {
+			//otherwise, get the root non-image data source id
+			//note, we are currently using fs_id internally to store data source id for such files
+		
+			return getFileSystemByFileId(file.getId());
+		}
+
+	}
 
 	/**
 	 * Checks if the file is a (sub)child of the data source (parentless Content object
diff --git a/framework/tsk/framework/services/TskImDBPostgreSQL.cpp b/framework/tsk/framework/services/TskImgDBPostgreSQL.cpp
similarity index 100%
rename from framework/tsk/framework/services/TskImDBPostgreSQL.cpp
rename to framework/tsk/framework/services/TskImgDBPostgreSQL.cpp
diff --git a/framework/tsk/framework/services/TskImDBPostgreSQL.h b/framework/tsk/framework/services/TskImgDBPostgreSQL.h
similarity index 100%
rename from framework/tsk/framework/services/TskImDBPostgreSQL.h
rename to framework/tsk/framework/services/TskImgDBPostgreSQL.h