You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Tilman Hausherr (JIRA)" <ji...@apache.org> on 2014/09/14 23:21:34 UTC

[jira] [Reopened] (PDFBOX-2347) NPE while creating security handler for decryption

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

Tilman Hausherr reopened PDFBOX-2347:
-------------------------------------

Reopening, will revert the changes, it doesn't work with encrypted files (PDFBOX-2055, PDFBOX-1606). Will implement another solution, e.g. that just checks for COSNull.

> NPE while creating security handler for decryption
> --------------------------------------------------
>
>                 Key: PDFBOX-2347
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-2347
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Parsing
>    Affects Versions: 1.8.6, 1.8.7, 2.0.0
>            Reporter: Tilman Hausherr
>            Assignee: Tilman Hausherr
>              Labels: Encryption
>             Fix For: 1.8.7, 2.0.0
>
>         Attachments: PDFBOX-2347-263071.pdf
>
>
> The attached file has a NPE with the non sequential parser only:
> {code}
> Exception in thread "main" java.io.IOException: Error (NullPointerException) while creating security handler for decryption
>         at org.apache.pdfbox.pdfparser.NonSequentialPDFParser.initialParse(NonSe
> quentialPDFParser.java:493)
>         at org.apache.pdfbox.pdfparser.NonSequentialPDFParser.parse(NonSequentialPDFParser.java:794)
>         at org.apache.pdfbox.pdmodel.PDDocument.loadNonSeq(PDDocument.java:1156)
>         at org.apache.pdfbox.pdmodel.PDDocument.loadNonSeq(PDDocument.java:1139)
>         at org.apache.pdfbox.tools.PDFToImage.main(PDFToImage.java:197)
>         at org.apache.pdfbox.tools.PDFBox.main(PDFBox.java:89)
> Caused by: java.lang.NullPointerException
>         at org.apache.pdfbox.pdmodel.encryption.PDEncryption.getFilter(PDEncrypt
> ion.java:159)
>         at org.apache.pdfbox.pdmodel.encryption.PDEncryption.<init>(PDEncryption.java:96)
>         at org.apache.pdfbox.pdfparser.NonSequentialPDFParser.initialParse(NonSe
> quentialPDFParser.java:464)
> {code}
> The file has this:
> {code}
> trailer
> <<
> /Size
> 53
> /Info
> 29 0 R
> /Encrypt
> null
> /Root
> 35 0 R
> /Prev
> 256729
> /ID
> [
> <f571e5c0c658cb76cfe7ad0662f8f6a1>
> <1c11ae9224c83622f7682d9e00bd2581>
> ]
> >>
> {code}
> so the encryption item is COSNull which is not the same as "null" when using getItem(). So the solution is to use getDictionaryObject() instead, because it checks for COSNull. This method is already used elsewhere in PDFBox to get /Encrypt.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)