From 10ea9941ae2449b5f4c38a30fa5459bc1b62afbb Mon Sep 17 00:00:00 2001 From: gcummings Date: Mon, 16 Dec 2013 08:39:41 +0000 Subject: [PATCH] [JENKINS-20857] - add unit test which recreates NullPointerException if selected build has been deleted --- .../model/RunParameterDefinitionTest.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/src/test/java/hudson/model/RunParameterDefinitionTest.java b/test/src/test/java/hudson/model/RunParameterDefinitionTest.java index f0b7efe86a..87207418cd 100644 --- a/test/src/test/java/hudson/model/RunParameterDefinitionTest.java +++ b/test/src/test/java/hudson/model/RunParameterDefinitionTest.java @@ -236,6 +236,30 @@ public class RunParameterDefinitionTest { } + @Test + public void testLoadEnvironmentVariablesWhenRunParameterJobHasBeenDeleted() throws Exception { + + FreeStyleProject project = j.createFreeStyleProject("project"); + FreeStyleBuild successfulBuild = project.scheduleBuild2(0).get(); + + FreeStyleProject paramProject = j.createFreeStyleProject("paramProject"); + ParametersDefinitionProperty pdp = + new ParametersDefinitionProperty(new RunParameterDefinition("RUN", + project.getName(), + "run description", + RunParameterFilter.ALL)); + paramProject.addProperty(pdp); + + FreeStyleBuild build = paramProject.scheduleBuild2(0).get(); + assertEquals(Integer.toString(project.getLastBuild().getNumber()), + build.getEnvironment(new LogTaskListener(LOGGER, Level.INFO)).get("RUN_NUMBER")); + + successfulBuild.delete(); + // We should still be able to retrieve non RunParameter environment variables for the parameterized build + // even when the selected RunParameter build has been deleted. + assertEquals("paramProject", build.getEnvironment(new LogTaskListener(LOGGER, Level.INFO)).get("JOB_NAME")); + } + static class ResultPublisher extends Publisher { private final Result result; -- GitLab