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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git


The following commit(s) were added to refs/heads/master by this push:
     new cd0ab2c  Pack200UnpackerAdapter.unpack(InputStream, JarOutputStream) 
should not close its given input stream.
cd0ab2c is described below

commit cd0ab2c72b6c61a4d84ebac682f773e227c013f5
Author: Gary Gregory <[email protected]>
AuthorDate: Wed Dec 1 11:05:00 2021 -0500

    Pack200UnpackerAdapter.unpack(InputStream, JarOutputStream) should not
    close its given input stream.
---
 src/changes/changes.xml                                           | 3 +++
 .../compressors/pack200/Pack200CompressorInputStream.java         | 8 +++++---
 .../compress/harmony/unpack200/Pack200UnpackerAdapter.java        | 1 -
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 5febf4e..e1bc453 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -50,6 +50,9 @@ The <action> type attribute can be add,update,fix,remove.
       <action type="fix" dev="ggregory" due-to="Gary Gregory">
         Close File input stream after unpacking in 
Pack200UnpackerAdapter.unpack(File, JarOutputStream).
       </action>
+      <action type="fix" dev="ggregory" due-to="Gary Gregory">
+        Pack200UnpackerAdapter.unpack(InputStream, JarOutputStream) should not 
close its given input stream.
+      </action>
       <!-- ADD -->
         <!-- none yet -->
       <!-- UPDATE -->
diff --git 
a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java
 
b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java
index 0336fed..be55558 100644
--- 
a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java
+++ 
b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200CompressorInputStream.java
@@ -178,9 +178,11 @@ public class Pack200CompressorInputStream extends 
CompressorInputStream {
                 u.properties().putAll(props);
             }
             if (f == null) {
-                // unpack would close this stream but we
-                // want to give the user code more control
-                u.unpack(new CloseShieldFilterInputStream(in), jarOut);
+                // unpack would close this stream but we want to give the call 
site more control
+                // TODO unpack should not close its given stream.
+                try (final CloseShieldFilterInputStream closeShield = new 
CloseShieldFilterInputStream(in)) {
+                    u.unpack(closeShield, jarOut);
+                }
             } else {
                 u.unpack(f, jarOut);
             }
diff --git 
a/src/main/java/org/apache/commons/compress/harmony/unpack200/Pack200UnpackerAdapter.java
 
b/src/main/java/org/apache/commons/compress/harmony/unpack200/Pack200UnpackerAdapter.java
index ea23d46..5947789 100644
--- 
a/src/main/java/org/apache/commons/compress/harmony/unpack200/Pack200UnpackerAdapter.java
+++ 
b/src/main/java/org/apache/commons/compress/harmony/unpack200/Pack200UnpackerAdapter.java
@@ -52,7 +52,6 @@ public class Pack200UnpackerAdapter extends Pack200Adapter 
implements Unpacker {
             throw new IOException("Failed to unpack Jar:" + e);
         }
         completed(1);
-        in.close();
     }
 
     /*

Reply via email to