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 2017/03/17 16:23:42 UTC

[jira] [Commented] (PDFBOX-3721) PDFMergerUtility is throwing java.lang.OutOfMemoryError: Java heap space exception while trying to merge documents

    [ https://issues.apache.org/jira/browse/PDFBOX-3721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15930244#comment-15930244 ] 

Tilman Hausherr commented on PDFBOX-3721:
-----------------------------------------

please update to 2.0.5 and try again. If it doesn't work, please replace
{code}
pdfMerger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
{code}
with
{code}
pdfMerger.mergeDocuments(MemoryUsageSetting.setupTempFileOnly());
{code}
If it still doesn't work, please attach all your PDF files to this issue and the smallest complete code (with "main") that reproduces the effect, and mention what -Xmx setting you are using.

> PDFMergerUtility is throwing java.lang.OutOfMemoryError: Java heap space exception while trying to merge documents
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-3721
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3721
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 2.0.3
>            Reporter: anil kumar
>            Priority: Critical
>              Labels: performance
>
> My code snapshot is like this:
> ByteArrayOutputStream mergedPdfStream = new ByteArrayOutputStream();
> 	PDFMergerUtility pdfMerger = new PDFMergerUtility();
> pdfMerger.setDestinationStream(mergedPdfStream);	
> //looping through whole list of documents
> pdfMerger.addSource(new ByteArrayInputStream(bos.toByteArray()));
> //loop ends
> pdfMerger.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
> I am getting below exception
> java.lang.OutOfMemoryError: Java heap space
>  at java.util.Arrays.copyOf(Arrays.java:3236)
>  at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
>  at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
>  at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
>  at org.apache.pdfbox.pdfwriter.COSStandardOutputStream.write(COSStandardOutputStream.java:129)
>  at org.apache.pdfbox.io.IOUtils.copy(IOUtils.java:68)
>  at org.apache.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:1193)
>  at org.apache.pdfbox.cos.COSStream.accept(COSStream.java:383)
>  at org.apache.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:530)
>  at org.apache.pdfbox.pdfwriter.COSWriter.doWriteObjects(COSWriter.java:459)
>  at org.apache.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:443)
>  at org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:1088)
>  at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:419)
>  at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1359)
>  at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1246)
>  at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1146)
>  at org.apache.pdfbox.multipdf.PDFMergerUtility.mergeDocuments(PDFMergerUtility.java:280)
>  
> We tried to increase memory also, which will allows only few more documents. Soon after that, I am getting same exception.
> is there any better solution to fix this.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org