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

Dominik Schmidt updated TIKA-5050:
----------------------------------
    Description: 
EpubParser decodes manifest hrefs with {{URLDecoder}}, which decodes HTML form 
data, not URIs: a {{+}} becomes a space. It then appends the href to the OPF's 
folder without resolving it, so a {{../}} is not followed.

An EPUB whose OPF sits in {{OEBPS/}} and whose spine names 
{{Text/plain.xhtml}}, {{Text/c++.xhtml}} and {{../Shared/up.xhtml}} yields the 
text of the first only; the other two are skipped without an exception or a 
warning.

Manifest hrefs are URI references relative to the OPF. Resolving them against 
the OPF's path (RFC 3986, section 5.2) and percent-decoding the result as a URI 
path gives the zip entry name: {{Text/c++%20b.xhtml}} is {{OEBPS/Text/c++ 
b.xhtml}}, {{../Images/cover.jpg}} is {{Images/cover.jpg}}.

  was:
EpubParser decodes manifest hrefs with {{URLDecoder}}, which decodes HTML form 
data, not URIs: a {{+}} becomes a space. It then appends the href to the OPF's 
folder without resolving it, so a {{../}} is not followed.

An EPUB whose OPF sits in {{OEBPS/}} and whose spine names 
{{Text/plain.xhtml}}, {{Text/c++.xhtml}} and {{../Shared/up.xhtml}} yields the 
text of the first only; the other two are skipped without an exception or a 
warning.

Manifest hrefs are URI references relative to the OPF (EPUB 3 Packages, 3.4.3). 
Resolving them against the OPF's path (RFC 3986, section 5.2) and 
percent-decoding the result as a URI path gives the zip entry name: 
{{Text/c++%20b.xhtml}} is {{OEBPS/Text/c++ b.xhtml}}, {{../Images/cover.jpg}} 
is {{Images/cover.jpg}}.


> EpubParser misses manifest items whose href holds a '+' or a '../'
> ------------------------------------------------------------------
>
>                 Key: TIKA-5050
>                 URL: https://issues.apache.org/jira/browse/TIKA-5050
>             Project: Tika
>          Issue Type: Bug
>          Components: parser
>            Reporter: Dominik Schmidt
>            Priority: Major
>




--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to