SonarLint 提示"Close this 'FileReader'",当我关闭时实际上在最后块中关闭了它



当我在eclipse中使用sonarlint分析一些关闭finally块中的FileReader的代码时,sonarint会提示我"关闭这个‘FileReader’",这是由规则"Resources should be close"生成的。这是SonarLint的bug吗?。这是SonarLint的bug吗?

我不能使用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);
    }
}

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

相关内容

  • 没有找到相关文章

最新更新