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
commit 062e607ee72c2a7cead5b5f5d232ee3fbafbbdd8 Author: tallison <[email protected]> AuthorDate: Fri Jul 21 16:23:43 2023 -0400 TIKA-4103 -- check for resourceName; unrelated, add resourceName for macros in OfficeParser --- .../src/main/java/org/apache/tika/eval/app/ExtractComparer.java | 9 +++++++-- .../main/java/org/apache/tika/parser/microsoft/OfficeParser.java | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractComparer.java b/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractComparer.java index dbab7d476..62723d7e6 100644 --- a/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractComparer.java +++ b/tika-eval/tika-eval-app/src/main/java/org/apache/tika/eval/app/ExtractComparer.java @@ -470,7 +470,9 @@ public class ExtractComparer extends AbstractProfiler { if (digestA == null) { return -1; } + String resourceName = metadata.get(TikaCoreProperties.RESOURCE_NAME_KEY); + int cand = -1; for (int i = 0; i < metadataListB.size(); i++) { if (handledB.contains(i)) { continue; @@ -478,10 +480,13 @@ public class ExtractComparer extends AbstractProfiler { Metadata mB = metadataListB.get(i); String digestB = mB.get(sharedDigestKey); if (digestA.equalsIgnoreCase(digestB)) { - return i; + cand = i; + if (resourceName != null && resourceName.equals(mB.get(TikaCoreProperties.RESOURCE_NAME_KEY))) { + return i; + } } } - return -1; + return cand; } private void writeContrasts(Map<Cols, String> data, ContrastStatistics contrastStatistics) { diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java index e862260f6..c3c81e792 100644 --- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java +++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java @@ -61,6 +61,7 @@ import org.apache.tika.parser.microsoft.ooxml.OOXMLParser; import org.apache.tika.sax.BodyContentHandler; import org.apache.tika.sax.EmbeddedContentHandler; import org.apache.tika.sax.XHTMLContentHandler; +import org.apache.tika.utils.StringUtils; /** * Defines a Microsoft document content extractor. @@ -126,6 +127,9 @@ public class OfficeParser extends AbstractOfficeParser { m.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE, TikaCoreProperties.EmbeddedResourceType.MACRO.toString()); m.set(Metadata.CONTENT_TYPE, "text/x-vbasic"); + if (!StringUtils.isBlank(e.getKey())) { + m.set(TikaCoreProperties.RESOURCE_NAME_KEY, e.getKey()); + } if (embeddedDocumentExtractor.shouldParseEmbedded(m)) { embeddedDocumentExtractor.parseEmbedded( new UnsynchronizedByteArrayInputStream(e.getValue().getBytes(StandardCharsets.UTF_8)),
