サーブレットに次のコードがある場合:
Properties p = new Properties();
p.load(getClass().getResourceAsStream("/test.properties"));
FindBugsを介してサーブレットを実行すると、警告OS_OPEN_STREAMが表示されると予想されますが、表示されません。同様のアプローチを使用してファイルシステム上の任意のファイルを開くと(つまり、クラスパスにない場合)、期待どおりにFindbugsの警告が表示されます。
Properties p = new Properties();
p.load(new FileInputStream(new File("c:/test.properties")));
最初の例では、Findbugsに有効な警告がないため(つまり、Propertiesオブジェクトにロードした後にfinallyブロックでストリームを閉じる必要があるため)、警告はありませんか、それともストリームを閉じる必要がない理由がありますか?
ありがとう
リッチ