Eclipse“资源泄漏”编译器警告不会触发

时间:2016-06-15 16:35:40

标签: java eclipse resource-leak

我有一个简单的Java类,如下所示:

public static class NullInputStream extends InputStream {

    public static InputStream wrap(InputStream src) {
        return src == null ? new NullInputStream() : src;
    }

    @Override
    public int read() throws IOException {
        return -1;
    }

}

此代码在Eclipse 4.5中编译,Java合规级别1.8。奇怪的事情正在发生。在我的环境中,编译器不会生成警告。另一位开发人员在 Resource leak: '<unassigned Closeable value>' is never closed 上收到“new NullInputStream()”编译器警告警告。我们确定,当“Resource leak”设置为“Warning”时必须触发警告,并且当警告被删除为“Ignore”时,警告就会消失。在我的Eclipse环境中,无论“Resource leak”设置如何,都不会触发警告。

我花了好几个小时试图找出没有触发警告的原因。我从其他开发人员环境导出/导入编译器首选项,我三重检查我不使用项目特定设置,检查java编译器版本,运行时,facet等 - 一切都是1.8

请注意。我的问题是没有触发这个特定的编译器警告,而不是类设计。我需要触发警告。其他警告,例如“Dead code”和“Potential resource leak”按预期工作和触发。

0 个答案:

没有答案