Affects PMD Version:
Branch experimental-apex-parser
Part of #3766
Description:
Collection of parser bugs and rule differences, that need to be investigated.
org.apache.commons.lang3.exception.ContextedRuntimeException: java.lang.NullPointerException Exception Context: [1:Rule applied on node=ApexFile] --------------------------------- at net.sourceforge.pmd.util.AssertionUtil.contexted(AssertionUtil.java:232) at net.sourceforge.pmd.lang.rule.internal.RuleApplicator.applyOnIndex(RuleApplicator.java:77) at net.sourceforge.pmd.lang.rule.internal.RuleApplicator.apply(RuleApplicator.java:55) at net.sourceforge.pmd.RuleSets.apply(RuleSets.java:158) at net.sourceforge.pmd.lang.impl.PmdRunnable.processSource(PmdRunnable.java:140) at net.sourceforge.pmd.lang.impl.PmdRunnable.run(PmdRunnable.java:80) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.NullPointerException at net.sourceforge.pmd.lang.apex.rule.errorprone.AvoidNonExistentAnnotationsRule.checkForNonExistentAnnotation(AvoidNonExistentAnnotationsRule.java:62) at net.sourceforge.pmd.lang.apex.rule.errorprone.AvoidNonExistentAnnotationsRule.visit(AvoidNonExistentAnnotationsRule.java:58) at net.sourceforge.pmd.lang.apex.ast.ASTField.acceptApexVisitor(ASTField.java:42) at net.sourceforge.pmd.lang.apex.ast.AbstractApexNode.acceptVisitor(AbstractApexNode.java:127) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visitNode(ApexParserVisitor.java:17) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visit(ApexParserVisitor.java:24) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visitApexNode(ApexParserVisitor.java:29) at net.sourceforge.pmd.lang.apex.ast.ApexVisitor.visit(ApexVisitor.java:352) at net.sourceforge.pmd.lang.apex.rule.errorprone.AvoidNonExistentAnnotationsRule.visit(AvoidNonExistentAnnotationsRule.java:42) at net.sourceforge.pmd.lang.apex.ast.ASTUserEnum.acceptApexVisitor(ASTUserEnum.java:18) at net.sourceforge.pmd.lang.apex.ast.AbstractApexNode.acceptVisitor(AbstractApexNode.java:127) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visitNode(ApexParserVisitor.java:17) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visit(ApexParserVisitor.java:24) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visitApexNode(ApexParserVisitor.java:29) at net.sourceforge.pmd.lang.apex.ast.ApexVisitor.visit(ApexVisitor.java:344) at net.sourceforge.pmd.lang.apex.rule.errorprone.AvoidNonExistentAnnotationsRule.visit(AvoidNonExistentAnnotationsRule.java:30) at net.sourceforge.pmd.lang.apex.ast.ASTUserClass.acceptApexVisitor(ASTUserClass.java:21) at net.sourceforge.pmd.lang.apex.ast.AbstractApexNode.acceptVisitor(AbstractApexNode.java:127) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visitNode(ApexParserVisitor.java:17) at net.sourceforge.pmd.lang.apex.ast.ApexVisitor.visit(ApexVisitor.java:20) at net.sourceforge.pmd.lang.apex.ast.ASTApexFile.acceptApexVisitor(ASTApexFile.java:61) at net.sourceforge.pmd.lang.apex.ast.AbstractApexNode.acceptVisitor(AbstractApexNode.java:127) at net.sourceforge.pmd.lang.apex.rule.AbstractApexRule.apply(AbstractApexRule.java:17) at net.sourceforge.pmd.lang.rule.AbstractDelegateRule.apply(AbstractDelegateRule.java:232) at net.sourceforge.pmd.lang.rule.internal.RuleApplicator.applyOnIndex(RuleApplicator.java:75) ... 9 moreStacktrace 2
org.apache.commons.lang3.exception.ContextedRuntimeException: java.lang.NullPointerException Exception Context: [1:Rule applied on node=ApexFile] --------------------------------- at net.sourceforge.pmd.util.AssertionUtil.contexted(AssertionUtil.java:232) at net.sourceforge.pmd.lang.rule.internal.RuleApplicator.applyOnIndex(RuleApplicator.java:77) at net.sourceforge.pmd.lang.rule.internal.RuleApplicator.apply(RuleApplicator.java:55) at net.sourceforge.pmd.RuleSets.apply(RuleSets.java:158) at net.sourceforge.pmd.lang.impl.PmdRunnable.processSource(PmdRunnable.java:140) at net.sourceforge.pmd.lang.impl.PmdRunnable.run(PmdRunnable.java:80) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.NullPointerException at net.sourceforge.pmd.lang.apex.rule.errorprone.AvoidNonExistentAnnotationsRule.checkForNonExistentAnnotation(AvoidNonExistentAnnotationsRule.java:62) at net.sourceforge.pmd.lang.apex.rule.errorprone.AvoidNonExistentAnnotationsRule.visit(AvoidNonExistentAnnotationsRule.java:58) at net.sourceforge.pmd.lang.apex.ast.ASTField.acceptApexVisitor(ASTField.java:42) at net.sourceforge.pmd.lang.apex.ast.AbstractApexNode.acceptVisitor(AbstractApexNode.java:127) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visitNode(ApexParserVisitor.java:17) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visit(ApexParserVisitor.java:24) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visitApexNode(ApexParserVisitor.java:29) at net.sourceforge.pmd.lang.apex.ast.ApexVisitor.visit(ApexVisitor.java:352) at net.sourceforge.pmd.lang.apex.rule.errorprone.AvoidNonExistentAnnotationsRule.visit(AvoidNonExistentAnnotationsRule.java:42) at net.sourceforge.pmd.lang.apex.ast.ASTUserEnum.acceptApexVisitor(ASTUserEnum.java:18) at net.sourceforge.pmd.lang.apex.ast.AbstractApexNode.acceptVisitor(AbstractApexNode.java:127) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visitNode(ApexParserVisitor.java:17) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visit(ApexParserVisitor.java:24) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visitApexNode(ApexParserVisitor.java:29) at net.sourceforge.pmd.lang.apex.ast.ApexVisitor.visit(ApexVisitor.java:344) at net.sourceforge.pmd.lang.apex.rule.errorprone.AvoidNonExistentAnnotationsRule.visit(AvoidNonExistentAnnotationsRule.java:30) at net.sourceforge.pmd.lang.apex.ast.ASTUserClass.acceptApexVisitor(ASTUserClass.java:21) at net.sourceforge.pmd.lang.apex.ast.AbstractApexNode.acceptVisitor(AbstractApexNode.java:127) at net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor.visitNode(ApexParserVisitor.java:17) at net.sourceforge.pmd.lang.apex.ast.ApexVisitor.visit(ApexVisitor.java:20) at net.sourceforge.pmd.lang.apex.ast.ASTApexFile.acceptApexVisitor(ASTApexFile.java:61) at net.sourceforge.pmd.lang.apex.ast.AbstractApexNode.acceptVisitor(AbstractApexNode.java:127) at net.sourceforge.pmd.lang.apex.rule.AbstractApexRule.apply(AbstractApexRule.java:17) at net.sourceforge.pmd.lang.rule.AbstractDelegateRule.apply(AbstractDelegateRule.java:232) at net.sourceforge.pmd.lang.rule.internal.RuleApplicator.applyOnIndex(RuleApplicator.java:75) ... 9 more
<clinit>
). In the Jorje variant, we didn't support formal comments for fields in AST, now we do. So, this is a overall improvement. Note: The rule ApexDoc doesn't consider fields.Map<Id,SObject>
now it is Map<Id, SObject>
. I like it this way better, so we keep it and expect slight changes in the violation messages.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