Skip to content

[apex] ClassCastException caused by Javadoc #1396

@danbrycefairsailcom

Description

@danbrycefairsailcom

Affects PMD Version: 6.8.0

Rules:
ExcessiveParameterList
ExcessivePublicCount
ExcessiveClassLength
NcssConstructorCount
NcssMethodCount
NcssTypeCount

Possibly: ExcessiveClassLength
Possible all the inherit from AbstractStatisticalApexRule

Description: ClassCastException occurs when running pmd.bat against Apex files containing Javadoc comments.

java.lang.ClassCastException: net.sourceforge.pmd.lang.apex.ast.ASTFormalComment cannot be cast to net.sourceforge.pmd.lang.apex.ast.ApexNode
	at net.sourceforge.pmd.lang.apex.rule.design.ExcessiveNodeCountRule.visit(ExcessiveNodeCountRule.java:42)
	at net.sourceforge.pmd.lang.apex.rule.AbstractApexRule.visit(AbstractApexRule.java:157)
	at net.sourceforge.pmd.lang.apex.ast.ASTMethod.jjtAccept(ASTMethod.java:22)
	at net.sourceforge.pmd.lang.apex.rule.design.ExcessiveNodeCountRule.visit(ExcessiveNodeCountRule.java:42)
	at net.sourceforge.pmd.lang.apex.rule.AbstractApexRule.visit(AbstractApexRule.java:162)
	at net.sourceforge.pmd.lang.apex.rule.AbstractApexRule.visitAll(AbstractApexRule.java:134)
	at net.sourceforge.pmd.lang.apex.rule.AbstractApexRule.apply(AbstractApexRule.java:128)
	at net.sourceforge.pmd.lang.apex.rule.AbstractStatisticalApexRule.apply(AbstractStatisticalApexRule.java:31)
	at net.sourceforge.pmd.lang.rule.AbstractDelegateRule.apply(AbstractDelegateRule.java:336)
	at net.sourceforge.pmd.RuleSet.apply(RuleSet.java:499)
	at net.sourceforge.pmd.RuleSets.apply(RuleSets.java:143)
	at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:184)
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:96)
	at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:51)
	at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:78)
	at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:24)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Code Sample demonstrating the issue:

public class SomeClass {

    /**
     * Comment
     */
    public void doSomething() {
    	System.debug("hello world");
    }

}

Running PMD through: CLI

Windows 10
java version "1.8.0_181"

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