From 3cf58cb43a6f535bff72e92d4eace9c8f82487d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Manuel=20Rol=C3=B3n?= Date: Wed, 19 Aug 2015 17:29:48 -0300 Subject: [PATCH] Fix statement cast in UselessOverridingMethodRule class. Summary: Now using the parent Node class to avoid the ClassCastException. Test Plan: Added new test for the modified class. Run tests Reviewers: jmsotuyo Reviewed By: jmsotuyo Differential Revision: http://ph.monits.com/D12213 --- .../UselessOverridingMethodRule.java | 2 +- .../xml/UselessOverridingMethod.xml | 25 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/unnecessary/UselessOverridingMethodRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/unnecessary/UselessOverridingMethodRule.java index 012916b1e7..34a3c2071b 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/unnecessary/UselessOverridingMethodRule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/unnecessary/UselessOverridingMethodRule.java @@ -130,7 +130,7 @@ public class UselessOverridingMethodRule extends AbstractJavaRule { return super.visit(node, data); } - ASTStatement statement = (ASTStatement) block.jjtGetChild(0).jjtGetChild(0); + Node statement = block.jjtGetChild(0).jjtGetChild(0); if (statement.jjtGetChild(0).jjtGetNumChildren() == 0) { return data; // skips empty return statements } diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/unnecessary/xml/UselessOverridingMethod.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/unnecessary/xml/UselessOverridingMethod.xml index d393ab46e2..3d74fa8646 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/unnecessary/xml/UselessOverridingMethod.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/unnecessary/xml/UselessOverridingMethod.xml @@ -373,5 +373,28 @@ public class Example extends PersistentObject { } ]]> + + + 0 + +public class AnonymousClassConstructor { + + public void method() { + @SuppressWarnings("unused") + final Comparator comparator = new Comparator() { + + @Override + public int compare(@Nonnull Long o1, @Nonnull Long o2) { + return 0; + } + }; + } +} + ]]> + + \ No newline at end of file