You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2023/03/21 19:01:17 UTC
[tika] branch main updated: TIKA-3990 -- close pkg for regular InputStreams (#1030)
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 bf4572f13 TIKA-3990 -- close pkg for regular InputStreams (#1030)
bf4572f13 is described below
commit bf4572f138c5f6f9f718eb52cdd622d706680e33
Author: Tim Allison <ta...@apache.org>
AuthorDate: Tue Mar 21 15:01:09 2023 -0400
TIKA-3990 -- close pkg for regular InputStreams (#1030)
---
.../tika/parser/microsoft/ooxml/OOXMLExtractorFactory.java | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLExtractorFactory.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLExtractorFactory.java
index ca1f180b1..6ea9d5a5f 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLExtractorFactory.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLExtractorFactory.java
@@ -98,6 +98,9 @@ public class OOXMLExtractorFactory {
File tmpRepairedCopy = null;
OPCPackage pkg = null;
+ //if the pkg is in the opencontainer of a TikaInputStream, it will get closed.
+ //However, if a regular inputstream has been sent in, we need to revert the pkg.
+ boolean mustRevertPackage = false;
try {
OOXMLExtractor extractor = null;
@@ -117,6 +120,7 @@ public class OOXMLExtractorFactory {
} else {
//OPCPackage slurps rris into memory so we can close rris
//without apparent problems
+ mustRevertPackage = true;
try (RereadableInputStream rereadableInputStream = new RereadableInputStream(stream,
MAX_BUFFER_LENGTH, false)) {
try {
@@ -254,10 +258,10 @@ public class OOXMLExtractorFactory {
} catch (RuntimeSAXException e) {
throw (SAXException) e.getCause();
} finally {
+ if (pkg != null && mustRevertPackage) {
+ pkg.revert();
+ }
if (tmpRepairedCopy != null) {
- if (pkg != null) {
- pkg.revert();
- }
boolean deleted = tmpRepairedCopy.delete();
if (!deleted) {
LOG.warn("failed to delete tmp (repair) file: " +