diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CloseResourceRule.java b/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CloseResourceRule.java
index 969c452e15..f578f4e2a5 100644
--- a/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CloseResourceRule.java
+++ b/pmd/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CloseResourceRule.java
@@ -160,6 +160,19 @@ public class CloseResourceRule extends AbstractJavaRule {
closed = true;
break;
}
+ if (name.contains(".")) {
+ String[] parts = name.split("\\.");
+ if (parts.length == 2) {
+ String methodName = parts[1];
+ String varName = parts[0];
+ if (varName.equals(variableToClose)
+ && closeTargets.contains(methodName)) {
+ closed = true;
+ break;
+ }
+
+ }
+ }
}
if (closed) {
break;
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/CloseResource.xml b/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/CloseResource.xml
index 2fa53e4337..898afa53b7 100644
--- a/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/CloseResource.xml
+++ b/pmd/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/CloseResource.xml
@@ -153,7 +153,7 @@ New use case
]]>
commit,close,close,close
DAOTransaction,Connection,Statement,ResulSet
- 2
+ 1
-
+
+
+
+ cleanup
+ MyClass
+ 0
+
+
+