diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java index 27caebc469..8eba8f4616 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/BlackboardArtifactNode.java @@ -33,6 +33,7 @@ import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.BlackboardAttribute; import org.sleuthkit.datamodel.BlackboardAttribute.ATTRIBUTE_TYPE; import org.sleuthkit.datamodel.Content; +import org.sleuthkit.datamodel.Image; import org.sleuthkit.datamodel.TskCoreException; import org.sleuthkit.datamodel.TskException; @@ -140,7 +141,12 @@ public class BlackboardArtifactNode extends DisplayableItemNode { } else { String dataSource = ""; try { - dataSource = associated.getImage().getName(); + Image image = associated.getImage(); + if (image != null) { + dataSource = image.getName(); + } else { + dataSource = getRootParentName(); + } } catch (TskCoreException ex) { logger.log(Level.WARNING, "Failed to get image name from " + associated.getName()); } @@ -153,6 +159,20 @@ public class BlackboardArtifactNode extends DisplayableItemNode { return s; } + + private String getRootParentName() { + String parentName = associated.getName(); + Content parent = associated; + try { + while ((parent = parent.getParent()) != null) { + parentName = parent.getName(); + } + } catch (TskCoreException ex) { + logger.log(Level.WARNING, "Failed to get parent name from " + associated.getName()); + return ""; + } + return parentName; + } /** * Add an additional custom node property to that node before it is