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