Skip to content

Commit 0c1d6c9

Browse files
authored
Merge pull request #138 from VariantSync/hotfix-analysis-result
Hotfix: Potential crash when creating a snapshot of AnalysisResult
2 parents aa3f638 + ca099c1 commit 0c1d6c9

2 files changed

Lines changed: 9 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: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,12 @@ public <T extends Metadata<T>> void append(ResultKey<T> resultKey, T value) {
9595
a.repoName = Metadata.mergeIfEqualElse(a.repoName, b.repoName,
9696
(ar, br) -> {
9797
Logger.warn("Merging analysis for different repos {} and {}!", ar, br);
98+
if (NO_REPO.equals(ar)) {
99+
return br;
100+
}
101+
if (NO_REPO.equals(br)) {
102+
return ar;
103+
}
98104
return ar + "; " + br;
99105
});
100106
a.taskName = Metadata.mergeEqual(a.taskName, b.taskName);
@@ -120,6 +126,8 @@ public AnalysisResult() {
120126
*/
121127
public AnalysisResult(final String repoName) {
122128
this.repoName = repoName;
129+
// All analyses count the number of processed commits.
130+
this.append(Analysis.TotalNumberOfCommitsResult.KEY, new Analysis.TotalNumberOfCommitsResult());
123131
}
124132

125133
/**
@@ -140,7 +148,7 @@ public LinkedHashMap<String, Object> snapshot() {
140148

141149
var statistics = get(StatisticsAnalysis.RESULT);
142150
var globals = get(Analysis.TotalNumberOfCommitsResult.KEY);
143-
if (statistics != null) {
151+
if (statistics != null && globals != null) {
144152
snap.put(MetadataKeys.FILTERED_COMMITS, globals.value - statistics.processedCommits - statistics.emptyCommits - statistics.failedCommits);
145153
}
146154

0 commit comments

Comments
 (0)