diff --git a/pmd/etc/changelog.txt b/pmd/etc/changelog.txt index 85608aade5..b9d8ee7f3f 100644 --- a/pmd/etc/changelog.txt +++ b/pmd/etc/changelog.txt @@ -15,6 +15,7 @@ New Java rule: ????? ??, 2013 - 5.0.3: +Fixed bug 940: False positive on UnsynchronizedStaticDateFormatter Fixed bug 942: CheckResultSet False Positive and Negative Fixed bug 943: PreserveStackTrace false positive if a StringBuffer exists Fixed bug 945: PMD generates RuleSets it cannot read. diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/design/UnsynchronizedStaticDateFormatterRule.java b/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/design/UnsynchronizedStaticDateFormatterRule.java index 545fafe62b..d772646563 100644 --- a/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/design/UnsynchronizedStaticDateFormatterRule.java +++ b/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/design/UnsynchronizedStaticDateFormatterRule.java @@ -48,6 +48,11 @@ public class UnsynchronizedStaticDateFormatterRule extends AbstractJavaRule { if (n.getFirstParentOfType(ASTSynchronizedStatement.class) != null) { continue; } + // ignore usages, that don't call a method. + if (!n.getImage().contains(".")) { + continue; + } + ASTMethodDeclaration method = n.getFirstParentOfType(ASTMethodDeclaration.class); if (method != null && !method.isSynchronized()) { addViolation(data, n); diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/UnsynchronizedStaticDateFormatter.xml b/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/UnsynchronizedStaticDateFormatter.xml index 0aeb4bf023..3644ca1255 100644 --- a/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/UnsynchronizedStaticDateFormatter.xml +++ b/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/UnsynchronizedStaticDateFormatter.xml @@ -85,4 +85,19 @@ public class Foo { } ]]> + + + #940 False positive on UnsynchronizedStaticDateFormatter + 0 + +