Merge pull request #4356 from fix-closeresource-rule
[java] Fix NPE in CloseResourceRule #4356
This commit is contained in:
2 files changed
+17
-1
No files matched your search
+1
-1
@@ -216,7 +216,7 @@ public class CloseResourceRule extends AbstractJavaRule {
|
||||
|
||||
private TypeNode getRuntimeTypeOfVariable(ASTVariableDeclaratorId var) {
|
||||
ASTExpression initExpr = var.getInitializer();
|
||||
return isRuntimeType(initExpr) ? initExpr : null;
|
||||
return var.isTypeInferred() || isRuntimeType(initExpr) ? initExpr : null;
|
||||
}
|
||||
|
||||
private boolean isRuntimeType(ASTExpression expr) {
|
||||
|
||||
+16
@@ -2010,6 +2010,22 @@ public record MyRecord(boolean a) {
|
||||
private static Object test;
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
|
||||
<test-code>
|
||||
<description>NullPointerException with type inference</description>
|
||||
<expected-problems>0</expected-problems>
|
||||
<code><![CDATA[
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class LocalVariableTypeInference {
|
||||
|
||||
public void aMethod() {
|
||||
var list = new ArrayList<String>(); // infers ArrayList<String>
|
||||
var stream = list.stream(); // infers Stream<String>, is never closed
|
||||
}
|
||||
}
|
||||
]]></code>
|
||||
</test-code>
|
||||
|
||||
Reference in new issue
Block a user