From fadb13fefb3cd795ec0e264b2ceba44c71477503 Mon Sep 17 00:00:00 2001 From: Xavier Le Vourch Date: Sat, 14 Jun 2008 00:36:58 +0000 Subject: [PATCH] Fixed bug 1977230 - false positive: UselessOverridingMethod git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@6204 51baf565-9d33-0410-a72c-fc3788e3496d --- pmd/etc/changelog.txt | 1 + .../basic/xml/UselessOverridingMethod.xml | 22 +++++++++++++++++++ .../basic/UselessOverridingMethodRule.java | 8 +++++-- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/pmd/etc/changelog.txt b/pmd/etc/changelog.txt index a8942ae5f9..c530f904e9 100644 --- a/pmd/etc/changelog.txt +++ b/pmd/etc/changelog.txt @@ -263,6 +263,7 @@ Fixed bug 1928009 - Error using migration ruleset in PMD 4.2 Fixed bug 1808110 - PreserveStackTrace Fixed bug 1988829 - Violation reported without source file name (actually a fix to ConsecutiveLiteralAppends) Fixed bug 1989814 - false +: ConsecutiveLiteralAppends +Fixed bug 1977230 - false positive: UselessOverridingMethod ruleset.dtd and ruleset_xml_schema.xsd added to jar file in rulesets directory bin and java14/bin scripts: retroweaver version was not correct in java14/bin scripts diff --git a/pmd/regress/test/net/sourceforge/pmd/rules/basic/xml/UselessOverridingMethod.xml b/pmd/regress/test/net/sourceforge/pmd/rules/basic/xml/UselessOverridingMethod.xml index 263afd3a6c..31fec5b345 100644 --- a/pmd/regress/test/net/sourceforge/pmd/rules/basic/xml/UselessOverridingMethod.xml +++ b/pmd/regress/test/net/sourceforge/pmd/rules/basic/xml/UselessOverridingMethod.xml @@ -263,6 +263,28 @@ private static class ExposingSerializer extends Serializer { public void exposedWriteAttributeValue(String text) throws IOException { writeAttributeValue(text); } +} + ]]> + + + + + + 0 + + diff --git a/pmd/src/net/sourceforge/pmd/lang/java/rule/basic/UselessOverridingMethodRule.java b/pmd/src/net/sourceforge/pmd/lang/java/rule/basic/UselessOverridingMethodRule.java index 685e28e81a..b5c70be7b4 100644 --- a/pmd/src/net/sourceforge/pmd/lang/java/rule/basic/UselessOverridingMethodRule.java +++ b/pmd/src/net/sourceforge/pmd/lang/java/rule/basic/UselessOverridingMethodRule.java @@ -158,9 +158,13 @@ public class UselessOverridingMethodRule extends AbstractJavaRule { return super.visit(node, data); } + List primarySuffixList = findFirstDegreeChildrenOfType(primaryExpression, ASTPrimarySuffix.class); + if (primarySuffixList.size() != 1) { + // extra method call on result of super method + return super.visit(node, data); + } //Process arguments - ASTPrimarySuffix primarySuffix = findFirstDegreeChildrenOfType(primaryExpression, ASTPrimarySuffix.class) - .get(0); + ASTPrimarySuffix primarySuffix = primarySuffixList.get(0); ASTArguments arguments = (ASTArguments) primarySuffix.jjtGetChild(0); ASTFormalParameters formalParameters = (ASTFormalParameters) methodDeclarator.jjtGetChild(0); if (formalParameters.jjtGetNumChildren() != arguments.jjtGetNumChildren()) {