Java/Fortify - 未发布的资源:流

问题描述

try (java.io.ByteArrayOutputStream out = (java.io.ByteArrayOutputStream) this.httpConnect.getoutputStream();) {

对于这一行,强化是给予 - 未发布的资源:流漏洞。任何原因?我们已经将其添加到 try with resorces 中。

是否需要使用旧模式 [try.catch/finally] 来关闭资源?

这里,this.httpConnect 是:HttpURLConnection httpConnect = null;

请在此处提供一些建议。

解决方法

大概如果 getOutputStream() 返回的不是 ByteArrayOutputStream(或 null),那么演员表将抛出。资源不会到达 try,因此无法关闭。

因此,避免在 try-with-resource 语句表达式中进行强制转换。或者最好完全避免强制转换。