You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Tim Allison (Jira)" <ji...@apache.org> on 2026/09/25 16:43:00 UTC

[jira] [Resolved] (TIKA-4932) PipesForkParser: metadata passed to parse() overwrites the fork's parse results

     [ https://issues.apache.org/jira/browse/TIKA-4932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Allison resolved TIKA-4932.
-------------------------------
    Fix Version/s: 4.1.0
       Resolution: Fixed

> PipesForkParser: metadata passed to parse() overwrites the fork's parse results
> -------------------------------------------------------------------------------
>
>                 Key: TIKA-4932
>                 URL: https://issues.apache.org/jira/browse/TIKA-4932
>             Project: Tika
>          Issue Type: Task
>            Reporter: Tim Allison
>            Priority: Major
>             Fix For: 4.1.0
>
>
> :robot: :
> PipesForkParser.parse(tis, metadata, context) sends the caller's metadata as the tuple's user metadata. EmitHandler.injectUserMetadata() then overwrites the parsed values with it. Callers pass
>   Content-Type and resourceName as hints for detection, as they would to Parser.parse(). What they get back is their own hint in place of the detected type. For example, a PDF served as text/html; 
>   charset=UTF-8 comes back with the raw header value as its Content-Type.
>   The overwrite is intended for async and server users, who inject IDs this way, so the fix belongs in PipesForkParser: metadata the caller passes should be used for detection and parsing, not
>   injected back into the result. Tell users about the behavior change in the release notes.
>  
> Found by [~dpol1]  on apache/stormcrawler#2183.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)