This is an automated email from the ASF dual-hosted git repository. tallison pushed a commit to branch branch_2x in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/branch_2x by this push: new 9dc037d3c TIKA-4221 -- temporary workaround for COMPRESS-675 (#1686) 9dc037d3c is described below commit 9dc037d3cab80761256d60cdba256388987a2dfc Author: Tim Allison <talli...@apache.org> AuthorDate: Mon Mar 25 12:41:58 2024 -0400 TIKA-4221 -- temporary workaround for COMPRESS-675 (#1686) --- .../apache/tika/parser/pkg/CompressorParser.java | 60 ++++++++++++++++++++-- 1 file changed, 57 insertions(+), 3 deletions(-) diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParser.java index 791a368ce..deb49e17b 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParser.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParser.java @@ -56,7 +56,7 @@ import org.apache.commons.compress.compressors.snappy.FramedSnappyCompressorInpu import org.apache.commons.compress.compressors.snappy.SnappyCompressorInputStream; import org.apache.commons.compress.compressors.xz.XZCompressorInputStream; import org.apache.commons.compress.compressors.z.ZCompressorInputStream; -import org.apache.commons.io.input.CloseShieldInputStream; +import org.apache.commons.io.input.ClosedInputStream; import org.xml.sax.ContentHandler; import org.xml.sax.SAXException; @@ -170,10 +170,10 @@ public class CompressorParser extends AbstractParser { // any associated resources, but the underlying document stream // should not be closed if (stream.markSupported()) { - stream = new CloseShieldInputStream(stream); + stream = new TikaCloseShieldInputStream(stream); } else { // Ensure that the stream supports the mark feature - stream = new BufferedInputStream(new CloseShieldInputStream(stream)); + stream = new BufferedInputStream(new TikaCloseShieldInputStream(stream)); } CompressorInputStream cis; @@ -267,4 +267,58 @@ public class CompressorParser extends AbstractParser { return this.decompressConcatenated; } + //TODO -- get rid of this workaround once TIKA-4221/COMPRESS-675 are fixed + private class TikaCloseShieldInputStream extends InputStream { + + private InputStream stream; + public TikaCloseShieldInputStream(InputStream stream) { + this.stream = stream; + } + + @Override + public void close() throws IOException { + this.stream = ClosedInputStream.INSTANCE; + } + + + @Override + public int read(byte[] b) throws IOException { + return stream.read(b); + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + return stream.read(b, off, len); + } + + @Override + public long skip(long n) throws IOException { + return stream.skip(n); + } + + @Override + public int available() throws IOException { + return stream.available(); + } + + @Override + public synchronized void mark(int readlimit) { + stream.mark(readlimit); + } + + @Override + public synchronized void reset() throws IOException { + stream.reset(); + } + + @Override + public boolean markSupported() { + return stream.markSupported(); + } + + @Override + public int read() throws IOException { + return stream.read(); + } + } }