2017-12-12 15 views
2

私はこのようなコードを持っている: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のStatementオブジェクトのOBL_UNSATISFIED_OBLIGATIONとして識別します。これは偽陽性ですか?私の印象は、リソースを試そうとするとすべてのケースでこれらのリソースが適切に閉じられることです。

答えて

3

結果セットとPreparedStatementは、正しい状態で保護されます。

あなたのConnectionも適切なスコープで適切に処理されている場合は、それは偽陽性です。

+0

同じように処理されます。ありがとう。 –

+0

問題はありません、受け入れられたとマークしてください! – Sam

関連する問題