This is an automated email from the ASF dual-hosted git repository. tilman pushed a commit to branch branch_2x in repository https://gitbox.apache.org/repos/asf/tika.git
commit de1b2bb1524ad319d0f2238c18ca150be9a1df01 Author: Tilman Hausherr <[email protected]> AuthorDate: Tue Feb 20 15:24:02 2024 +0100 TIKA-4199: download element to disk because of problems with commons-compress 1.26.0; complete delegate class --- .../org/apache/tika/parser/pkg/PackageParser.java | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java index 3817f4cfb..623ed8875 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java @@ -29,6 +29,7 @@ import static org.apache.tika.detect.zip.PackageConstants.ZIP; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.nio.charset.Charset; import java.util.Collections; import java.util.Date; @@ -448,6 +449,7 @@ public class PackageParser extends AbstractEncodingDetectorParser { TemporaryResources tmp = new TemporaryResources(); try { TikaInputStream tis = TikaInputStream.get(archive, tmp, entrydata); + tis.getPath(); // fixes troubles with commons-compress 1.26.0 extractor.parseEmbedded(tis, xhtml, entrydata, true); } finally { tmp.dispose(); @@ -517,6 +519,48 @@ public class PackageParser extends AbstractEncodingDetectorParser { public void close() throws IOException { file.close(); } + + @Override + public byte[] readAllBytes() throws IOException { + return in.readAllBytes(); + } + + @Override + public byte[] readNBytes(int len) throws IOException { + return in.readNBytes(len); + } + + @Override + public int readNBytes(byte[] b, int off, int len) throws IOException { + return in.readNBytes(b, off, len); + } + + @Override + public long skip(long n) throws IOException { + return in.skip(n); + } + + @Override + public int available() throws IOException { + return in.available(); + } + + @Override + public synchronized void mark(int readlimit) { + in.mark(readlimit); + } + + @Override + public boolean markSupported() { + return in.markSupported(); + } + + @Override + public long transferTo(OutputStream out) throws IOException { + return in.transferTo(out); + } + + } /**
