findbugsで重大なエラーが発生します:
このメソッドは、IOストリームオブジェクトを作成し、それをフィールドに割り当てたり、他のメソッドに渡したり、返したりすることはなく、メソッドからのすべての可能な例外パスでオブジェクトを閉じるようには見えません。これにより、ファイル記述子のリークが発生する可能性があります。一般に、finallyブロックを使用して、ストリームが確実に閉じられるようにすることをお勧めします。
try {
...
stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
...
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
try {
if (stdError != null) {
stdError.close();
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
私InputStreamReader
も閉じる必要がありますかp.getErrorStream
(それは戻りますInputStream
)?