From 200eb9a680e2d1b21d99532d880cc91c3c1bf19c Mon Sep 17 00:00:00 2001
From: apriestman <apriestman@basistech.com>
Date: Tue, 4 Oct 2022 12:59:14 -0400
Subject: [PATCH] Move creation of OS account instances

---
 .../sleuthkit/datamodel/AbstractContent.java   | 18 ++----------------
 .../org/sleuthkit/datamodel/Blackboard.java    |  3 +++
 2 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java b/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java
index 4204a73de..41867656e 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/AbstractContent.java
@@ -398,26 +398,12 @@ public AnalysisResultAdded newAnalysisResult(BlackboardArtifact.Type artifactTyp
 
 	@Override
 	public DataArtifact newDataArtifact(BlackboardArtifact.Type artifactType, Collection<BlackboardAttribute> attributesList, Long osAccountId) throws TskCoreException {
-		DataArtifact artifact = db.getBlackboard().newDataArtifact(artifactType, objId, this.getDataSource().getId(), attributesList, osAccountId);
-
-		if (osAccountId != null) {
-			try (CaseDbConnection connection = db.getConnection()) {
-				db.getOsAccountManager().newOsAccountInstance(osAccountId, getDataSource().getId(), OsAccountInstance.OsAccountInstanceType.ACCESSED, connection);
-			}
-		}
-		return artifact;
+		return db.getBlackboard().newDataArtifact(artifactType, objId, this.getDataSource().getId(), attributesList, osAccountId);
 	}
 
 	@Override
 	public DataArtifact newDataArtifact(BlackboardArtifact.Type artifactType, Collection<BlackboardAttribute> attributesList, Long osAccountId, long dataSourceId) throws TskCoreException {
-		DataArtifact artifact = db.getBlackboard().newDataArtifact(artifactType, objId, dataSourceId, attributesList, osAccountId);
-
-		if (osAccountId != null) {
-			try (CaseDbConnection connection = db.getConnection()) {
-				db.getOsAccountManager().newOsAccountInstance(osAccountId, dataSourceId, OsAccountInstance.OsAccountInstanceType.ACCESSED, connection);
-			}
-		}
-		return artifact;
+		return db.getBlackboard().newDataArtifact(artifactType, objId, dataSourceId, attributesList, osAccountId);
 	}
 
 	@Override
diff --git a/bindings/java/src/org/sleuthkit/datamodel/Blackboard.java b/bindings/java/src/org/sleuthkit/datamodel/Blackboard.java
index 85afd607d..1826e4079 100755
--- a/bindings/java/src/org/sleuthkit/datamodel/Blackboard.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/Blackboard.java
@@ -2236,6 +2236,9 @@ public DataArtifact newDataArtifact(BlackboardArtifact.Type artifactType, long s
 					statement.setLong(1, artifact_obj_id);
 					statement.setLong(2, osAccountObjId);
 					connection.executeUpdate(statement);
+					
+					// Add an OS account instance 
+					caseDb.getOsAccountManager().newOsAccountInstance(osAccountObjId, dataSourceObjId, OsAccountInstance.OsAccountInstanceType.ACCESSED, connection);
 				}
 
 				// if attributes are provided, add them to the artifact.
-- 
GitLab