You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Alex Rodriguez Lopez (JIRA)" <ji...@apache.org> on 2010/12/10 11:16:05 UTC

[jira] Created: (PDFBOX-917) Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream

Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream
------------------------------------------------------------------------------------------------------------------------------------

                 Key: PDFBOX-917
                 URL: https://issues.apache.org/jira/browse/PDFBOX-917
             Project: PDFBox
          Issue Type: Improvement
          Components: Parsing
    Affects Versions: 1.3.1
         Environment: Used through Apache Tika 0.8
            Reporter: Alex Rodriguez Lopez


This happened using the following PDF (~2MB): 
http://biblioteca.sinbad.ua.pt/DisQSws/get.aspx?filename=2010001615.pdf&catalog=Teses&type=pdf

When reading non-conforming PDFs like the one above the following exception is thrown and the text extraction partially fails:

WARN - Parsing Error, Skipping Object
java.io.IOException: expected='endobj' firstReadAttempt='' secondReadAttempt='' org.apache.pdfbox.io.PushBackInputStream@53ab04
        at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:607)
        at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:172)
        at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:878)
        at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:843)
        at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:74)
        at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
        at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
        at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)
        at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:218)
        at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:84) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (PDFBOX-917) Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream

Posted by "Alex Rodriguez Lopez (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PDFBOX-917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rodriguez Lopez updated PDFBOX-917:
----------------------------------------

    Attachment: 2010001615.pdf

This is a non-conforming PDF which, when parsed, throws:

WARN - Parsing Error, Skipping Object
java.io.IOException: expected='endobj' firstReadAttempt='' secondReadAttempt='' org.apache.pdfbox.io.PushBackInputStream@53ab04
        at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:607)
        at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:172)
        at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:878)
        at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:843)
        at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:74)
        at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
        at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
        at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)
        at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:218)
        at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:84) 

> Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-917
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-917
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: Parsing
>    Affects Versions: 1.3.1
>         Environment: Used through Apache Tika 0.8
>            Reporter: Alex Rodriguez Lopez
>         Attachments: 2010001615.pdf
>
>
> This happened using the following PDF (~2MB): 
> http://biblioteca.sinbad.ua.pt/DisQSws/get.aspx?filename=2010001615.pdf&catalog=Teses&type=pdf
> When reading non-conforming PDFs like the one above the following exception is thrown and the text extraction partially fails:
> WARN - Parsing Error, Skipping Object
> java.io.IOException: expected='endobj' firstReadAttempt='' secondReadAttempt='' org.apache.pdfbox.io.PushBackInputStream@53ab04
>         at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:607)
>         at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:172)
>         at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:878)
>         at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:843)
>         at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:74)
>         at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
>         at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
>         at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)
>         at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:218)
>         at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:84) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (PDFBOX-917) Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream

Posted by "ChrisN (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/PDFBOX-917?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12984260#action_12984260 ] 

ChrisN commented on PDFBOX-917:
-------------------------------

Patch works quite well for me. Also fixed problem for other files too. I've voted for it.

> Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-917
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-917
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: Parsing
>    Affects Versions: 1.3.1
>         Environment: Used through Apache Tika 0.8
>            Reporter: Alex Rodriguez Lopez
>         Attachments: 2010001615.pdf, PDFBOX-917.patch
>
>
> This happened using the following PDF (~2MB): 
> http://biblioteca.sinbad.ua.pt/DisQSws/get.aspx?filename=2010001615.pdf&catalog=Teses&type=pdf
> When reading non-conforming PDFs like the one above the following exception is thrown and the text extraction partially fails:
> WARN - Parsing Error, Skipping Object
> java.io.IOException: expected='endobj' firstReadAttempt='' secondReadAttempt='' org.apache.pdfbox.io.PushBackInputStream@53ab04
>         at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:607)
>         at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:172)
>         at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:878)
>         at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:843)
>         at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:74)
>         at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
>         at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
>         at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)
>         at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:218)
>         at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:84) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (PDFBOX-917) Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream

