You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Andreas Dangel (Jira)" <ji...@apache.org> on 2020/10/22 09:12:00 UTC

[jira] [Commented] (MPMD-307) NPE when using custom rule

    [ https://issues.apache.org/jira/browse/MPMD-307?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17218884#comment-17218884 ] 

Andreas Dangel commented on MPMD-307:
-------------------------------------

That's probably a regression due to the restructuring for MPMD-304.

Previously, we got just an empty string for the not existing externalInfoUrl, now we get {{null}}. The empty externalInfoUrl is not written down into the XML report (pmd.xml). When reading back for rendering the HTML site, we now get null.

> NPE when using custom rule
> --------------------------
>
>                 Key: MPMD-307
>                 URL: https://issues.apache.org/jira/browse/MPMD-307
>             Project: Maven PMD Plugin
>          Issue Type: Bug
>          Components: PMD
>    Affects Versions: 3.14.0
>            Reporter: Andreas Dangel
>            Assignee: Andreas Dangel
>            Priority: Major
>             Fix For: 3.14.0
>
>
> While testing the latest m-pmd-p 3.14.0-SNAPSHOT, the following NPE can appear, if a custom ruleset with custom rules are used:
>  
> {code:java}
> [ERROR] Failed to execute goal org.apache.maven.plugins:maven-pmd-plugin:3.14.0-SNAPSHOT:pmd (default-cli) on project pmd-java: Execution default-cli of goal org.apache.maven.plugins:maven-pmd-plugin:3.14.0-SNAPSHOT:pmd failed: Link name cannot be null! -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-pmd-plugin:3.14.0-SNAPSHOT:pmd (default-cli) on project pmd-java: Execution default-cli of goal org.apache.maven.plugins:maven-pmd-plugin:3.14.0-SNAPSHOT:pmd failed: Link name cannot be null!
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
>     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:56)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
>     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
>     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:566)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.apache.maven.plugins:maven-pmd-plugin:3.14.0-SNAPSHOT:pmd failed: Link name cannot be null!
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
>     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:56)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
>     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
>     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:566)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
> Caused by: java.lang.NullPointerException: Link name cannot be null!
>     at org.apache.maven.doxia.sink.impl.Xhtml5BaseSink.link (Xhtml5BaseSink.java:1851)
>     at org.apache.maven.doxia.sink.impl.Xhtml5BaseSink.link (Xhtml5BaseSink.java:1825)
>     at org.apache.maven.doxia.sink.impl.Xhtml5BaseSink.link (Xhtml5BaseSink.java:1816)
>     at org.apache.maven.plugins.pmd.PmdReportGenerator.processSingleRuleViolation (PmdReportGenerator.java:190)
>     at org.apache.maven.plugins.pmd.PmdReportGenerator.renderViolationsTable (PmdReportGenerator.java:335)
>     at org.apache.maven.plugins.pmd.PmdReportGenerator.renderViolationsByPriority (PmdReportGenerator.java:280)
>     at org.apache.maven.plugins.pmd.PmdReportGenerator.render (PmdReportGenerator.java:469)
>     at org.apache.maven.plugins.pmd.PmdReport.generateMavenSiteReport (PmdReport.java:474)
>     at org.apache.maven.plugins.pmd.PmdReport.execute (PmdReport.java:305)
>     at org.apache.maven.plugins.pmd.PmdReport.executeReport (PmdReport.java:284)
>     at org.apache.maven.reporting.AbstractMavenReport.generate (AbstractMavenReport.java:251)
>     at org.apache.maven.reporting.AbstractMavenReport.execute (AbstractMavenReport.java:144)
>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
>     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:56)
>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
>     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
>     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke (Method.java:566)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
>     at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
> [ERROR] 
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR] 
> [ERROR] For more information about the errors and possible solutions, please read the following articles:
> [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
>  {code}
> The reason is, that the custom rule doesn't have a externalInfoUrl property defined, so we can't create a link to the rule description in the HTML report.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)