[ https://issues.apache.org/jira/browse/HIVE-7929?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14118766#comment-14118766 ]
Josh Elser commented on HIVE-7929: ---------------------------------- The catch block is unnecessary. I think the finally block should only contain {{zos.close()}} with {{zos.closeEntry();}} and {{zipDir(dir, relativePath, zos, true);}} moved inside of the try block. For example: {code} try { ... zos.closeEntry(); zipDir(dir, relativePath, zos, true); } finally { zos.close(); } {code} Alternatively, it might be cleaner to do a try/finally in {{createJar(File, File)}} to close the JarOutputStream and completely remove the {{close()}} call in {{jarDir(File, String, ZipOutputStream)}}. Also, it may interest you, this code was borrowed from HBase. They may benefit from these same improvements in their codebase -- I forget what HBase version I copied this from though. > close of ZipOutputStream in Utils#jarDir() should be placed in finally block > ---------------------------------------------------------------------------- > > Key: HIVE-7929 > URL: https://issues.apache.org/jira/browse/HIVE-7929 > Project: Hive > Issue Type: Bug > Affects Versions: 0.13.1 > Reporter: skrho > Assignee: skrho > Priority: Minor > Labels: patch > Attachments: HIVE-7929_001.patch > > > In accumulo-handler/src/java/org/apache/hadoop/hive/accumulo/Utils.java , > line 308 : > zos.closeEntry(); > zipDir(dir, relativePath, zos, true); > zos.close(); > If exception is happened, ZipOutputStream would be left unclosed.. -- This message was sent by Atlassian JIRA (v6.3.4#6332)