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"
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4