aajisaka commented on a change in pull request #3027:
URL: https://github.com/apache/hadoop/pull/3027#discussion_r637728863



##########
File path: 
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/aliasmap/InMemoryAliasMap.java
##########
@@ -320,21 +320,18 @@ 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();
       }

Review comment:
       Thanks for the update.
   - Before: `tOut.finish()` is called if addFileToTarGzRecursively throws an 
exception.
   - Your patch: `tOut.finish()` is not called if addFileToTarGzRecursively 
throws an exception.
   
   I think we need to have an extra try-catch clause:
   ```java:
         try {
           addFileToTarGzRecursively(tOut, aliasMapDir, "", new 
Configuration());
         } finally {
           tOut.finish();
         }
   ```
   tOut cannot be null in the try-with-resources clause so that we can remove 
the null check.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to