You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by li...@apache.org on 2022/03/21 14:32:25 UTC

[incubator-seatunnel] branch dev updated: [Bug] [core] Fix the resource leak for core module (#1532)

This is an automated email from the ASF dual-hosted git repository.

lidongdai pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 0d1078e  [Bug] [core] Fix the resource leak for core module (#1532)
0d1078e is described below

commit 0d1078e0bf5d95db9c6e899326d0853839e6b0ca
Author: Benedict Jin <as...@apache.org>
AuthorDate: Mon Mar 21 22:32:18 2022 +0800

    [Bug] [core] Fix the resource leak for core module (#1532)
    
    * [Bug] [core] Fix the resource leak for core module
    
    * Address comment
---
 .../apache/seatunnel/utils/CompressionUtils.java   | 36 +++++++++++-----------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/seatunnel-core/seatunnel-core-base/src/main/java/org/apache/seatunnel/utils/CompressionUtils.java b/seatunnel-core/seatunnel-core-base/src/main/java/org/apache/seatunnel/utils/CompressionUtils.java
index 091568b..e2666f2 100644
--- a/seatunnel-core/seatunnel-core-base/src/main/java/org/apache/seatunnel/utils/CompressionUtils.java
+++ b/seatunnel-core/seatunnel-core-base/src/main/java/org/apache/seatunnel/utils/CompressionUtils.java
@@ -60,28 +60,28 @@ public final class CompressionUtils {
         LOGGER.info(String.format("Untaring %s to dir %s.", inputFile.getAbsolutePath(), outputDir.getAbsolutePath()));
 
         final List<File> untaredFiles = new LinkedList<>();
-        final InputStream is = new FileInputStream(inputFile);
-        final TarArchiveInputStream debInputStream = (TarArchiveInputStream) new ArchiveStreamFactory().createArchiveInputStream("tar", is);
-        TarArchiveEntry entry = null;
-        while ((entry = (TarArchiveEntry) debInputStream.getNextEntry()) != null) {
-            final File outputFile = new File(outputDir, entry.getName());
-            if (entry.isDirectory()) {
-                LOGGER.info(String.format("Attempting to write output directory %s.", outputFile.getAbsolutePath()));
-                if (!outputFile.exists()) {
-                    LOGGER.info(String.format("Attempting to create output directory %s.", outputFile.getAbsolutePath()));
-                    if (!outputFile.mkdirs()) {
-                        throw new IllegalStateException(String.format("Couldn't create directory %s.", outputFile.getAbsolutePath()));
+        try (final InputStream is = new FileInputStream(inputFile);
+             final TarArchiveInputStream debInputStream = (TarArchiveInputStream) new ArchiveStreamFactory().createArchiveInputStream("tar", is)) {
+            TarArchiveEntry entry = null;
+            while ((entry = (TarArchiveEntry) debInputStream.getNextEntry()) != null) {
+                final File outputFile = new File(outputDir, entry.getName());
+                if (entry.isDirectory()) {
+                    LOGGER.info(String.format("Attempting to write output directory %s.", outputFile.getAbsolutePath()));
+                    if (!outputFile.exists()) {
+                        LOGGER.info(String.format("Attempting to create output directory %s.", outputFile.getAbsolutePath()));
+                        if (!outputFile.mkdirs()) {
+                            throw new IllegalStateException(String.format("Couldn't create directory %s.", outputFile.getAbsolutePath()));
+                        }
                     }
+                } else {
+                    LOGGER.info(String.format("Creating output file %s.", outputFile.getAbsolutePath()));
+                    final OutputStream outputFileStream = new FileOutputStream(outputFile);
+                    IOUtils.copy(debInputStream, outputFileStream);
+                    outputFileStream.close();
                 }
-            } else {
-                LOGGER.info(String.format("Creating output file %s.", outputFile.getAbsolutePath()));
-                final OutputStream outputFileStream = new FileOutputStream(outputFile);
-                IOUtils.copy(debInputStream, outputFileStream);
-                outputFileStream.close();
+                untaredFiles.add(outputFile);
             }
-            untaredFiles.add(outputFile);
         }
-        debInputStream.close();
     }
 
     /**