diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/basic/CheckResultSetRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/basic/CheckResultSetRule.java index 827ab58e0c..60f6fc92d0 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/basic/CheckResultSetRule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/basic/CheckResultSetRule.java @@ -12,6 +12,7 @@ import net.sourceforge.pmd.lang.ast.Node; import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceType; import net.sourceforge.pmd.lang.java.ast.ASTIfStatement; import net.sourceforge.pmd.lang.java.ast.ASTLocalVariableDeclaration; +import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration; import net.sourceforge.pmd.lang.java.ast.ASTName; import net.sourceforge.pmd.lang.java.ast.ASTType; import net.sourceforge.pmd.lang.java.ast.ASTVariableDeclarator; @@ -35,7 +36,13 @@ public class CheckResultSetRule extends AbstractJavaRule { methods.add(".last"); methods.add(".first"); } - + + @Override + public Object visit(ASTMethodDeclaration node, Object data) { + resultSetVariables.clear(); + return super.visit(node, data); + } + @Override public Object visit(ASTLocalVariableDeclaration node, Object data) { ASTClassOrInterfaceType type = node.getFirstChildOfType(ASTType.class).getFirstDescendantOfType(ASTClassOrInterfaceType.class); diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/basic/xml/CheckResultSet.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/basic/xml/CheckResultSet.xml index 53e287a88a..415ffa177f 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/basic/xml/CheckResultSet.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/basic/xml/CheckResultSet.xml @@ -284,6 +284,27 @@ public class Foo { } return result; } +} + ]]> + + + #1263 PMD reports CheckResultSet violation in completely unrelated source files. + 0 + diff --git a/src/site/markdown/overview/changelog.md b/src/site/markdown/overview/changelog.md index 59182fed68..4151fa9b3a 100644 --- a/src/site/markdown/overview/changelog.md +++ b/src/site/markdown/overview/changelog.md @@ -10,4 +10,5 @@ **Bugfixes:** +* [#1263](https://sourceforge.net/p/pmd/bugs/1263/): PMD reports CheckResultSet violation in completely unrelated source files. * [#1273](https://sourceforge.net/p/pmd/bugs/1273/): CheckResultSet false positive in try-with-resources nested in if