У меня есть сценарий использования, где я создаю InputStream
в одном классе и передаю его другому. Если я удаляю блок finally
, где я закрываю поток, он не обнаруживается в findbugs. Почему это так?
Class A {
public static void methodA(InputStream is) {
// Do something.
// The stream is NOT closed.
}
}
Class B {
public void methodB(Sting filePath) {
FileInputStream fis = new FileInputStream(new File(filePath));
A.methodA(fis);
}
}
В идеале, findbugs должен был обнаружить, что поток не закрыт в этом случае использования. Но это не так, и мне любопытно узнать почему!