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);

Другие вопросы по тегам