You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2023/01/10 21:04:12 UTC

[maven-enforcer] branch master updated: [MENFORCER-459] Avoid NullPointerException where there is no plugins (#193)

This is an automated email from the ASF dual-hosted git repository.

sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-enforcer.git


The following commit(s) were added to refs/heads/master by this push:
     new c04468d  [MENFORCER-459] Avoid NullPointerException where there is no plugins (#193)
c04468d is described below

commit c04468d8521db5b0f9aa1fb532f3d9a7324e74e7
Author: Andrey Turbanov <tu...@gmail.com>
AuthorDate: Wed Jan 11 00:04:06 2023 +0300

    [MENFORCER-459] Avoid NullPointerException where there is no plugins (#193)
    
    Exceptions shouldn't be used for non-exceptional flow.
    Also it's considered bad practice to return null from a method which returns collection.
---
 .../maven/enforcer/rules/utils/PluginWrapper.java  | 35 ++++++++-------
 .../plugins/enforcer/RequirePluginVersions.java    | 52 ++++++----------------
 2 files changed, 32 insertions(+), 55 deletions(-)

diff --git a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/utils/PluginWrapper.java b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/utils/PluginWrapper.java
index 18103fd..5fd5e41 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/utils/PluginWrapper.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/utils/PluginWrapper.java
@@ -19,6 +19,7 @@
 package org.apache.maven.enforcer.rules.utils;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
 
@@ -41,24 +42,24 @@ public class PluginWrapper {
     private final InputLocationTracker locationTracker;
 
     public static List<PluginWrapper> addAll(List<? extends InputLocationTracker> plugins, boolean banMavenDefaults) {
-        List<PluginWrapper> results = null;
-
-        if (!plugins.isEmpty()) {
-            results = new ArrayList<>(plugins.size());
-            for (InputLocationTracker o : plugins) {
-                // null or true means it is most assumed a Maven default
-                if (banMavenDefaults
-                        && (isVersionFromDefaultLifecycleBindings(o).orElse(true)
-                                || isVersionFromSuperpom(o).orElse(true))) {
-                    continue;
-                }
+        if (plugins.isEmpty()) {
+            return Collections.emptyList();
+        }
+
+        List<PluginWrapper> results = new ArrayList<>(plugins.size());
+        for (InputLocationTracker o : plugins) {
+            // null or true means it is most assumed a Maven default
+            if (banMavenDefaults
+                    && (isVersionFromDefaultLifecycleBindings(o).orElse(true)
+                            || isVersionFromSuperpom(o).orElse(true))) {
+                continue;
+            }
 
-                if (o instanceof Plugin) {
-                    results.add(new PluginWrapper((Plugin) o));
-                } else {
-                    if (o instanceof ReportPlugin) {
-                        results.add(new PluginWrapper((ReportPlugin) o));
-                    }
+            if (o instanceof Plugin) {
+                results.add(new PluginWrapper((Plugin) o));
+            } else {
+                if (o instanceof ReportPlugin) {
+                    results.add(new PluginWrapper((ReportPlugin) o));
                 }
             }
         }
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java
index eb75161..a552f03 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequirePluginVersions.java
@@ -834,59 +834,35 @@ public class RequirePluginVersions extends AbstractNonCacheableEnforcerRule {
     }
 
     private void getProfilePluginManagementPlugins(List<PluginWrapper> plugins, Model model, Profile profile) {
-        try {
-            List<Plugin> modelPlugins = profile.getBuild().getPluginManagement().getPlugins();
-            plugins.addAll(PluginWrapper.addAll(utils.resolvePlugins(modelPlugins), banMavenDefaults));
-        } catch (NullPointerException e) {
-            // guess there are no plugins here.
-        }
+        List<Plugin> modelPlugins = profile.getBuild().getPluginManagement().getPlugins();
+        plugins.addAll(PluginWrapper.addAll(utils.resolvePlugins(modelPlugins), banMavenDefaults));
     }
 
     private void getProfileReportingPlugins(List<PluginWrapper> plugins, Model model, Profile profile) {
-        try {
-            List<ReportPlugin> modelReportPlugins = profile.getReporting().getPlugins();
-            // add the reporting plugins
-            plugins.addAll(PluginWrapper.addAll(utils.resolveReportPlugins(modelReportPlugins), banMavenDefaults));
-        } catch (NullPointerException e) {
-            // guess there are no plugins here.
-        }
+        List<ReportPlugin> modelReportPlugins = profile.getReporting().getPlugins();
+        // add the reporting plugins
+        plugins.addAll(PluginWrapper.addAll(utils.resolveReportPlugins(modelReportPlugins), banMavenDefaults));
     }
 
     private void getProfilePlugins(List<PluginWrapper> plugins, Model model, Profile profile) {
-        try {
-            List<Plugin> modelPlugins = profile.getBuild().getPlugins();
-            plugins.addAll(PluginWrapper.addAll(utils.resolvePlugins(modelPlugins), banMavenDefaults));
-        } catch (NullPointerException e) {
-            // guess there are no plugins here.
-        }
+        List<Plugin> modelPlugins = profile.getBuild().getPlugins();
+        plugins.addAll(PluginWrapper.addAll(utils.resolvePlugins(modelPlugins), banMavenDefaults));
     }
 
     private void getPlugins(List<PluginWrapper> plugins, Model model) {
-        try {
-            List<Plugin> modelPlugins = model.getBuild().getPlugins();
-            plugins.addAll(PluginWrapper.addAll(utils.resolvePlugins(modelPlugins), banMavenDefaults));
-        } catch (NullPointerException e) {
-            // guess there are no plugins here.
-        }
+        List<Plugin> modelPlugins = model.getBuild().getPlugins();
+        plugins.addAll(PluginWrapper.addAll(utils.resolvePlugins(modelPlugins), banMavenDefaults));
     }
 
     private void getPluginManagementPlugins(List<PluginWrapper> plugins, Model model) {
-        try {
-            List<Plugin> modelPlugins = model.getBuild().getPluginManagement().getPlugins();
-            plugins.addAll(PluginWrapper.addAll(utils.resolvePlugins(modelPlugins), banMavenDefaults));
-        } catch (NullPointerException e) {
-            // guess there are no plugins here.
-        }
+        List<Plugin> modelPlugins = model.getBuild().getPluginManagement().getPlugins();
+        plugins.addAll(PluginWrapper.addAll(utils.resolvePlugins(modelPlugins), banMavenDefaults));
     }
 
     private void getReportingPlugins(List<PluginWrapper> plugins, Model model) {
-        try {
-            List<ReportPlugin> modelReportPlugins = model.getReporting().getPlugins();
-            // add the reporting plugins
-            plugins.addAll(PluginWrapper.addAll(utils.resolveReportPlugins(modelReportPlugins), banMavenDefaults));
-        } catch (NullPointerException e) {
-            // guess there are no plugins here.
-        }
+        List<ReportPlugin> modelReportPlugins = model.getReporting().getPlugins();
+        // add the reporting plugins
+        plugins.addAll(PluginWrapper.addAll(utils.resolveReportPlugins(modelReportPlugins), banMavenDefaults));
     }
 
     /**