Skip to content

Commit f96dc33

Browse files
authored
handle null values in JiraEnvironmentContributingAction (#738)
* fix: handle null values in JiraEnvironmentContributingAction * chore: reboxing fix
1 parent e41d436 commit f96dc33

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

src/main/java/hudson/plugins/jira/JiraEnvironmentContributingAction.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package hudson.plugins.jira;
22

3+
import edu.umd.cs.findbugs.annotations.Nullable;
34
import hudson.EnvVars;
45
import hudson.model.AbstractBuild;
56
import hudson.model.EnvironmentContributingAction;
@@ -21,14 +22,16 @@ public class JiraEnvironmentContributingAction extends InvisibleAction implement
2122

2223
private final String jiraUrl;
2324

25+
@Nullable
2426
public String getIssuesList() {
2527
return issuesList;
2628
}
2729

2830
public Integer getNumberOfIssues() {
29-
return issuesSize;
31+
return issuesSize == null ? Integer.valueOf(0) : issuesSize;
3032
}
3133

34+
@Nullable
3235
public String getJiraUrl() {
3336
return jiraUrl;
3437
}

src/test/java/hudson/plugins/jira/JiraEnvironmentContributingActionTest.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static org.hamcrest.MatcherAssert.assertThat;
44
import static org.hamcrest.Matchers.is;
5+
import static org.hamcrest.Matchers.nullValue;
56
import static org.mockito.Mockito.mock;
67
import static org.mockito.Mockito.times;
78
import static org.mockito.Mockito.verify;
@@ -20,7 +21,17 @@ class JiraEnvironmentContributingActionTest {
2021
public void buildEnvVarsEnvIsNull() {
2122
JiraEnvironmentContributingAction action =
2223
new JiraEnvironmentContributingAction(ISSUES_LIST, ISSUES_SIZE, JIRA_URL);
23-
AbstractBuild build = mock(AbstractBuild.class);
24+
AbstractBuild<?, ?> build = mock(AbstractBuild.class);
25+
26+
action.buildEnvVars(build, null);
27+
// just expecting no exception
28+
}
29+
30+
@Test
31+
public void passedVariablesAreNull() {
32+
JiraEnvironmentContributingAction action =
33+
new JiraEnvironmentContributingAction(ISSUES_LIST, ISSUES_SIZE, JIRA_URL);
34+
AbstractBuild<?, ?> build = mock(AbstractBuild.class);
2435

2536
action.buildEnvVars(build, null);
2637
// just expecting no exception
@@ -48,4 +59,26 @@ public void buildEnvVarsAddVariables() {
4859
assertThat(keys.getAllValues().get(2), is(JiraEnvironmentContributingAction.JIRA_URL_VARIABLE_NAME));
4960
assertThat(values.getAllValues().get(2), is(JIRA_URL));
5061
}
62+
63+
@Test
64+
public void noExceptionWhenNullsPassed() {
65+
JiraEnvironmentContributingAction action = new JiraEnvironmentContributingAction(null, null, null);
66+
AbstractBuild<?, ?> build = mock(AbstractBuild.class);
67+
EnvVars envVars = mock(EnvVars.class);
68+
69+
action.buildEnvVars(build, envVars);
70+
71+
ArgumentCaptor<String> keys = ArgumentCaptor.forClass(String.class);
72+
ArgumentCaptor<String> values = ArgumentCaptor.forClass(String.class);
73+
verify(envVars, times(3)).put(keys.capture(), values.capture());
74+
75+
assertThat(keys.getAllValues().get(0), is(JiraEnvironmentContributingAction.ISSUES_VARIABLE_NAME));
76+
assertThat(values.getAllValues().get(0), nullValue());
77+
78+
assertThat(keys.getAllValues().get(1), is(JiraEnvironmentContributingAction.ISSUES_SIZE_VARIABLE_NAME));
79+
assertThat(values.getAllValues().get(1), is("0"));
80+
81+
assertThat(keys.getAllValues().get(2), is(JiraEnvironmentContributingAction.JIRA_URL_VARIABLE_NAME));
82+
assertThat(values.getAllValues().get(2), nullValue());
83+
}
5184
}

0 commit comments

Comments
 (0)