From 6b6dc4e8582dd8a22a6fa4fcb7770ee868f1441c Mon Sep 17 00:00:00 2001 From: Gary O'Neall Date: Mon, 12 Sep 2022 09:47:33 -0700 Subject: [PATCH] Fix package comparer documents --- .../spdx/utility/compare/SpdxComparer.java | 26 ++++++++++++++++++- .../utility/compare/SpdxPackageComparer.java | 4 ++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/spdx/utility/compare/SpdxComparer.java b/src/main/java/org/spdx/utility/compare/SpdxComparer.java index 4bd6d022a..da488c67c 100644 --- a/src/main/java/org/spdx/utility/compare/SpdxComparer.java +++ b/src/main/java/org/spdx/utility/compare/SpdxComparer.java @@ -80,6 +80,8 @@ public class SpdxComparer { private boolean dataLicenseEqual = true; private boolean licenseListVersionEquals = true; private boolean documentContentsEquals = true; + private boolean creatorCommentsEqual = true; + private boolean creationDatesEqual = true; // Extracted Licensing Info results /** @@ -666,10 +668,12 @@ private void compareCreators() throws InvalidSPDXAnalysisException { } // compare creator comments if (!stringsEqual(creatorInfoA.getComment(), creatorInfoB.getComment())) { + this.creatorCommentsEqual = false; this.creatorInformationEquals = false; } // compare creation dates if (!stringsEqual(creatorInfoA.getCreated(), creatorInfoB.getCreated())) { + this.creationDatesEqual = false; this.creatorInformationEquals = false; } // compare license list versions @@ -1556,7 +1560,7 @@ public List getExtractedLicenseDifferences(int docIndexA, } /** - * @return + * @return true if all creation information fields equals * @throws SpdxCompareException */ public boolean isCreatorInformationEqual() throws SpdxCompareException { @@ -1564,6 +1568,26 @@ public boolean isCreatorInformationEqual() throws SpdxCompareException { this.checkInProgress(); return this.creatorInformationEquals; } + + /** + * @return true all creator comments equal + * @throws SpdxCompareException + */ + public boolean isCreatorCommentsEqual() throws SpdxCompareException { + this.checkDocsField(); + this.checkInProgress(); + return this.creatorCommentsEqual; + } + + /** + * @return true if all creation information fields equals + * @throws SpdxCompareException + */ + public boolean isCreatorDatesEqual() throws SpdxCompareException { + this.checkDocsField(); + this.checkInProgress(); + return this.creationDatesEqual; + } /** * Returns any creators which are in the SPDX document 1 which are not in document 2 diff --git a/src/main/java/org/spdx/utility/compare/SpdxPackageComparer.java b/src/main/java/org/spdx/utility/compare/SpdxPackageComparer.java index 4095f75eb..4cd4ffadd 100644 --- a/src/main/java/org/spdx/utility/compare/SpdxPackageComparer.java +++ b/src/main/java/org/spdx/utility/compare/SpdxPackageComparer.java @@ -166,7 +166,9 @@ public void addDocumentPackage(SpdxDocument spdxDocument, } } if (pkg2 != null) { - if (!SpdxComparer.stringsEqual(spdxPackage.getVersionInfo(), pkg2.getVersionInfo())) { + Optional v1 = spdxPackage.getVersionInfo(); + Optional v2 = pkg2.getVersionInfo(); + if (!SpdxComparer.stringsEqual(v1, v2)) { this.packageVersionsEquals = false; this.differenceFound = true; }