diff --git a/src/main/java/org/spdx/spreadsheetstore/SpreadsheetStore.java b/src/main/java/org/spdx/spreadsheetstore/SpreadsheetStore.java index cbc8cf4..37ef32d 100644 --- a/src/main/java/org/spdx/spreadsheetstore/SpreadsheetStore.java +++ b/src/main/java/org/spdx/spreadsheetstore/SpreadsheetStore.java @@ -359,7 +359,7 @@ private Map copyPackageInfoToSS(String documentUri, PackageInfoSheet packageInfoSheet, ModelCopyManager copyManager, Map> externalRefs, Map> allRelationships, Map> allAnnotations) throws InvalidSPDXAnalysisException { - Map fileIdToPkgId = new HashMap<>(); + Map> fileIdToPkgIds = new HashMap<>(); List packages; try (@SuppressWarnings("unchecked") @@ -372,14 +372,7 @@ private Map copyPackageInfoToSS(String documentUri, String pkgId = pkg.getId(); Collection files = pkg.getFiles(); for (SpdxFile file:files) { - String fileId = file.getId(); - String pkgIdsForFile = fileIdToPkgId.get(fileId); - if (pkgIdsForFile == null) { - pkgIdsForFile = pkgId; - } else { - pkgIdsForFile = pkgIdsForFile + ", " + pkgId; - } - fileIdToPkgId.put(fileId, pkgIdsForFile); + fileIdToPkgIds.computeIfAbsent(file.getId(), k -> new ArrayList<>()).add(pkgId); } Collection pkgExternalRefs = pkg.getExternalRefs(); if (pkgExternalRefs != null && pkgExternalRefs.size() > 0) { @@ -395,6 +388,10 @@ private Map copyPackageInfoToSS(String documentUri, allAnnotations.put(pkg.getId(), annotations); } } + Map fileIdToPkgId = new HashMap<>(); + for (Entry> entry : fileIdToPkgIds.entrySet()) { + fileIdToPkgId.put(entry.getKey(), String.join(", ", entry.getValue())); + } return fileIdToPkgId; }