Merge pull request #3063 from oowekyala:issue3062-stream-close-resource
[java] Fix CloseResource FP with reassigned stream #3063
This commit is contained in:
commit
41151d30e7
3 files changed
+21
-2
No files matched your search
@@ -44,6 +44,7 @@ This is a {{ site.pmd.release_type }} release.
|
||||
* [#2977](https://github.com/pmd/pmd/issues/2977): \[java] 6.30.0 introduces new false positive in CloseResource rule?
|
||||
* [#2979](https://github.com/pmd/pmd/issues/2979): \[java] UseEqualsToCompareStrings: FP with "var" variables
|
||||
* [#3004](https://github.com/pmd/pmd/issues/3004): \[java] UseEqualsToCompareStrings false positive with PMD 6.30.0
|
||||
* [#3062](https://github.com/pmd/pmd/issues/3062): \[java] CloseResource FP with reassigned stream
|
||||
|
||||
### API Changes
|
||||
|
||||
|
||||
+1
-1
@@ -169,7 +169,7 @@ public class CloseResourceRule extends AbstractJavaRule {
|
||||
} else if (shouldVarOfTypeBeClosedInMethod(resVar, resVarType, methodOrConstructor)) {
|
||||
reportedVarNames.add(resVar.getVariableId().getName());
|
||||
addCloseResourceViolation(resVar.getVariableId(), resVarType, data);
|
||||
} else {
|
||||
} else if (isNotAllowedResourceType(resVarType)) {
|
||||
ASTStatementExpression reassigningStatement = getFirstReassigningStatementBeforeBeingClosed(resVar, methodOrConstructor);
|
||||
if (reassigningStatement != null) {
|
||||
reportedVarNames.add(resVar.getVariableId().getName());
|
||||
|
||||
+19
-1
@@ -1430,7 +1430,7 @@ public class CloseResourceWithVar {
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
|
||||
|
||||
<test-code>
|
||||
<description>#2764 false-negative when re-assigning connection</description>
|
||||
<rule-property name="types">java.sql.Connection,java.sql.Statement,java.sql.ResultSet</rule-property>
|
||||
@@ -1477,6 +1477,7 @@ public class Foo {
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
|
||||
<test-code>
|
||||
<description>#2977 6.30.0 introduces new false positive in CloseResource rule</description>
|
||||
<expected-problems>0</expected-problems>
|
||||
@@ -1492,6 +1493,23 @@ public class Foo {
|
||||
file.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
|
||||
<test-code>
|
||||
<description>#3062 CloseResource FP with reassigned stream</description>
|
||||
<expected-problems>0</expected-problems>
|
||||
<code><![CDATA[
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class Foo {
|
||||
void bar() {
|
||||
Stream<T> stream = Stream.of(2);
|
||||
if (condition) {
|
||||
stream = stream.skip(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
|
||||
Reference in new issue
Block a user