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 22c373d5 Port some code from IO to NIO APIs s
22c373d5 is described below
commit 22c373d555a6994910236133a3912469ab3c2008
Author: Gary Gregory <[email protected]>
AuthorDate: Fri Jan 27 14:39:27 2023 -0500
Port some code from IO to NIO APIs
s
---
src/changes/changes.xml | 1 +
.../compress/compressors/pack200/Pack200Utils.java | 11 +++++------
.../pack200/TempFileCachingStreamBridge.java | 19 +++++++++++--------
3 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2f0341a0..5735ce42 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -57,6 +57,7 @@ The <action> type attribute can be add,update,fix,remove.
If the strings contains non-ISO_8859_1 characters, unknown characters
are displayed after decompression.
Use percent encoding for non ISO_8859_1 characters.
</action>
+ <action type="fix" dev="ggregory" due-to="Jonathan Leitschuh, Gary
Gregory">Port some code from IO to NIO APIs.</action>
<!-- ADD -->
<action type="add" issue="COMPRESS-614" dev="ggregory" due-to="Andre
Brait, Gary Gregory">Use FileTime for time fields in SevenZipArchiveEntry
#256.</action>
<action type="add" issue="COMPRESS-621" dev="ggregory"
due-to="Glavo">Fix calculation the offset of the first zip central directory
entry #334.</action>
diff --git
a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java
b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java
index 23e34fd0..5c36f6ac 100644
---
a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java
+++
b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java
@@ -23,6 +23,7 @@ import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
import java.util.jar.JarFile;
@@ -109,9 +110,9 @@ public class Pack200Utils {
props = new HashMap<>();
}
props.put(Pack200.Packer.SEGMENT_LIMIT, "-1");
- final File tempFile = File.createTempFile("commons-compress",
"pack200normalize");
+ final Path tempFile = Files.createTempFile("commons-compress",
"pack200normalize");
try {
- try (OutputStream fos = Files.newOutputStream(tempFile.toPath());
+ try (OutputStream fos = Files.newOutputStream(tempFile);
JarFile jarFile = new JarFile(from)) {
final Pack200.Packer packer = Pack200.newPacker();
packer.properties().putAll(props);
@@ -119,12 +120,10 @@ public class Pack200Utils {
}
final Pack200.Unpacker unpacker = Pack200.newUnpacker();
try (JarOutputStream jos = new
JarOutputStream(Files.newOutputStream(to.toPath()))) {
- unpacker.unpack(tempFile, jos);
+ unpacker.unpack(tempFile.toFile(), jos);
}
} finally {
- if (!tempFile.delete()) {
- tempFile.deleteOnExit();
- }
+ Files.delete(tempFile);
}
}
diff --git
a/src/main/java/org/apache/commons/compress/compressors/pack200/TempFileCachingStreamBridge.java
b/src/main/java/org/apache/commons/compress/compressors/pack200/TempFileCachingStreamBridge.java
index 57390d8b..4822921f 100644
---
a/src/main/java/org/apache/commons/compress/compressors/pack200/TempFileCachingStreamBridge.java
+++
b/src/main/java/org/apache/commons/compress/compressors/pack200/TempFileCachingStreamBridge.java
@@ -19,11 +19,11 @@
package org.apache.commons.compress.compressors.pack200;
-import java.io.File;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
+import java.nio.file.Path;
/**
* StreamBridge that caches all data written to the output side in
@@ -31,25 +31,28 @@ import java.nio.file.Files;
* @since 1.3
*/
class TempFileCachingStreamBridge extends StreamBridge {
- private final File f;
+ private final Path f;
TempFileCachingStreamBridge() throws IOException {
- f = File.createTempFile("commons-compress", "packtemp");
- f.deleteOnExit();
- out = Files.newOutputStream(f.toPath());
+ f = Files.createTempFile("commons-compress", "packtemp");
+ f.toFile().deleteOnExit();
+ out = Files.newOutputStream(f);
}
@Override
InputStream getInputView() throws IOException {
out.close();
- return new FilterInputStream(Files.newInputStream(f.toPath())) {
+ return new FilterInputStream(Files.newInputStream(f)) {
@Override
public void close() throws IOException {
try {
super.close();
} finally {
- // if this fails the only thing we can do is to rely on
deleteOnExit
- f.delete(); // NOSONAR
+ try {
+ Files.deleteIfExists(f);
+ } catch (IOException ignore) {
+ // if this fails the only thing we can do is to rely
on deleteOnExit
+ }
}
}
};