Uploaded image for project: 'Maven Enforcer Plugin'
  1. Maven Enforcer Plugin
  2. MENFORCER-56

NPE if <requireFilesExist> contains an unset variable

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.0-beta-1
    • Standard Rules
    • None

    Description

      With this snippet of metadata:
      <requireProperty>
      <property>ndbj.jnilib2</property>
      <message>"You must have a ndbj.jnilib2!"</message>
      </requireProperty>
      <requireFilesExist>
      <files>
      <file>${ndbj.jnilib2}</file>
      </files>
      </requireFilesExist>

      the variable ndbj.jnilib2 doesn't exist and results in:

      java.lang.NullPointerException
      at org.apache.maven.plugins.enforcer.RequireFilesExist.checkFile(RequireFilesExist.java:38)
      at org.apache.maven.plugins.enforcer.AbstractRequireFiles.execute(AbstractRequireFiles.java:71)
      at org.apache.maven.plugins.enforcer.EnforceMojo.execute(EnforceMojo.java:185)
      at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:443)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
      at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
      at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
      at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

      Attachments

        1. menforcer-56.patch
          0.5 kB
          Craig L Russell

        Activity

          This might be a reasonable patch or you might want to put the null check in the abstract superclass.

          clr Craig L Russell added a comment - This might be a reasonable patch or you might want to put the null check in the abstract superclass.
          brett Brett Porter added a comment -

          also needed to adjust the error message. Added a test to confirm.

          brett Brett Porter added a comment - also needed to adjust the error message. Added a test to confirm.

          People

            brett Brett Porter
            clr Craig L Russell
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: