编程语言
首页 > 编程语言> > java-SpotBugs是否报告未在此处关闭资源的误报?

java-SpotBugs是否报告未在此处关闭资源的误报?

作者:互联网

我有这样的代码:

public static MyObject forId(long myObjectId, Connection cxn) throws SQLException {
    try (PreparedStatement stmt = cxn.prepareStatement(selectMyObjectById))) {
        stmt.setLong(1, myObjectId);
        try (ResultSet res = stmt.executeQuery()) {
            res.next();
            return MyObject.fromResultSet(res);
        }
    }
}

SpotBugs将其标识为JDBC语句对象的OBL_UNSATISFIED_OBLIGATION.这是假阳性吗?我的印象是,尝试资源将确保在所有情况下都能正确关闭这些资源.

解决方法:

您的ResultSet和PreparedStatement在正确声明时受到保护.

如果您的连接在相关范围内也得到了适当处理,则可以,这是误报.

标签:try-with-resources,spotbugs,java
来源: https://codeday.me/bug/20191110/2014337.html