From 96921e6ffbedb50aded40d5a5097061ce616f393 Mon Sep 17 00:00:00 2001 From: Andy Heintz Date: Tue, 4 Apr 2023 09:19:15 -0500 Subject: [PATCH] JENKINS-70032 : Make maven-plugin an optional dependency (Resolve SpotBugs warnings about NPE) --- src/main/java/hudson/plugins/s3/S3CopyArtifact.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/hudson/plugins/s3/S3CopyArtifact.java b/src/main/java/hudson/plugins/s3/S3CopyArtifact.java index 3a86fc4d..a9e823e0 100644 --- a/src/main/java/hudson/plugins/s3/S3CopyArtifact.java +++ b/src/main/java/hudson/plugins/s3/S3CopyArtifact.java @@ -161,6 +161,11 @@ private void setResult(@Nonnull Run run, boolean isOk) { else run.setResult(Result.FAILURE); } + + private static boolean isMavenPluginInstalled() { + Jenkins instance = Jenkins.getInstanceOrNull(); + return instance != null && instance.getPlugin("maven-plugin") != null; + } @Override public void perform(@Nonnull Run dst, @Nonnull FilePath targetDir, @Nonnull Launcher launcher, @Nonnull TaskListener listener) throws InterruptedException, IOException { @@ -217,7 +222,7 @@ public void perform(@Nonnull Run dst, @Nonnull FilePath targetDir, @Nonnul excludeFilter = env.expand(excludeFilter); - if (Jenkins.getInstanceOrNull().getPlugin("maven-plugin") != null && src instanceof MavenModuleSetBuild) { + if (isMavenPluginInstalled() && src instanceof MavenModuleSetBuild) { // Copy artifacts from the build (ArchiveArtifacts build step) boolean ok = perform(src, dst, includeFilter, excludeFilter, targetDir, console); @@ -335,7 +340,7 @@ public FormValidation doCheckProjectName( final FormValidation result; final Item item = new JobResolver(value).job; if (item != null) { - if (Jenkins.getInstanceOrNull().getPlugin("maven-plugin") != null && item instanceof MavenModuleSet) { + if (isMavenPluginInstalled() && item instanceof MavenModuleSet) { result = FormValidation.warning(Messages.CopyArtifact_MavenProject()); } else { result = (item instanceof MatrixProject)