From 382f0937dbb95e5b1fd836e3e38facf95120ef2e Mon Sep 17 00:00:00 2001 From: Christian Grasser Date: Mon, 2 Dec 2024 08:56:38 +0100 Subject: [PATCH] - added nullpointer checks - consolidation of usage @NonNull vs. @Nonnull --- .../JiraTestResultReporter/JiraTestDataPublisher.java | 8 ++++++-- .../plugins/JiraTestResultReporter/JobConfigMapping.java | 3 +++ .../JiraTestResultReporter/TestToIssueMapping.java | 4 ++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/JiraTestDataPublisher.java b/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/JiraTestDataPublisher.java index 13145ba..ac9d800 100644 --- a/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/JiraTestDataPublisher.java +++ b/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/JiraTestDataPublisher.java @@ -36,6 +36,7 @@ import com.atlassian.jira.rest.client.internal.async.AsynchronousHttpClientFactory; import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory; import edu.umd.cs.findbugs.annotations.CheckForNull; +import edu.umd.cs.findbugs.annotations.NonNull; import hudson.EnvVars; import hudson.Extension; import hudson.FilePath; @@ -69,7 +70,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.annotation.Nonnull; import jenkins.model.Jenkins; import net.sf.json.JSONObject; import org.jenkinsci.Symbol; @@ -249,7 +249,7 @@ public JiraTestDataPublisher( */ @Override public TestResultAction.Data contributeTestData( - Run run, @Nonnull FilePath workspace, Launcher launcher, TaskListener listener, TestResult testResult) + Run run, @NonNull FilePath workspace, Launcher launcher, TaskListener listener, TestResult testResult) throws IOException, InterruptedException { EnvVars envVars = run.getEnvironment(listener); @@ -795,6 +795,10 @@ public FormValidation validateFieldConfigs(String jsonForm) throws FormException } } + if (jiraPublisherJSON == null) { + return FormValidation.error("jiraPublisherJSON is null.\n"); + } + // constructing the objects from json List configs = newInstancesFromHeteroList(req, jiraPublisherJSON.get("configs"), getListDescriptors()); diff --git a/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/JobConfigMapping.java b/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/JobConfigMapping.java index 1bc42fb..f60178a 100644 --- a/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/JobConfigMapping.java +++ b/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/JobConfigMapping.java @@ -394,6 +394,9 @@ public synchronized void saveConfig( * Method for setting the last configuration made for a project */ public synchronized void saveConfig(Job project, JobConfigEntry entry) { + if (project == null) { + return; + } if (entry instanceof JobConfigEntryBuilder) { entry = ((JobConfigEntryBuilder) entry).build(); } diff --git a/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/TestToIssueMapping.java b/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/TestToIssueMapping.java index 45e24f6..55b7ec4 100644 --- a/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/TestToIssueMapping.java +++ b/src/main/java/org/jenkinsci/plugins/JiraTestResultReporter/TestToIssueMapping.java @@ -154,6 +154,10 @@ private HashMap loadMap(Job job) { * @param job */ public void register(Job job) { + if (job == null) { + return; + } + if (job instanceof MatrixProject) { for (Job child : ((MatrixProject) job).getAllJobs()) { if (child instanceof MatrixProject) {