Rule Set: Java
Description:
The @SuppressWarnings("deprecation")
line causes an unhandled NullPointerException in the new JUnitTestsShouldIncludeAssert rule. The "deprecation" string doesn't matter; it could be anything. Commenting out the line does not change the error either; I have to delete it entirely.
Code Sample demonstrating the issue:
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class FooTest {
@SuppressWarnings("deprecation")
private static Foo foo = new Foo();
@Test
public void testFoo() {
assertEquals("doesn't matter", "doesn't matter");
}
}
Running PMD through: CLI, pmd version 5.7.0
Exception
Exception applying rule JUnitTestsShouldIncludeAssert on file badcode/BadCode.java, continuing with next rule
java.lang.NullPointerException
at net.sourceforge.pmd.lang.java.rule.junit.JUnitTestsShouldIncludeAssertRule.getRuleAnnotatedExpectedExceptions(JUnitTestsShouldIncludeAssertRule.java:86)
at net.sourceforge.pmd.lang.java.rule.junit.JUnitTestsShouldIncludeAssertRule.visit(JUnitTestsShouldIncludeAssertRule.java:42)
at net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration.jjtAccept(ASTMethodDeclaration.java:25)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.childrenAccept(AbstractJavaNode.java:56)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:75)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:112)
at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceBodyDeclaration.jjtAccept(ASTClassOrInterfaceBodyDeclaration.java:41)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.childrenAccept(AbstractJavaNode.java:56)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:75)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:108)
at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceBody.jjtAccept(ASTClassOrInterfaceBody.java:21)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.childrenAccept(AbstractJavaNode.java:56)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:75)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:84)
at net.sourceforge.pmd.lang.java.rule.junit.JUnitTestsShouldIncludeAssertRule.visit(JUnitTestsShouldIncludeAssertRule.java:34)
at net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration.jjtAccept(ASTClassOrInterfaceDeclaration.java:30)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.childrenAccept(AbstractJavaNode.java:56)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:75)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:224)
at net.sourceforge.pmd.lang.java.ast.ASTTypeDeclaration.jjtAccept(ASTTypeDeclaration.java:35)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.childrenAccept(AbstractJavaNode.java:56)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:75)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:204)
at net.sourceforge.pmd.lang.java.rule.junit.AbstractJUnitRule.visit(AbstractJUnitRule.java:66)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visitAll(AbstractJavaRule.java:32)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.apply(AbstractJavaRule.java:26)
at net.sourceforge.pmd.lang.rule.AbstractDelegateRule.apply(AbstractDelegateRule.java:261)
at net.sourceforge.pmd.RuleSet.apply(RuleSet.java:465)
at net.sourceforge.pmd.RuleSets.apply(RuleSets.java:133)
at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:170)
at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:97)
at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:52)
at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:88)
at net.sourceforge.pmd.processor.PmdRunnable.call(PmdRunnable.java:27)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
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