Configuration of javadoc:javadoc fails with NPE upon disadvantageous order of 
config injection
----------------------------------------------------------------------------------------------

                 Key: MJAVADOC-251
                 URL: http://jira.codehaus.org/browse/MJAVADOC-251
             Project: Maven 2.x Javadoc Plugin
          Issue Type: Bug
    Affects Versions: 2.6
            Reporter: Benjamin Bentmann
            Priority: Critical


Compare these two logs from Maven 3.x
{noformat}
[DEBUG] Configuring mojo 
'org.apache.maven.plugins:maven-javadoc-plugin:2.5:javadoc' with basic 
configurator -->
[DEBUG]   (f) nosince = false
[DEBUG]   (f) use = true
[DEBUG]   (f) bootclasspathArtifacts = []
[DEBUG]   (f) links = []
[DEBUG]   (f) encoding = UTF-8
[DEBUG]   (f) aggregate = false
[DEBUG]   (f) tags = []
[DEBUG]   (f) isOffline = false
[DEBUG]   (f) useStandardDocletOptions = true
[DEBUG]   (f) taglets = []
[DEBUG]   (f) doctitle = Maven Ant Plugin 2.3-SNAPSHOT API
[DEBUG]   (f) resourcesArtifacts = []
[DEBUG]   (s) reportOutputDirectory = 
M:\maven\plugins\maven-ant-plugin\target\site\apidocs
Unable to parse the created DOM for plugin configuration
org.apache.maven.plugin.PluginConfigurationException: Unable to parse the 
created DOM for plugin configuration
        at 
org.apache.maven.plugin.DefaultPluginManager.populatePluginFields(DefaultPluginManager.java:611)
        at 
org.apache.maven.plugin.DefaultPluginManager.getConfiguredMojo(DefaultPluginManager.java:564)
        at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:336)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:281)
        at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:208)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:181)
        at 
org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:467)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:163)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:56)
        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:597)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:408)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:351)
Caused by: 
org.codehaus.plexus.component.configurator.ComponentConfigurationException:
Setter
  org.apache.maven.plugin.javadoc.JavadocReport.setReportOutputDirectory( 
java.lang.Class )
threw exception when called with parameter 
'M:\maven\plugins\maven-ant-plugin\target\site\apidocs': null
        at 
org.codehaus.plexus.component.configurator.converters.ComponentValueSetter.setValueUsingSetter(ComponentValueSetter.java:204)
        at 
org.codehaus.plexus.component.configurator.converters.ComponentValueSetter.configure(ComponentValueSetter.java:225)
        at 
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:140)
        at 
org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent(BasicComponentConfigurator.java:58)
        at 
org.apache.maven.plugin.DefaultPluginManager.populatePluginFields(DefaultPluginManager.java:605)
        ... 16 more
Caused by: java.lang.reflect.InvocationTargetException
        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:597)
        at 
org.codehaus.plexus.component.configurator.converters.ComponentValueSetter.setValueUsingSetter(ComponentValueSetter.java:191)
        ... 20 more
Caused by: java.lang.NullPointerException
        at java.lang.String.endsWith(String.java:1466)
        at 
org.apache.maven.plugin.javadoc.JavadocReport.setReportOutputDirectory(JavadocReport.java:184)
        ... 25 more
{noformat}
and from Maven 2.2.x
{noformat}
[DEBUG] Configuring mojo 
'org.apache.maven.plugins:maven-javadoc-plugin:2.5:javadoc' -->
[DEBUG]   (f) aggregate = false
[DEBUG]   (f) author = true
[DEBUG]   (f) bootclasspathArtifacts = []
[DEBUG]   (f) bottom = Copyright © {inceptionYear}-{currentYear} 
{organizationName}. All Rights Reserved.
[DEBUG]   (f) breakiterator = false
[DEBUG]   (f) debug = false
[DEBUG]   (f) destDir = apidocs
[DEBUG]   (f) docfilessubdirs = false
[DEBUG]   (f) docletArtifact = groupId = 'null'artifactId = 'null'version = 
'null'
[DEBUG]   (f) docletArtifacts = []
[DEBUG]   (f) doctitle = Maven Ant Plugin 2.3-SNAPSHOT API
[DEBUG]   (f) encoding = UTF-8
[DEBUG]   (f) failOnError = true
[DEBUG]   (f) groups = []
[DEBUG]   (f) isOffline = false
[DEBUG]   (f) javadocDirectory = 
M:\maven\plugins\maven-ant-plugin\src\main\javadoc
[DEBUG]   (f) keywords = false
[DEBUG]   (f) links = []
[DEBUG]   (f) linksource = false
[DEBUG]   (f) localRepository = Repository[local|file://U:\Jeder\Maven-2]
[DEBUG]   (f) nocomment = false
[DEBUG]   (f) nodeprecated = false
[DEBUG]   (f) nodeprecatedlist = false
[DEBUG]   (f) nohelp = false
[DEBUG]   (f) noindex = false
[DEBUG]   (f) nonavbar = false
[DEBUG]   (f) nooverview = false
[DEBUG]   (f) nosince = false
[DEBUG]   (f) notimestamp = false
[DEBUG]   (f) notree = false
[DEBUG]   (f) offlineLinks = []
[DEBUG]   (f) old = false
[DEBUG]   (f) outputDirectory = M:\maven\plugins\maven-ant-plugin\target\apidocs
[DEBUG]   (f) overview = 
M:\maven\plugins\maven-ant-plugin\src\main\javadoc\overview.html
[DEBUG]   (f) project = MavenProject: 
org.apache.maven.plugins:maven-ant-plugin:2.3-SNAPSHOT @ 
M:\maven\plugins\maven-ant-plugin\pom.xml
[DEBUG]   (f) quiet = false
[DEBUG]   (f) reactorProjects = [MavenProject: 
org.apache.maven.plugins:maven-ant-plugin:2.3-SNAPSHOT @ 
M:\maven\plugins\maven-ant-plugin\pom.xml]
[DEBUG]   (f) remoteRepositories = 
[Repository[apache.snapshots|http://repository.apache.org/snapshots], 
Repository[central|http://repo1.maven.org/maven2]]
[DEBUG]   (s) reportOutputDirectory = 
M:\maven\plugins\maven-ant-plugin\target\site\apidocs
[DEBUG]   (f) resourcesArtifacts = []
[DEBUG]   (f) serialwarn = false
[DEBUG]   (f) session = org.apache.maven.execution.mavensess...@272961
[DEBUG]   (f) settings = org.apache.maven.settings.setti...@1c0b8a0
[DEBUG]   (f) show = protected
[DEBUG]   (f) skip = false
[DEBUG]   (f) splitindex = false
[DEBUG]   (f) stylesheet = java
[DEBUG]   (f) tagletArtifact = groupId = 'null'artifactId = 'null'version = 
'null'
[DEBUG]   (f) tagletArtifacts = []
[DEBUG]   (f) taglets = []
[DEBUG]   (f) tags = []
[DEBUG]   (f) use = true
[DEBUG]   (f) useStandardDocletOptions = true
[DEBUG]   (f) verbose = false
[DEBUG]   (f) version = true
[DEBUG]   (f) windowtitle = Maven Ant Plugin 2.3-SNAPSHOT API
[DEBUG] -- end configuration --
{noformat}

Note the different order in which the parameter values are injected. When 
{{reportOutputDirectory}} is injected before {{destDir}}, the mojo produces the 
NPE.

The plugin should not rely on any particular ordering of the parameters.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to