[
https://issues.apache.org/jira/browse/PDFBOX-2512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14245909#comment-14245909
]
Thomas Chojecki commented on PDFBOX-2512:
-----------------------------------------
I will try to apply the fix next year to the trunk and take a look at
PDFBOX-2515.
The last test with the nonSeq parser and the large document linked in the issue
description workes more or less and created a valid signature out of the box.
But the size was more than twice of the original document
> OutOfMemory while signing large documents
> -----------------------------------------
>
> Key: PDFBOX-2512
> URL: https://issues.apache.org/jira/browse/PDFBOX-2512
> Project: PDFBox
> Issue Type: Bug
> Components: Parsing, Signing
> Affects Versions: 1.8.7
> Reporter: Thomas Chojecki
> Assignee: Thomas Chojecki
> Fix For: 1.8.8
>
> Attachments: keystore.p12
>
>
> While working with large documents, we found some memory issues.
> 1. The method close() in the COSDocument, clones the objectpool and does not
> clean it properly. The cloning in getObjects() cause a OutOfMemory exception.
> 2.The COSWriter copy the whole pdf into the memory for signing and does not
> use BufferedInputStream for the FileInputStream which also has a big
> performance impact. (PDFBOX-1798)
> 3. The cloning of COSStreams cause a OutOfMemory exception
> I used the CreateSignature example with a about 150 MB big document from here:
> https://cdn-reichelt.de/bilder/downloads/reichelt_01-2015_DE_B_HQ.pdf
> Additionaly I add a RandomAccessFile to the PDDocument.load in the
> CreateSignature class.
> PDDocument doc = PDDocument.load(document,new RandomAccessFile(new
> File("d:\\temp.bin"), "rw")); (this prevent the OOM for the third case)
> The use of a BuffedInputStream in case two, will increase the signing speed
> from more than 5 minutes to less than 1 minute.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)