I have problem with InvalidSlf4jMessageFormat.
My env:
PMD 5.5.1
gradle 2.14.1
package my.test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Test {
private static final Logger log = LoggerFactory.getLogger(Test.class);
public static void main(String[] args) {
log.info("1" + "2");
}
}
It throws NPE with gradle related stacktrace (see attached file):
:pmdMain
Exception applying rule InvalidSlf4jMessageFormat on file E:\srcOther\test\src\main\java\my\test\Test.java, continuing with next rule
java.lang.NullPointerException
at net.sourceforge.pmd.lang.java.rule.logging.InvalidSlf4jMessageFormatRule.expectedArguments(InvalidSlf4jMessageFormatRule.java:117)
at net.sourceforge.pmd.lang.java.rule.logging.InvalidSlf4jMessageFormatRule.visit(InvalidSlf4jMessageFormatRule.java:80)
at net.sourceforge.pmd.lang.java.ast.ASTName.jjtAccept(ASTName.java:36)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.childrenAccept(AbstractJavaNode.java:55)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:74)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:379)
at net.sourceforge.pmd.lang.java.ast.ASTPrimaryPrefix.jjtAccept(ASTPrimaryPrefix.java:42)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaNode.childrenAccept(AbstractJavaNode.java:55)
at net.sourceforge.pmd.lang.java.rule.AbstractJavaRule.visit(AbstractJavaRule.java:74)
You can see full project in attached files.
run:
gradle clean pmdMain
I can't reproduce this bug with pmd client lib without gradle.
This bug will be fixed with PMD 5.5.2.
Commit: https://github.com/pmd/pmd/commit/a6acf7ca8196f1bc756b53b1d4381301649f6a79