Posted by "Martijn Brinkers (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PDFBOX-917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martijn Brinkers updated PDFBOX-917:
------------------------------------

    Attachment: PDFBOX-917.patch

In most real world cases of non-conforming PDFs with missing endobj, this patch seems to handle those cases better

> Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-917
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-917
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: Parsing
>    Affects Versions: 1.3.1
>         Environment: Used through Apache Tika 0.8
>            Reporter: Alex Rodriguez Lopez
>         Attachments: 2010001615.pdf, PDFBOX-917.patch
>
>
> This happened using the following PDF (~2MB): 
> http://biblioteca.sinbad.ua.pt/DisQSws/get.aspx?filename=2010001615.pdf&catalog=Teses&type=pdf
> When reading non-conforming PDFs like the one above the following exception is thrown and the text extraction partially fails:
> WARN - Parsing Error, Skipping Object
> java.io.IOException: expected='endobj' firstReadAttempt='' secondReadAttempt='' org.apache.pdfbox.io.PushBackInputStream@53ab04
>         at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:607)
>         at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:172)
>         at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:878)
>         at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:843)
>         at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:74)
>         at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
>         at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
>         at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)
>         at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:218)
>         at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:84) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (PDFBOX-917) Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream

Posted by "Martijn Brinkers (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/PDFBOX-917?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12970123#action_12970123 ] 

Martijn Brinkers commented on PDFBOX-917:
-----------------------------------------

The problem is cause because the endobj is either missing or corrupt. The current code in trunk that tries to handle this situation seems to be somewhat too complicated because it fails to handle the missing endobj in a lot of cases.  I have added a patch that seems to handle non conforming PDFs with missing endobj (which happens quite often) better for most cases (on a large number of PDFs ebooks)

> Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-917
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-917
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: Parsing
>    Affects Versions: 1.3.1
>         Environment: Used through Apache Tika 0.8
>            Reporter: Alex Rodriguez Lopez
>         Attachments: 2010001615.pdf, PDFBOX-917.patch
>
>
> This happened using the following PDF (~2MB): 
> http://biblioteca.sinbad.ua.pt/DisQSws/get.aspx?filename=2010001615.pdf&catalog=Teses&type=pdf
> When reading non-conforming PDFs like the one above the following exception is thrown and the text extraction partially fails:
> WARN - Parsing Error, Skipping Object
> java.io.IOException: expected='endobj' firstReadAttempt='' secondReadAttempt='' org.apache.pdfbox.io.PushBackInputStream@53ab04
>         at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:607)
>         at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:172)
>         at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:878)
>         at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:843)
>         at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:74)
>         at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
>         at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
>         at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)
>         at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:218)
>         at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:84) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (PDFBOX-917) Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream

Posted by "Adam Nichols (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PDFBOX-917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Adam Nichols resolved PDFBOX-917.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 1.5.0
         Assignee: Adam Nichols

Patch committed in revision 1061410

> Read non-conforming PDFs (attached) without throwing java.io.IOException: expected='endobj' org.apache.pdfbox.io.PushBackInputStream
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-917
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-917
>             Project: PDFBox
>          Issue Type: Improvement
>          Components: Parsing
>    Affects Versions: 1.3.1
>         Environment: Used through Apache Tika 0.8
>            Reporter: Alex Rodriguez Lopez
>            Assignee: Adam Nichols
>             Fix For: 1.5.0
>
>         Attachments: 2010001615.pdf, PDFBOX-917.patch
>
>
> This happened using the following PDF (~2MB): 
> http://biblioteca.sinbad.ua.pt/DisQSws/get.aspx?filename=2010001615.pdf&catalog=Teses&type=pdf
> When reading non-conforming PDFs like the one above the following exception is thrown and the text extraction partially fails:
> WARN - Parsing Error, Skipping Object
> java.io.IOException: expected='endobj' firstReadAttempt='' secondReadAttempt='' org.apache.pdfbox.io.PushBackInputStream@53ab04
>         at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:607)
>         at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:172)
>         at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:878)
>         at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:843)
>         at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:74)
>         at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
>         at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
>         at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)
>         at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:218)
>         at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:84) 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.