Skip to content

Commit 481a23f

Browse files
🍒 8521 - Fix NPE when calculating code coverage for Gradle projects with non-standard directory layout (#8546)
1 parent a951656 commit 481a23f

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/coverage/percentage/CoverageCalculator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ interface Factory<T extends CoverageCalculator> {
1414

1515
T moduleCoverage(
1616
long moduleId,
17-
BuildModuleLayout moduleLayout,
17+
@Nullable BuildModuleLayout moduleLayout,
1818
ExecutionSettings executionSettings,
1919
T sessionCoverage);
2020
}

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/coverage/percentage/JacocoCoverageCalculator.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public JacocoCoverageCalculator sessionCoverage(long sessionId) {
7777
@Override
7878
public JacocoCoverageCalculator moduleCoverage(
7979
long moduleId,
80-
BuildModuleLayout moduleLayout,
80+
@Nullable BuildModuleLayout moduleLayout,
8181
ExecutionSettings executionSettings,
8282
JacocoCoverageCalculator sessionCoverage) {
8383
return new JacocoCoverageCalculator(
@@ -130,7 +130,7 @@ private JacocoCoverageCalculator(
130130
ExecutionSettings executionSettings,
131131
String repoRoot,
132132
long moduleId,
133-
BuildModuleLayout moduleLayout,
133+
@Nullable BuildModuleLayout moduleLayout,
134134
ModuleSignalRouter moduleSignalRouter,
135135
@Nonnull JacocoCoverageCalculator parent) {
136136
this.parent = parent;
@@ -149,7 +149,11 @@ private JacocoCoverageCalculator(
149149
moduleId, SignalType.MODULE_COVERAGE_DATA_JACOCO, this::addCoverageData);
150150
}
151151

152-
private void addModuleLayout(BuildModuleLayout moduleLayout) {
152+
private void addModuleLayout(@Nullable BuildModuleLayout moduleLayout) {
153+
if (moduleLayout == null) {
154+
LOGGER.debug("Received null module layout, will not be able to calculate coverage");
155+
return;
156+
}
153157
synchronized (coverageDataLock) {
154158
for (SourceSet sourceSet : moduleLayout.getSourceSets()) {
155159
if (sourceSet.getType() == SourceSet.Type.TEST) {

dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/AndroidGradleUtils.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class AndroidGradleUtils {
9292
destinationsTree = javaTree
9393
}
9494

95-
LOGGER.debug("Using destination tree: {}", destinationsTree.sourceTrees)
95+
LOGGER.debug("Using destination tree: {}", destinationsTree.files)
9696
return destinationsTree.files
9797
}
9898

0 commit comments

Comments
 (0)