From 686fd80288dfc2983a2a7a2c94079fb814a4a7d1 Mon Sep 17 00:00:00 2001 From: "Hamorszky, Balazs" Date: Fri, 5 Oct 2018 14:09:28 +0200 Subject: [PATCH 1/2] removed JacocoPublisher dependency --- .../coverage/CoverageProvider.java | 1 - .../coverage/JacocoCoverageProvider.java | 29 +++++++++---------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/uber/jenkins/phabricator/coverage/CoverageProvider.java b/src/main/java/com/uber/jenkins/phabricator/coverage/CoverageProvider.java index 97f92a72..e61d81fb 100644 --- a/src/main/java/com/uber/jenkins/phabricator/coverage/CoverageProvider.java +++ b/src/main/java/com/uber/jenkins/phabricator/coverage/CoverageProvider.java @@ -27,7 +27,6 @@ import javax.annotation.Nullable; import hudson.FilePath; -import hudson.model.AbstractBuild; import hudson.model.Run; public abstract class CoverageProvider { diff --git a/src/main/java/com/uber/jenkins/phabricator/coverage/JacocoCoverageProvider.java b/src/main/java/com/uber/jenkins/phabricator/coverage/JacocoCoverageProvider.java index 4149664c..60bf1764 100644 --- a/src/main/java/com/uber/jenkins/phabricator/coverage/JacocoCoverageProvider.java +++ b/src/main/java/com/uber/jenkins/phabricator/coverage/JacocoCoverageProvider.java @@ -9,6 +9,7 @@ import org.jacoco.core.analysis.ISourceNode; import java.io.IOException; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -16,12 +17,9 @@ import java.util.Set; import hudson.FilePath; -import hudson.model.AbstractBuild; -import hudson.model.Project; import hudson.model.Run; import hudson.plugins.jacoco.ExecutionFileLoader; import hudson.plugins.jacoco.JacocoBuildAction; -import hudson.plugins.jacoco.JacocoPublisher; import hudson.plugins.jacoco.report.CoverageReport; /** @@ -115,29 +113,28 @@ private JacocoBuildAction getJacocoBuildAction() { return build.getAction(JacocoBuildAction.class); } - private JacocoPublisher getJacocoPublisher() { - Project project = (Project) ((AbstractBuild) build).getProject(); - return (JacocoPublisher) project.getPublisher(JacocoPublisher.DESCRIPTOR); - } - @Override public Map> readLineCoverage() { JacocoBuildAction jacocoAction = getJacocoBuildAction(); - JacocoPublisher jacocoPublisher = getJacocoPublisher(); - if (jacocoAction == null || jacocoPublisher == null) { + + if (jacocoAction == null) { return null; } HashMap> lineCoverage = new HashMap>(); String[] includes = null; - if (jacocoPublisher.getInclusionPattern() != null) { - includes = new String[] {jacocoPublisher.getInclusionPattern()}; - } - String[] excludes = null; - if (jacocoPublisher.getExclusionPattern() != null) { - excludes = new String[] {jacocoPublisher.getExclusionPattern()}; + + try { + Field inclusionsField = JacocoBuildAction.class.getDeclaredField("inclusions"); + inclusionsField.setAccessible(true); + includes = (String[]) inclusionsField.get(jacocoAction); + Field exclusionsField = JacocoBuildAction.class.getDeclaredField("exclusions"); + exclusionsField.setAccessible(true); + excludes = (String[]) exclusionsField.get(jacocoAction); + } catch (Exception e) { + e.printStackTrace(); } try { From 121e148d8a6490db27ec05a1230626483c44f840 Mon Sep 17 00:00:00 2001 From: "Hamorszky, Balazs" Date: Tue, 9 Oct 2018 19:05:42 +0200 Subject: [PATCH 2/2] build result might be null in comment generation --- src/main/java/com/uber/jenkins/phabricator/CommentBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/uber/jenkins/phabricator/CommentBuilder.java b/src/main/java/com/uber/jenkins/phabricator/CommentBuilder.java index 3148cacf..4c305665 100644 --- a/src/main/java/com/uber/jenkins/phabricator/CommentBuilder.java +++ b/src/main/java/com/uber/jenkins/phabricator/CommentBuilder.java @@ -133,7 +133,7 @@ void processBuildResult( boolean commentOnSuccess, boolean commentWithConsoleLinkOnFailure, boolean runHarbormaster) { - if (result == Result.SUCCESS) { + if (result == Result.SUCCESS || result == null) { if (comment.length() == 0 && (commentOnSuccess || !runHarbormaster)) { comment.append("Build is green"); }