diff --git a/src/main/java/org/dependencytrack/model/ProjectMetrics.java b/src/main/java/org/dependencytrack/model/ProjectMetrics.java index 2fdec5dca7..c0b6778cef 100644 --- a/src/main/java/org/dependencytrack/model/ProjectMetrics.java +++ b/src/main/java/org/dependencytrack/model/ProjectMetrics.java @@ -436,7 +436,8 @@ public void setPolicyViolationsOperationalUnaudited(int policyViolationsOperatio public ProjectCollectionLogic getCollectionLogic() { return collectionLogic; } public void setCollectionLogic(ProjectCollectionLogic collectionLogic) { - this.collectionLogic = collectionLogic; + // convert old NULL values from DB to NONE + this.collectionLogic = collectionLogic != null ? collectionLogic : ProjectCollectionLogic.NONE; } public Boolean isCollectionLogicChanged() { return collectionLogicChanged; } diff --git a/src/main/java/org/dependencytrack/tasks/metrics/Counters.java b/src/main/java/org/dependencytrack/tasks/metrics/Counters.java index 01714515e7..214cbae3f8 100644 --- a/src/main/java/org/dependencytrack/tasks/metrics/Counters.java +++ b/src/main/java/org/dependencytrack/tasks/metrics/Counters.java @@ -223,7 +223,7 @@ boolean hasChanged(final ProjectMetrics comparedTo) { || comparedTo.getPolicyViolationsOperationalUnaudited() != this.policyViolationsOperationalUnaudited || comparedTo.getComponents() != this.components || comparedTo.getVulnerableComponents() != this.vulnerableComponents - || comparedTo.getCollectionLogic() != this.projectCollectionLogic; + || comparedTo.getCollectionLogic() != this.projectCollectionLogic; } boolean hasChanged(final PortfolioMetrics comparedTo) { diff --git a/src/main/java/org/dependencytrack/tasks/metrics/ProjectMetricsUpdateTask.java b/src/main/java/org/dependencytrack/tasks/metrics/ProjectMetricsUpdateTask.java index 8d00018e79..f1cc01e029 100644 --- a/src/main/java/org/dependencytrack/tasks/metrics/ProjectMetricsUpdateTask.java +++ b/src/main/java/org/dependencytrack/tasks/metrics/ProjectMetricsUpdateTask.java @@ -90,7 +90,8 @@ private void updateMetrics(final UUID uuid) throws Exception { latestMetrics.setLastOccurrence(counters.measuredAt); } else { LOGGER.debug("Metrics of project " + uuid + " changed"); - final boolean collectionLogicChanged = latestMetrics != null && latestMetrics.getCollectionLogic() != project.getCollectionLogic(); + final boolean collectionLogicChanged = latestMetrics != null && + latestMetrics.getCollectionLogic() != project.getCollectionLogic(); final ProjectMetrics metrics = counters.createProjectMetrics(project, collectionLogicChanged); pm.makePersistent(metrics); }