This is an automated email from the ASF dual-hosted git repository.

tallison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/main by this push:
     new 84d05ad4a TIKA-4221 -- temporary workaround for COMPRESS-675 (#1686) 
-- fix merge conflicts (#1750)
84d05ad4a is described below

commit 84d05ad4ad7754735f8d7de9449ec52767ba1689
Author: Tim Allison <[email protected]>
AuthorDate: Wed May 8 09:11:06 2024 -0400

    TIKA-4221 -- temporary workaround for COMPRESS-675 (#1686) -- fix merge 
conflicts (#1750)
---
 .../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 e5f9767e2..22262ba8e 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 implements Parser {
         // any associated resources, but the underlying document stream
         // should not be closed
         if (stream.markSupported()) {
-            stream = CloseShieldInputStream.wrap(stream);
+            stream = new TikaCloseShieldInputStream(stream);
         } else {
             // Ensure that the stream supports the mark feature
-            stream = new 
BufferedInputStream(CloseShieldInputStream.wrap(stream));
+            stream = new BufferedInputStream(new 
TikaCloseShieldInputStream(stream));
         }
 
         CompressorInputStream cis;
@@ -267,4 +267,58 @@ public class CompressorParser implements Parser {
         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();
+        }
+    }
 }

Reply via email to