java - Java/Fortify - 未发布的资源:Stream
问题描述
try (java.io.ByteArrayOutputStream out = (java.io.ByteArrayOutputStream) this.httpConnect.getOutputStream();) {
对于这一行,fortify 给出了 - 未发布的资源:流漏洞。任何原因?我们已经将它添加到 try with resorces 中。
我是否需要使用旧模式 [try.catch/finally] 来关闭资源?
这里,this.httpConnect
是:HttpURLConnection httpConnect = null;
请在这里提供一些建议。
解决方案
大概如果返回 a (or )getOutputStream()
以外的东西,那么演员会抛出。资源不会到达所以无法关闭。ByteArrayOutputStream
null
try
因此,请避免在 try-with-resource 语句表达式中进行强制转换。或者最好完全避免强制转换。
推荐阅读
- c# - 如何在 json 结果中格式化自定义类型?
- c# - 如何在实体框架中的多个数据库之间共享类?
- python - IllegalArgumentException - H2O 在 Python 中导入 MOJO 文件失败
- php - 为什么 PHP PSR-11 Container 不提供设置依赖的方法?
- javascript - 将带参数的函数添加到变量
- java - 单击时的 JavaFx TabPane 样式
- ios - AVAudioEngine 从网络中获取数据并在有噪音或无声的情况下播放
- jquery - 如何在从 jquery ajax 调用成功返回时显示 JQuery 对话框
- java - 使用 getMiddle 和 getAt 函数实现堆栈
- javascript - 设置 cookie 的过期时间