aldaris / docbook-linktester

Tests external links and olinks in DocBook documentation for validity
3 stars 1 forks source link

NPE during validation #20

Open markcraig opened 6 years ago

markcraig commented 6 years ago

When using version 2.0.0, running the following execution against a file, chap-ldap-result-codes.xml, which seems to be valid DocBook XML, I get an NPE:

<execution>
    <id>validate-generated-docbook-result-codes</id>
    <phase>verify</phase>
    <goals>
        <goal>check</goal>
    </goals>
    <configuration>
        <docSources>
            <docSource>
                <directory>${project.build.directory}/docbkx-sources/shared</directory>
                <includes>**/chap-ldap-result-codes.xml</includes>
            </docSource>
        </docSources>
        <validating>true</validating>
        <skipUrls>true</skipUrls>
        <xIncludeAware>true</xIncludeAware>
        <failOnError>true</failOnError>
        <outputFile>${project.build.directory}/docbook-validation-log.txt</outputFile>
    </configuration>
</execution>

Here's the debug output I'm seeing:

[INFO] --- linktester-maven-plugin:2.0.0:check (validate-generated-docbook-result-codes) @ opendj-doc-generated-ref ---
[DEBUG] Configuring mojo org.forgerock.maven.plugins:linktester-maven-plugin:2.0.0:check from plugin realm ClassRealm[plugin>org.forgerock.maven.plugins:linktester-maven-plugin:2.0.0, parent: sun.misc.Launcher$AppClassLoader@74a14482]
[DEBUG] Configuring mojo 'org.forgerock.maven.plugins:linktester-maven-plugin:2.0.0:check' with basic configurator -->
[DEBUG]   (f) directory = /home/mark/Repositories/opendj/opendj-doc-generated-ref/target/docbkx-sources/shared
[DEBUG]   (f) includes = [**/chap-ldap-result-codes.xml]
[DEBUG]   (f) docSources = [DocSource{directory=/home/mark/Repositories/opendj/opendj-doc-generated-ref/target/docbkx-sources/shared, includes=[**/chap-ldap-result-codes.xml], excludes=null}]
[DEBUG]   (f) failOnError = true
[DEBUG]   (f) outputFile = /home/mark/Repositories/opendj/opendj-doc-generated-ref/target/docbook-validation-log.txt
[DEBUG]   (f) project = MavenProject: org.forgerock.opendj:opendj-doc-generated-ref:6.0.0-SNAPSHOT @ /home/mark/Repositories/opendj/opendj-doc-generated-ref/pom.xml
[DEBUG]   (f) skipOlinks = false
[DEBUG]   (f) skipUrls = true
[DEBUG]   (f) validating = true
[DEBUG]   (f) xIncludeAware = true
[DEBUG] -- end configuration --
[DEBUG] Deleting existing outputFile: /home/mark/Repositories/opendj/opendj-doc-generated-ref/target/docbook-validation-log.txt
[DEBUG] Scanning DocSource{directory=/home/mark/Repositories/opendj/opendj-doc-generated-ref/target/docbkx-sources/shared, includes=[**/chap-ldap-result-codes.xml], excludes=null} revealed the following doc files:
[chap-ldap-result-codes.xml]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25.211 s
[INFO] Finished at: 2017-12-15T08:27:44+01:00
[INFO] Final Memory: 67M/1718M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.forgerock.maven.plugins:linktester-maven-plugin:2.0.0:check (validate-generated-docbook-result-codes) on project opendj-doc-generated-ref: Execution validate-generated-docbook-result-codes of goal org.forgerock.maven.plugins:linktester-maven-plugin:2.0.0:check failed.: NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.forgerock.maven.plugins:linktester-maven-plugin:2.0.0:check (validate-generated-docbook-result-codes) on project opendj-doc-generated-ref: Execution validate-generated-docbook-result-codes of goal org.forgerock.maven.plugins:linktester-maven-plugin:2.0.0:check failed.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:993)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:345)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:191)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    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:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution validate-generated-docbook-result-codes of goal org.forgerock.maven.plugins:linktester-maven-plugin:2.0.0:check failed.
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:145)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:993)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:345)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:191)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    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:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: java.lang.NullPointerException
    at org.forgerock.maven.plugins.LinkTester.extractXmlIds (LinkTester.java:291)
    at org.forgerock.maven.plugins.LinkTester.processDocSource (LinkTester.java:275)
    at org.forgerock.maven.plugins.LinkTester.execute (LinkTester.java:217)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:993)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:345)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:191)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    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:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)

The log is empty:

$ more opendj-doc-generated-ref/target/docbook-validation-log.txt 
$
markcraig commented 6 years ago

I've retested, because on rereading I thought the <includes> should contain an <include>, but that doesn't change the NPE.