apache / apache/maven-pmd-plugin

Crash on multi module project when ``benchmark`` is set and parallel building is active

Open
#656 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
66
Forks
55
Avg merge
8d 16h
Merged PRs (30d)
7

Description

### Affected version

3.7.0

### Bug description

When ``true`` is set on a mult-maven module project and I run ``mvn test pmd:aggregate-pmd-no-fork pmd:check -T2C`` (parallel building active!) the following crash happens:

(cleaned up version because the error is present like 6 times and everything overlaps)
```
Using the MultiThreadedBuilder implementation with a thread count of 32
...
[INFO] >>> pmd:3.27.0:check (default-cli) > :pmd @ integration-tests >>>
[INFO]
[INFO] >>> pmd:3.27.0:check (default-cli) > :pmd @ domain >>>
[INFO]
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for redacted 4.0.0-SNAPSHOT:
[INFO]
[INFO] redacted ........................................... SUCCESS [ 0.023 s]
[INFO] domain ............................................. FAILURE [ 1.332 s]
[INFO] domain-metamodel ................................... SUCCESS [ 2.580 s]
[INFO] infrastructure-persistence ......................... SUCCESS [ 1.474 s]
[INFO] session-api ........................................ FAILURE [ 1.241 s]
[INFO] xxxxxxxxxxxx ....................................... SUCCESS [ 0.119 s]
[INFO] application ........................................ SUCCESS [ 1.311 s]
[INFO] external-connector ................................. SUCCESS [ 1.019 s]
[INFO] webapp-dev-xxxxxx .................................. FAILURE [ 1.235 s]
[INFO] xxxxxx-spring-boot-starter-optimized ............... SUCCESS [ 0.496 s]
[INFO] xxxxxx-shared-meta ................................. FAILURE [ 1.239 s]
[INFO] xxxxxx-shared ...................................... SUCCESS [ 0.144 s]
[INFO] external-connector-xxxxxx-ui ....................... SUCCESS [ 0.795 s]
[INFO] integration-tests .................................. SUCCESS [ 0.028 s]
[INFO] tci-db ............................................. SUCCESS [ 0.577 s]
[INFO] infrastructure-persistence-testcontainers .......... SUCCESS [ 0.873 s]
[INFO] xxxx-api-client .................................... SUCCESS [ 1.271 s]
[INFO] tci-xxxx ........................................... SUCCESS [ 0.204 s]
[INFO] tci-redacted-webapp ................................ FAILURE [ 1.212 s]
[INFO] xxxxxxxxxxxx-xxxx .................................. SUCCESS [ 0.613 s]
[INFO] webapp-meta ........................................ SUCCESS [ 0.090 s]
[INFO] webapp-xxxx-elements ............................... SUCCESS [ 0.136 s]
[INFO] webapp-xxxx ........................................ SUCCESS [ 1.101 s]
[INFO] xxxxxxxxxxxx-xxxx-xxxxxx-ui ........................ SUCCESS [ 0.833 s]
[INFO] timetracker ........................................ SUCCESS [ 0.104 s]
[INFO] timetracker-xxxxxxx ................................ SUCCESS [ 0.088 s]
[INFO] timetracker-xxxxxxx-xxxxxx-ui ...................... SUCCESS [ 0.672 s]
[INFO] xxxxxx-xxxxx-plugin ................................ SUCCESS [ 3.711 s]
[INFO] webapp ............................................. SUCCESS [ 4.698 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.960 s (Wall Clock)
[INFO] Finished at: 2025-08-28T09:37:29+02:00
[INFO] ------------------------------------------------------------------------
...
Failed to execute goal org.apache.maven.plugins:maven-pmd-plugin:3.27.0:pmd (pmd) on project domain: Execution pmd of goal org.apache.maven.plugins:maven-pmd-plugin:3.27.0:pmd failed: Cannot invoke "net.sourceforge.pmd.benchmark.TimingReport.getLabeledMeasurements(net.sourceforge.pmd.benchmark.TimedOperationCategory)" because "report" is null
Caused by: java.lang.NullPointerException: Cannot invoke "net.sourceforge.pmd.benchmark.TimingReport.getLabeledMeasurements(net.sourceforge.pmd.benchmark.TimedOperationCategory)" because "report" is null
at net.sourceforge.pmd.benchmark.TextTimingReportRenderer.render (TextTimingReportRenderer.java:43)
at org.apache.maven.plugins.pmd.exec.PmdExecutor.writeBenchmarkReport (PmdExecutor.java:274)
at org.apache.maven.plugins.pmd.exec.PmdExecutor.run (PmdExecutor.java:206)
at org.apache.maven.plugins.pmd.exec.PmdServiceExecutor.execute (PmdServiceExecutor.java:54)
at org.apache.maven.plugins.pmd.PmdReport.executePmd (PmdReport.java:373)
at org.apache.maven.plugins.pmd.PmdReport.canGenerateReport (PmdReport.java:327)
at org.apache.maven.reporting.AbstractMavenReport.execute (AbstractMavenReport.java:200)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions (MojoExecutor.java:448)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:311)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:193)
at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:180)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:572)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1583)
```

The problem is not present when parallel building is disabled.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.