[ 
https://issues.apache.org/jira/browse/PDFBOX-3612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

André Heuner updated PDFBOX-3612:
---------------------------------
    Description: 
I'd like to add a watermark to a PDF and have the following code:

{code:java}
        @Test
        public void testAddWatermark() {
                try {
                        for (int n = 0; n < 10; n++) { // test runs well with n 
< 3; with n < 10 and w/o overlay.close() warnings are shown
                            PDDocument pdfDocument = PDDocument.load(new 
File("C:\\data\\somePdfFile.pdf"));
                            PDDocument pdfCopy = Pdf.extract(pdfDocument, 1, 1);
                            PDDocument watermarkCopy = 
Pdf.addWatermark(pdfCopy);
                            
                            ByteArrayOutputStream byteArrayOutputStream = new 
ByteArrayOutputStream();

                            // save as bytes; exception in comment thrown here 
if overlay.close() is called
                            watermarkCopy.save(byteArrayOutputStream); 
                            byteArrayOutputStream.close();
                                
                            watermarkCopy.close();
                                pdfCopy.close();
                                pdfDocument.close();
                        }
                        
                } catch (Exception e) {
                        e.printStackTrace();
                }        
        }

        ....

        public static PDDocument addWatermark(PDDocument document) {
            try {
                HashMap<Integer, String> overlayGuide = new HashMap<Integer, 
String>();
                
                for(int no = 0; no < document.getNumberOfPages(); no++) {
                        overlayGuide.put(no +1, "C:\\data\\watermark.pdf");
                }
            
                Overlay overlay = new Overlay();
                overlay.setInputPDF(document);
                overlay.setOverlayPosition(Overlay.Position.FOREGROUND);
                
                PDDocument result = overlay.overlay(overlayGuide);

                // overlay.close();
                
                return result;
                
            } catch (Exception e) {
                log.error("Error while adding watermark: " +e.getMessage(), e);
                        
                return document;
            }
        }{code}

overlay.overlay(...) seems to cause lot's of warnings:

{code}
...
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] WARN  [org.apache.pdfbox.cos.COSDocument] Warning: You 
did not close a PDF Document 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] WARN  [org.apache.pdfbox.cos.COSDocument] Warning: You 
did not close a PDF Document 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
...
{code}

Is there anything, that can be done to fix this issue? I tried to close 
anything that is closable - but the issue remains. Or can it safely be ignored?


  was:
I'd like to add a watermark to a PDF and have the following code:

{code:java}
        @Test
        public void testAddWatermark() {
                try {
                        for (int n = 0; n < 10; n++) { // test runs well with n 
< 3; with n < 10 and w/o overlay.close() warnings are shown
                            PDDocument pdfDocument = PDDocument.load(new 
File("C:\\data\\somePdfFile.pdf"));
                            PDDocument pdfCopy = Pdf.extract(pdfDocument, 1, 1);
                            PDDocument watermarkCopy = 
Pdf.addWatermark(pdfCopy);
                            
                            ByteArrayOutputStream byteArrayOutputStream = new 
ByteArrayOutputStream();

                            // save as bytes; exception in comment thrown here 
if overlay.close() is called
                            watermarkCopy.save(byteArrayOutputStream); 
                            byteArrayOutputStream.close();
                                
                            watermarkCopy.close();
                                pdfCopy.close();
                                pdfDocument.close();
                        }
                        
                } catch (Exception e) {
                        e.printStackTrace();
                }        
        }

        ....

        public static PDDocument addWatermark(PDDocument document) {
            try {
                HashMap<Integer, String> overlayGuide = new HashMap<Integer, 
String>();
                
                for(int no = 0; no < document.getNumberOfPages(); no++) {
                        overlayGuide.put(no +1, "C:\\data\\watermark.pdf");
                }
            
                Overlay overlay = new Overlay();
                overlay.setInputPDF(document);
                overlay.setOverlayPosition(Overlay.Position.FOREGROUND);
                
                PDDocument result = overlay.overlay(overlayGuide);

                // overlay.close();
                
                return result;
                
            } catch (Exception e) {
                log.error("Error while adding watermark: " +e.getMessage(), e);
                        
                return document;
            }
        }{code}

overlay.overlay(...) seems to cause lot's of warnings:

{code}
[2016-12-01-09:48:51] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-01-09:48:51] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-01-09:48:51] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-01-09:48:51] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-01-09:48:51] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
[2016-12-01-09:48:51] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
ScratchFileBuffer not closed! 
{code}

Is there anything, that can be done to fix this issue? I tried to close 
anything that is closable - but the issue remains. Or can it safely be ignored?



> ScratchFileBuffer not closed message related to overlay.overlay(overlayGuide);
> ------------------------------------------------------------------------------
>
>                 Key: PDFBOX-3612
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3612
>             Project: PDFBox
>          Issue Type: Bug
>    Affects Versions: 2.0.3, 2.1.0
>         Environment: Windows 7 Professional, Eclipse, JDK 1.8
>            Reporter: André Heuner
>            Priority: Minor
>
> I'd like to add a watermark to a PDF and have the following code:
> {code:java}
>       @Test
>       public void testAddWatermark() {
>               try {
>                       for (int n = 0; n < 10; n++) { // test runs well with n 
> < 3; with n < 10 and w/o overlay.close() warnings are shown
>                           PDDocument pdfDocument = PDDocument.load(new 
> File("C:\\data\\somePdfFile.pdf"));
>                           PDDocument pdfCopy = Pdf.extract(pdfDocument, 1, 1);
>                           PDDocument watermarkCopy = 
> Pdf.addWatermark(pdfCopy);
>                           
>                           ByteArrayOutputStream byteArrayOutputStream = new 
> ByteArrayOutputStream();
>                           // save as bytes; exception in comment thrown here 
> if overlay.close() is called
>                           watermarkCopy.save(byteArrayOutputStream); 
>                           byteArrayOutputStream.close();
>                               
>                           watermarkCopy.close();
>                               pdfCopy.close();
>                               pdfDocument.close();
>                       }
>                       
>               } catch (Exception e) {
>                       e.printStackTrace();
>               }        
>       }
>       ....
>       public static PDDocument addWatermark(PDDocument document) {
>           try {
>               HashMap<Integer, String> overlayGuide = new HashMap<Integer, 
> String>();
>               
>               for(int no = 0; no < document.getNumberOfPages(); no++) {
>                       overlayGuide.put(no +1, "C:\\data\\watermark.pdf");
>               }
>           
>               Overlay overlay = new Overlay();
>               overlay.setInputPDF(document);
>               overlay.setOverlayPosition(Overlay.Position.FOREGROUND);
>               
>               PDDocument result = overlay.overlay(overlayGuide);
>               // overlay.close();
>               
>               return result;
>               
>           } catch (Exception e) {
>               log.error("Error while adding watermark: " +e.getMessage(), e);
>                       
>               return document;
>           }
>       }{code}
> overlay.overlay(...) seems to cause lot's of warnings:
> {code}
> ...
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] WARN  [org.apache.pdfbox.cos.COSDocument] Warning: You 
> did not close a PDF Document 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] WARN  [org.apache.pdfbox.cos.COSDocument] Warning: You 
> did not close a PDF Document 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] 
> ScratchFileBuffer not closed! 
> ...
> {code}
> Is there anything, that can be done to fix this issue? I tried to close 
> anything that is closable - but the issue remains. Or can it safely be 
> ignored?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to