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