From bfaab5118d079405b82b80301d90e19f39970366 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Thu, 2 Jan 2014 13:34:29 -0500 Subject: [PATCH] [JENKINS-18410] NPE from previous fix (fcdf749) under some conditions, which the test case was not exercising. java.lang.NullPointerException at hudson.tasks.test.AggregatedTestResultPublisher$TestResultAction.getProject(AggregatedTestResultPublisher.java:173) at hudson.tasks.test.AggregatedTestResultPublisher$TestResultAction.(AggregatedTestResultPublisher.java:146) at hudson.tasks.test.AggregatedTestResultPublisher$TestResultAction.(AggregatedTestResultPublisher.java:135) at hudson.tasks.test.AggregatedTestResultPublisher.perform(AggregatedTestResultPublisher.java:90) --- changelog.html | 4 +++- .../hudson/tasks/test/AggregatedTestResultPublisher.java | 8 ++------ .../tasks/test/AggregatedTestResultPublisherTest.java | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/changelog.html b/changelog.html index 53d1109327..557f56d6f4 100644 --- a/changelog.html +++ b/changelog.html @@ -55,7 +55,9 @@ Upcoming changes diff --git a/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java b/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java index 709908d688..d74d8fd877 100644 --- a/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java +++ b/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java @@ -87,7 +87,7 @@ public class AggregatedTestResultPublisher extends Recorder { public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { // add a TestResult just so that it can show up later. - build.addAction(new TestResultAction(jobs, includeFailedBuilds)); + build.addAction(new TestResultAction(jobs, includeFailedBuilds, build)); return true; } @@ -131,11 +131,7 @@ public class AggregatedTestResultPublisher extends Recorder { private transient List didntRun; private transient List noFingerprints; - public TestResultAction(String jobs, boolean includeFailedBuilds) { - this(jobs, includeFailedBuilds, null); - } - - @Deprecated + @SuppressWarnings("deprecation") // calls getProject in constructor, so needs owner immediately public TestResultAction(String jobs, boolean includeFailedBuilds, AbstractBuild owner) { super(owner); this.includeFailedBuilds = includeFailedBuilds; diff --git a/test/src/test/java/hudson/tasks/test/AggregatedTestResultPublisherTest.java b/test/src/test/java/hudson/tasks/test/AggregatedTestResultPublisherTest.java index 1026d3a1a4..320cd09665 100644 --- a/test/src/test/java/hudson/tasks/test/AggregatedTestResultPublisherTest.java +++ b/test/src/test/java/hudson/tasks/test/AggregatedTestResultPublisherTest.java @@ -167,7 +167,7 @@ public class AggregatedTestResultPublisherTest { addFingerprinterToProject(downstreamProject, singleContents, singleFiles); upstreamProject.getPublishersList().add(new BuildTrigger(ImmutableList.of(downstreamProject), Result.SUCCESS)); - upstreamProject.getPublishersList().add(new AggregatedTestResultPublisher(TEST_PROJECT_NAME)); + upstreamProject.getPublishersList().add(new AggregatedTestResultPublisher(null)); j.jenkins.rebuildDependencyGraph(); } -- GitLab