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();
}
/*