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 2022/04/26 11:04:57 UTC
[tika] 02/02: TIKA-3734 -- fix new junrar IllegalArgumentException on streams of zero length.
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch branch_1x
in repository https://gitbox.apache.org/repos/asf/tika.git
commit f218c99bc41df0aa6d420595ba27cf3418298040
Author: tallison <ta...@apache.org>
AuthorDate: Tue Apr 26 07:04:45 2022 -0400
TIKA-3734 -- fix new junrar IllegalArgumentException on streams of zero length.
---
.../java/org/apache/tika/parser/pkg/RarParser.java | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/pkg/RarParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/pkg/RarParser.java
index bb1283933..407f3c434 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/pkg/RarParser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/pkg/RarParser.java
@@ -83,16 +83,16 @@ public class RarParser extends AbstractParser {
FileHeader header = rar.nextFileHeader();
while (header != null && !Thread.currentThread().isInterrupted()) {
if (!header.isDirectory()) {
- try (InputStream subFile = rar.getInputStream(header)) {
- Metadata entrydata = PackageParser.handleEntryMetadata(
- "".equals(header.getFileNameW()) ? header.getFileNameString() : header.getFileNameW(),
- header.getCTime(), header.getMTime(),
- header.getFullUnpackSize(),
- xhtml
- );
-
- if (extractor.shouldParseEmbedded(entrydata)) {
- extractor.parseEmbedded(subFile, handler, entrydata, true);
+ if (header.getFullUnpackSize() > 0) {
+ try (InputStream subFile = rar.getInputStream(header)) {
+ Metadata entrydata = PackageParser.handleEntryMetadata(
+ "".equals(header.getFileNameW()) ? header.getFileNameString() :
+ header.getFileNameW(), header.getCTime(), header.getMTime(),
+ header.getFullUnpackSize(), xhtml);
+
+ if (extractor.shouldParseEmbedded(entrydata)) {
+ extractor.parseEmbedded(subFile, handler, entrydata, true);
+ }
}
}
}