From 41025cd5857267ed538769087d4d03c8c782587b Mon Sep 17 00:00:00 2001 From: Narges Shadab <54193416+Nargeshdb@users.noreply.github.com> Date: Tue, 25 May 2021 22:43:41 -0700 Subject: [PATCH] HDFS-16031. Possible Resource Leak in org.apache.hadoop.hdfs.server.aliasmap#InMemoryAliasMap (#3027) (cherry picked from commit 3fdeb7435add3593a0a367fff6e8622a73ad9fa3) --- .../server/aliasmap/InMemoryAliasMap.java | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java index bcf535740d..4060b78208 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java @@ -320,21 +320,15 @@ static File createSnapshot(InMemoryAliasMap aliasMap) throws IOException { private static File getCompressedAliasMap(File aliasMapDir) throws IOException { File outCompressedFile = new File(aliasMapDir.getParent(), TAR_NAME); - BufferedOutputStream bOut = null; - GzipCompressorOutputStream gzOut = null; - TarArchiveOutputStream tOut = null; - try { - bOut = new BufferedOutputStream( - Files.newOutputStream(outCompressedFile.toPath())); - gzOut = new GzipCompressorOutputStream(bOut); - tOut = new TarArchiveOutputStream(gzOut); + + try (BufferedOutputStream bOut = new BufferedOutputStream( + Files.newOutputStream(outCompressedFile.toPath())); + GzipCompressorOutputStream gzOut = new GzipCompressorOutputStream(bOut); + TarArchiveOutputStream tOut = new TarArchiveOutputStream(gzOut)){ + addFileToTarGzRecursively(tOut, aliasMapDir, "", new Configuration()); - } finally { - if (tOut != null) { - tOut.finish(); - } - IOUtils.cleanupWithLogger(null, tOut, gzOut, bOut); } + return outCompressedFile; }