diff --git a/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/Initiator.java b/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/Initiator.java index 7a0e32463d..2253fda6c6 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/Initiator.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/Initiator.java @@ -253,17 +253,21 @@ private CompactionType checkForCompaction(final CompactionInfo ci, LOG.info("Going to initiate as user " + runAs + " for " + ci.getFullPartitionName()); UserGroupInformation ugi = UserGroupInformation.createProxyUser(runAs, UserGroupInformation.getLoginUser()); - CompactionType compactionType = ugi.doAs(new PrivilegedExceptionAction() { - @Override - public CompactionType run() throws Exception { - return determineCompactionType(ci, writeIds, sd, tblproperties); - } - }); + CompactionType compactionType; try { - FileSystem.closeAllForUGI(ugi); - } catch (IOException exception) { - LOG.error("Could not clean up file-system handles for UGI: " + ugi + " for " + - ci.getFullPartitionName(), exception); + compactionType = ugi.doAs(new PrivilegedExceptionAction() { + @Override + public CompactionType run() throws Exception { + return determineCompactionType(ci, writeIds, sd, tblproperties); + } + }); + } finally { + try { + FileSystem.closeAllForUGI(ugi); + } catch (IOException exception) { + LOG.error("Could not clean up file-system handles for UGI: " + ugi + " for " + + ci.getFullPartitionName(), exception); + } } return compactionType; }