Skip to content

Commit f45d023

Browse files
committed
fix: AnalysisResult::snapshot crash
AnalysisResult::snapshot assumed that the AnalysisResult always has a TotalNumberOfCommitsResult but this was only the case if the result was created by an Analysis. Now, every AnalysisResult will have the commits, and the snapshot method will not crash in case the commits are missing later on.
1 parent aa3f638 commit f45d023

2 files changed

Lines changed: 3 additions & 2 deletions

File tree

src/main/java/org/variantsync/diffdetective/analysis/Analysis.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,6 @@ public Analysis(
472472

473473
this.result = new AnalysisResult(repository.getRepositoryName());
474474
this.result.taskName = taskName;
475-
this.result.append(TotalNumberOfCommitsResult.KEY, new TotalNumberOfCommitsResult());
476475

477476
for (var hook : hooks) {
478477
hook.initializeResults(this);

src/main/java/org/variantsync/diffdetective/analysis/AnalysisResult.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ public AnalysisResult() {
120120
*/
121121
public AnalysisResult(final String repoName) {
122122
this.repoName = repoName;
123+
// All analyses count the number of processed commits.
124+
this.append(Analysis.TotalNumberOfCommitsResult.KEY, new Analysis.TotalNumberOfCommitsResult());
123125
}
124126

125127
/**
@@ -140,7 +142,7 @@ public LinkedHashMap<String, Object> snapshot() {
140142

141143
var statistics = get(StatisticsAnalysis.RESULT);
142144
var globals = get(Analysis.TotalNumberOfCommitsResult.KEY);
143-
if (statistics != null) {
145+
if (statistics != null && globals != null) {
144146
snap.put(MetadataKeys.FILTERED_COMMITS, globals.value - statistics.processedCommits - statistics.emptyCommits - statistics.failedCommits);
145147
}
146148

0 commit comments

Comments
 (0)