Skip to content

[java] NoClassDefFoundError on upgrade from 6.25.0 to 6.26.0 #2663

@pzygielo

Description

@pzygielo

Affects PMD Version:

6.26.0

Description:

Upgrading pmd-core & pmd-java in maven project causes build to fail with:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-pmd-plugin:3.13.0:pmd (pmd) on project cnfex: Execution pmd of goal org.apache.maven.plugins:maven-pmd-plugin:3.13.0:pmd failed: A required class was missing while executing org.apache.maven.plugins:maven-pmd-plugin:3.13.0:pmd: javax/el/ELResolver

PMD 6.25.0 didn't complain about this missing dependency (which isn't required to compile and package given project, with jakarta.faces-api in provided scope).

Exception Stacktrace:
First caused by

Caused by: java.lang.NoClassDefFoundError: javax/el/ELResolver
    at java.lang.Class.getDeclaredMethods0 (Native Method)
    at java.lang.Class.privateGetDeclaredMethods (Class.java:2701)
    at java.lang.Class.privateGetPublicMethods (Class.java:2902)
    at java.lang.Class.getMethods (Class.java:1615)
    at net.sourceforge.pmd.lang.java.ast.internal.ImportWrapper.<init> (ImportWrapper.java:44)
    at net.sourceforge.pmd.lang.java.ast.internal.ImportWrapper.<init> (ImportWrapper.java:33)
    at net.sourceforge.pmd.lang.java.rule.bestpractices.UnusedImportsRule.visit (UnusedImportsRule.java:131)
    at net.sourceforge.pmd.lang.java.ast.ASTImportDeclaration.jjtAccept (ASTImportDeclaration.java:143)
    at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit (AbstractJavaRule.java:219)
    at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit (AbstractJavaRule.java:391)
    at net.sourceforge.pmd.lang.java.rule.bestpractices.UnusedImportsRule.visit (UnusedImportsRule.java:57)
    at net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit.jjtAccept (ASTCompilationUnit.java:44)
    at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visitAll (AbstractJavaRule.java:162)
    at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.apply (AbstractJavaRule.java:156)
    at net.sourceforge.pmd.lang.rule.AbstractDelegateRule.apply (AbstractDelegateRule.java:336)

Code Sample demonstrating the issue:

pmd-6.26.0-CNFEx

Steps to reproduce:
For the reproducer from above:

./mvnw test -DpmdVersion=6.25.0

vs

./mvnw test -DpmdVersion=6.26.0

Running PMD through: Maven

Metadata

Metadata

Assignees

Labels

a:bugPMD crashes or fails to analyse a file.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions