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]