You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Andrey Turbanov (Jira)" <ji...@apache.org> on 2023/01/10 07:49:00 UTC

[jira] [Created] (MENFORCER-459) Plugin shouldn't use NullPointerException for non-exceptional code flow

Andrey Turbanov created MENFORCER-459:
-----------------------------------------

             Summary: Plugin shouldn't use NullPointerException for non-exceptional code flow
                 Key: MENFORCER-459
                 URL: https://issues.apache.org/jira/browse/MENFORCER-459
             Project: Maven Enforcer Plugin
          Issue Type: Bug
            Reporter: Andrey Turbanov


When I debugged build of my project I noticed that maven-enforcer-plugin generates lots of NPEs with this stack trace:
{noformat}
 at java.util.ArrayList.addAll(ArrayList.java:702)
  at org.apache.maven.plugins.enforcer.RequirePluginVersions.getReportingPlugins(RequirePluginVersions.java:1062)
  at org.apache.maven.plugins.enforcer.RequirePluginVersions.getAllPluginEntries(RequirePluginVersions.java:970)
  at org.apache.maven.plugins.enforcer.RequirePluginVersions.execute(RequirePluginVersions.java:237)
  at org.apache.maven.plugins.enforcer.EnforceMojo.execute(EnforceMojo.java:199)
  - locked <0x1eb6> (a org.apache.maven.plugins.enforcer.RequirePluginVersions)
  at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
  at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:301)
  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:211)
  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:165)
  at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:157)
  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:121)
  at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:210)
  at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:195)
  at java.util.concurrent.FutureTask.run(FutureTask.java:264)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
  at java.util.concurrent.FutureTask.run(FutureTask.java:264)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
  at java.lang.Thread.run(Thread.java:829)
{noformat}

Exceptions shouldn't be used for non-exceptional flow.
Also it's considered bad practice to return null from a method which returns collection. Empty collection should be returned instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)