Skip to content

Commit

Permalink
Guard against NPE in computing coverage lines (#310)
Browse files Browse the repository at this point in the history
  • Loading branch information
kageiit committed Dec 4, 2018
1 parent 9f12549 commit c11c1d9
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@

import java.io.File;
import java.util.Set;
import java.util.logging.Logger;

import com.google.common.annotations.VisibleForTesting;
import hudson.plugins.cobertura.CoberturaBuildAction;
Expand All @@ -35,8 +34,6 @@
*/
public class CoberturaPluginCoverageProvider extends XmlCoverageProvider {

private static final Logger LOGGER = Logger.getLogger(CoberturaPluginCoverageProvider.class.getName());

private final CoberturaBuildAction buildAction;

public CoberturaPluginCoverageProvider(Set<File> coverageReports, Set<String> includeFiles, CoberturaBuildAction buildAction) {
Expand Down Expand Up @@ -68,8 +65,8 @@ static CodeCoverageMetrics convertCobertura(CoverageResult result) {
float methodCoverage = getCoveragePercentage(result, CoverageMetric.METHOD);
float lineCoverage = getCoveragePercentage(result, CoverageMetric.LINE);
float conditionalCoverage = getCoveragePercentage(result, CoverageMetric.CONDITIONAL);
long linesCovered = (long) result.getCoverage(CoverageMetric.LINE).numerator;
long linesTested = (long) result.getCoverage(CoverageMetric.LINE).denominator;
long linesCovered = (long) getCoverageRatio(result, CoverageMetric.LINE).numerator;
long linesTested = (long) getCoverageRatio(result, CoverageMetric.LINE).denominator;

return new CodeCoverageMetrics(
packagesCoverage,
Expand All @@ -83,6 +80,14 @@ static CodeCoverageMetrics convertCobertura(CoverageResult result) {
);
}

private static Ratio getCoverageRatio(CoverageResult result, CoverageMetric metric) {
Ratio ratio = result.getCoverage(metric);
if (ratio == null) {
return Ratio.create(0,0);
}
return ratio;
}

private static float getCoveragePercentage(CoverageResult result, CoverageMetric metric) {
Ratio ratio = result.getCoverage(metric);
if (ratio == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,12 @@

import java.io.File;
import java.util.Set;
import java.util.logging.Logger;

/**
* Provide Jacoco coverage data via the Jenkins Jacoco Plugin
*/
public class JacocoPluginCoverageProvider extends XmlCoverageProvider {

private static final Logger LOGGER = Logger.getLogger(JacocoPluginCoverageProvider.class.getName());

private final JacocoBuildAction buildAction;

public JacocoPluginCoverageProvider(Set<File> coverageReports, Set<String> includeFiles, JacocoBuildAction buildAction) {
Expand Down

0 comments on commit c11c1d9

Please sign in to comment.