You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/12/04 21:06:09 UTC
[commons-vfs] branch master updated: VFS-825 Fix for GZip input and output stream results in StackOverflowError (#322)
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-vfs.git
The following commit(s) were added to refs/heads/master by this push:
new 1a553bbf VFS-825 Fix for GZip input and output stream results in StackOverflowError (#322)
1a553bbf is described below
commit 1a553bbf2793e005b05602f699da0737d6b5e62c
Author: Anthony Goubard <an...@japplis.com>
AuthorDate: Sun Dec 4 22:06:04 2022 +0100
VFS-825 Fix for GZip input and output stream results in StackOverflowError (#322)
---
.../apache/commons/vfs2/provider/gzip/GzipFileObject.java | 4 ++--
.../org/apache/commons/vfs2/provider/gzip/GzipTest.java | 14 +++++++++++---
pom.xml | 2 +-
3 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/gzip/GzipFileObject.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/gzip/GzipFileObject.java
index 62e85aef..f087a2ce 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/gzip/GzipFileObject.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/gzip/GzipFileObject.java
@@ -59,11 +59,11 @@ public class GzipFileObject extends CompressedFileFileObject<GzipFileSystem> {
@Override
protected InputStream doGetInputStream(final int bufferSize) throws Exception {
- return new GZIPInputStream(getInputStream(), bufferSize);
+ return new GZIPInputStream(getContainer().getContent().getInputStream(), bufferSize);
}
@Override
protected OutputStream doGetOutputStream(final boolean bAppend) throws Exception {
- return new GZIPOutputStream(getOutputStream(false));
+ return new GZIPOutputStream(getContainer().getContent().getOutputStream(false));
}
}
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/gzip/GzipTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/gzip/GzipTest.java
index c4a0b399..606557fd 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/gzip/GzipTest.java
+++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/provider/gzip/GzipTest.java
@@ -19,11 +19,12 @@ package org.apache.commons.vfs2.provider.gzip;
import java.io.File;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemManager;
import org.apache.commons.vfs2.VFS;
-import org.junit.Assert;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class GzipTest {
@@ -34,8 +35,15 @@ public class GzipTest {
final File gzFile = new File("src/test/resources/test-data/好.txt.gz");
FileSystemManager manager = VFS.getManager();
- try (FileObject localFileObject = manager.resolveFile(gzFile.getAbsolutePath()); FileObject gzFileObject = manager.createFileSystem(localFileObject);) {
- Assert.assertTrue(gzFileObject instanceof GzipFileObject);
+ try (FileObject localFileObject = manager.resolveFile(gzFile.getAbsolutePath());
+ FileObject gzFileObjectDir = manager.createFileSystem(localFileObject);
+ FileObject gzFileObject = gzFileObjectDir.resolveFile("好.txt")) {
+ Assertions.assertTrue(gzFileObjectDir instanceof GzipFileObject);
+ Assertions.assertTrue(gzFileObjectDir.isFolder());
+ Assertions.assertTrue(gzFileObject instanceof GzipFileObject);
+ Assertions.assertFalse(gzFileObject.isFolder());
+ String content = gzFileObject.getContent().getString(StandardCharsets.UTF_8);
+ Assertions.assertEquals("aaa", content);
}
}
}
diff --git a/pom.xml b/pom.xml
index 1203ed0a..ecf90462 100644
--- a/pom.xml
+++ b/pom.xml
@@ -128,7 +128,7 @@
</contributor>
<contributor>
<name>Anthony Goubard</name>
- <email>adagoubard -at- chello.nl</email>
+ <email>anthony.goubard -at- japplis.com</email>
</contributor>
<contributor>
<name>Christopher Ottley</name>