[ 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)