SonarLint приглашает "Закрыть это FileReader", когда я закрываю, фактически закрыл его в блоке finally
Когда я анализирую некоторый код, используя sonarlint в eclipse, который закрывает FileReader в блоке finally, sonarlint предлагает мне "Закрыть этот FileReader", который генерируется правилом "Ресурсы должны быть закрыты". Это ошибка от SonarLint? Это ошибка от SonarLint?
Я не могу использовать возможности try-with-resources, потому что наш проект использует JDK 1.6
Код как ниже:
FileReader fr = null;
try {
fr = new FileReader(pidFile);
oldPid = new BufferedReader(fr).readLine();
}
catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
finally {
try {
if (fr != null) {
fr.close();
}
}
catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
}
1 ответ
Вы не закрываете буферизованный ридер в блоке finally. Я предлагаю вам удалить все в блоке finally и добавить следующееIOUtils.closeQuietly(fr);
IOUtils.closeQuietly(oldPid);