Sonar在java FileSystems.getDefault()上引发阻塞问题

时间:2017-06-06 11:01:14

标签: java sonarqube

我有以下代码声明,

[(id)self.locationManager headingAvailable]

Sonar( sonarqube 5.6.4 )在上面代码的 FileSystems.getDefault()部分引发了一个阻止程序问题,说明了这一点,

  

资源应该关闭 - Java的垃圾收集不可能   依靠清理一切。特别是,连接,流,   文件和其他实现Closeable接口的类或它的类   超级接口,AutoCloseable,必须在之后手动关闭   创建。如果不这样做,将导致资源泄漏   首先提出应用程序,然后可能是他们的框   膝盖。

然后,我检查了 FileSystem 的javadoc,其中说明了

  

无法关闭默认提供程序创建的文件系统。

参考 - > https://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystem.html

现在我的问题是如何解决这个声纳问题,而不是忽略它。 如果有人解决了这个问题,请帮忙。

1 个答案:

答案 0 :(得分:0)

如果您确定自己的情况,最简单的方法就是告诉Sonar,您在这里所拥有的是误报并且不应该被标记。 您也可以使用try with resources构造,使Sonar认为资源正在被关闭,而事实上并非如此(如果Java正确处理它,它不应该尝试在使用此资源时尝试关闭它情况)。