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);
+                            }
                         }
                     }
                 }