From a6acf7ca8196f1bc756b53b1d4381301649f6a79 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Wed, 3 Aug 2016 19:43:10 +0200 Subject: [PATCH] Fixes #1509 [java] InvalidSlf4jMessageFormat NPE --- .../InvalidSlf4jMessageFormatRule.java | 10 +++++++++- .../xml/InvalidSlf4jMessageFormat.xml | 20 +++++++++++++++++++ src/site/markdown/overview/changelog.md | 3 +++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/logging/InvalidSlf4jMessageFormatRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/logging/InvalidSlf4jMessageFormatRule.java index 56020fffdd..238baae017 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/logging/InvalidSlf4jMessageFormatRule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/logging/InvalidSlf4jMessageFormatRule.java @@ -71,7 +71,15 @@ public class InvalidSlf4jMessageFormatRule extends AbstractJavaRule { final List argumentList = parentNode.getFirstChildOfType(ASTPrimarySuffix.class) .getFirstDescendantOfType(ASTArgumentList.class).findChildrenOfType(ASTExpression.class); for (final ASTExpression astExpression : argumentList) { - params.add(astExpression.getFirstChildOfType(ASTPrimaryExpression.class)); + ASTPrimaryExpression primaryExpression = astExpression.getFirstChildOfType(ASTPrimaryExpression.class); + if (primaryExpression != null) { + params.add(primaryExpression); + } + } + + if (params.isEmpty()) { + // no params we could analyze + return super.visit(node, data); } final ASTPrimaryExpression messageParam = params.get(0); diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/loggingjava/xml/InvalidSlf4jMessageFormat.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/loggingjava/xml/InvalidSlf4jMessageFormat.xml index ea1df9778e..1c46b85765 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/loggingjava/xml/InvalidSlf4jMessageFormat.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/loggingjava/xml/InvalidSlf4jMessageFormat.xml @@ -105,6 +105,26 @@ public class NullPointerTypeProblem { System.out.println(st.nextToken()); } } +} + ]]> + + + + #1509 [java] InvalidSlf4jMessageFormat NPE + 0 + diff --git a/src/site/markdown/overview/changelog.md b/src/site/markdown/overview/changelog.md index ae2c6a9168..4771136998 100644 --- a/src/site/markdown/overview/changelog.md +++ b/src/site/markdown/overview/changelog.md @@ -12,4 +12,7 @@ **Bugfixes:** +* java + * [#1509](https://sourceforge.net/p/pmd/bugs/1509/) \[java] InvalidSlf4jMessageFormat NPE + **API Changes:**