SonarLint提示"关闭这个' FileReader'",当我关闭时在finally块中实际关闭它

时间:2016-03-30 03:15:24

标签: filereader try-catch-finally resource-leak sonarlint-eclipse

当我在eclipse中使用sonarlint来关闭一些代码时,关闭了finally块中的FileReader,sonarlint提示我"关闭这个' FileReader'"由规则生成的#34;资源应该关闭"。这是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 个答案:

答案 0 :(得分:0)

您没有关闭finally块中的缓冲读卡器。我建议你删除finally块中的所有内容并添加以下内容 IOUtils.closeQuietly(fr); IOUtils.closeQuietly(oldPid);