diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RecentDocumentsByLnk.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RecentDocumentsByLnk.java index d9ad0fbfb8..e8e7240fee 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RecentDocumentsByLnk.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/RecentDocumentsByLnk.java @@ -22,6 +22,7 @@ */ package org.sleuthkit.autopsy.recentactivity; +import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; @@ -29,6 +30,7 @@ import org.apache.commons.io.FilenameUtils; import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.Logger; import java.util.Collection; +import java.util.HashMap; import org.openide.util.NbBundle.Messages; import org.sleuthkit.autopsy.coreutils.JLNK; import org.sleuthkit.autopsy.coreutils.JLnkParser; @@ -87,6 +89,7 @@ class RecentDocumentsByLnk extends Extract { dataFound = true; List bbartifacts = new ArrayList<>(); + HashMap recentFileMap = new HashMap<>(); for (AbstractFile recentFile : recentFiles) { if (context.dataSourceIngestIsCancelled()) { break; @@ -111,6 +114,8 @@ class RecentDocumentsByLnk extends Extract { Collection bbattributes = new ArrayList<>(); String path = lnk.getBestPath(); + if (recentFileMap.get(path + File.separator + recentFile.getName()) == null) { + recentFileMap.put(path + File.separator + recentFile.getName(), recentFile.getName()); bbattributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_PATH, NbBundle.getMessage(this.getClass(), "RecentDocumentsByLnk.parentModuleName.noSpace"), @@ -136,6 +141,7 @@ class RecentDocumentsByLnk extends Extract { logger.log(Level.SEVERE, String.format("Failed to create TSK_RECENT_OBJECT artifact for file %d", recentFile.getId()), ex); } } + } if (!context.dataSourceIngestIsCancelled()) { postArtifacts(bbartifacts);