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

Adrian Sandor commented on PDFBOX-4294:
---------------------------------------

One detail I missed initially is that the overlay method actually modifies the 
input document (if provided via a PDDocument object). That is not documented, 
and if it's intended, then the following code shouldn't print warnings, yet it 
does:
{code:java}
final String path = "orig.pdf";
final String stampPath = "stamp.pdf";
final PDDocument doc = PDDocument.load(new File(path));
final Overlay o = new Overlay();
o.setInputPDF(doc);
o.setOverlayPosition(Position.FOREGROUND);
final HashMap<Integer, String> m = new HashMap<>();
m.put(1, stampPath);
for (int i = 0; i < 100; ++i) {
 o.overlay(m);
}
doc.close();{code}
{color:#d04437}[Finalizer] WARN org.apache.pdfbox.cos.COSDocument - Warning: 
You did not close a PDF Document{color}
{color:#d04437}[Finalizer] WARN org.apache.pdfbox.cos.COSDocument - Warning: 
You did not close a PDF Document{color}
{color:#d04437}[Finalizer] WARN org.apache.pdfbox.cos.COSDocument - Warning: 
You did not close a PDF Document{color}
[...]

 

> Scratch file already closed when redoing overlay
> ------------------------------------------------
>
>                 Key: PDFBOX-4294
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4294
>             Project: PDFBox
>          Issue Type: Bug
>    Affects Versions: 2.0.11
>            Reporter: Adrian Sandor
>            Priority: Major
>
> Here's some sample code to reproduce the problem:
>  
> {code:java}
> final String path = "orig.pdf";
> final String stampPath = "stamp.pdf";
> final PDDocument doc = PDDocument.load(new File(path));
> final Overlay o = new Overlay();
> o.setInputPDF(doc);
> o.setOverlayPosition(Position.FOREGROUND);
> final HashMap<Integer, String> m = new HashMap<>();
> m.put(0, stampPath);
> PDDocument res = o.overlay(m);
> res.close();
> res = o.overlay(m);
> {code}
> Basically I'm doing an overlay, closing the resulting document, then doing it 
> again (normally I would make some changes first, but I didn't include that 
> for the sake of brevity).
> The last line throws java.io.IOException: Scratch file already closed
> If I remove "res.close()" then the code works, but if I do the overlay 
> multiple times, I get warnings like: org.apache.pdfbox.cos.COSDocument - 
> Warning: You did not close a PDF Document
> which suggests that I should actually close the document when I'm done with 
> it.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to