Hi, thanks for the observation. I've opened PDFBOX-4158 (https://issues.apa che.org/jira/browse/PDFBOX-4158) for that. Please add your findings including screenshots and a possible patch to this issue.
BR Maruan > Hello, > > We tried using PDFBox 2.0.4 to merge PDF Documents, in order to allow the > user Print all documents at once from the Browser. The resulting document is > sent to the print window. In order to improve customer experience, documents > are merged to the Servlet HTTP Output Stream. It’s possible for the user to > close the window or network to time out, resulting in Exception below. > > We used JProfiler to diagnose the memory leak and followed instructions: > https://www.ej-technologies.com/resources/jprofiler/help/doc/#jprofiler.heapWalker.memoryLeaks > > BiggestObject and Allocation Screen Captures are attached. We also observed > that Scratch File is not cleaned up. > > In reviewing the code: > > 1. > org.apache.pdfbox.multipdf.PDFMergerUtility#mergeDocuments(MemoryUsageSetting > memUsageSetting) > > finally{ } block loops over (PDDocument doc : tobeclosed) without catching > Exception, probably causing the leak that we’re seeing. > > 2. org.apache.pdfbox.cos.COSDocument#close() > > > if closing COSStream or COSObject results in IOException, close on > scratchFile is never reached. > > I’ll try to add debugging and use try / catch / finally on every operation to > see if the memory leak can be avoided. A couple of questions? > > Is anyone else running into this and are there recommendations? > Any ETA on: https://issues.apache.org/jira/browse/PDFBOX-3999? It’s a little > hard to follow, but it may make this fix a little easier. > If the fix works, can I open a pull request for someone to review? > > Thank you in advance, > > > Gary Potagal > Principal Software Engineer O: 1800.446.9614 > > > > > =============== > > org.apache.catalina.connector.ClientAbortException: java.io.IOException: > Broken pipe > at > org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:396) > at > org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:426) > at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:283) > at > org.apache.catalina.connector.OutputBuffer.writeByte(OutputBuffer.java:440) > at > org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:81) > at > org.apache.catalina.filters.ExpiresFilter$XServletOutputStream.write(ExpiresFilter.java:1016) > at > org.apache.pdfbox.pdfwriter.COSStandardOutputStream.write(COSStandardOutputStream.java:144) > at org.apache.pdfbox.cos.COSName.writePDF(COSName.java:702) > at > org.apache.pdfbox.pdfwriter.COSWriter.visitFromName(COSWriter.java:1155) > at org.apache.pdfbox.cos.COSName.accept(COSName.java:672) > at > org.apache.pdfbox.pdfwriter.COSWriter.visitFromDictionary(COSWriter.java:995) > at org.apache.pdfbox.cos.COSDictionary.accept(COSDictionary.java:1325) > at > org.apache.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:522) > at > org.apache.pdfbox.pdfwriter.COSWriter.doWriteObjects(COSWriter.java:460) > at > org.apache.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:444) > at > org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:1096) > at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:419) > at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1367) > at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1254) > at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1232) > at > org.apache.pdfbox.multipdf.PDFMergerUtility.mergeDocuments(PDFMergerUtility.java:280) > > > This email, including attachments, may contain information that is > privileged, confidential or is exempt from disclosure under applicable law > (including, but not limited to, protected health information). It is not > intended for transmission to, or receipt by, any unauthorized persons. If the > reader of this message is not the intended recipient, or the employee or > agent responsible for delivering the message to the intended recipient, you > are hereby notified that any dissemination, distribution or copying of this > communication is strictly prohibited. If you believe this email was sent to > you in error, do not read it. Please notify the sender immediately informing > them of the error and delete all copies and attachments of the message from > your system. Thank you. > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] -- Maruan Sahyoun FileAffairs GmbH Josef-Schappe-Straße 21 40882 Ratingen Tel: +49 (2102) 89497 88 Fax: +49 (2102) 89497 91 [email protected] www.fileaffairs.de Geschäftsführer: Maruan Sahyoun Handelsregister: AG Düsseldorf, HRB 53837 UST.-ID: DE248275827 --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
