This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 1b185e8  [CAMEL-14355] PDF producer should close PDF documents (#3472)
1b185e8 is described below

commit 1b185e8c0c7bc8c72fd9f3705f19fb18fa1e65fb
Author: Pascal Schumacher <[email protected]>
AuthorDate: Fri Jan 10 05:17:20 2020 +0100

    [CAMEL-14355] PDF producer should close PDF documents (#3472)
---
 .../apache/camel/component/pdf/PdfProducer.java    | 57 +++++++++++-----------
 1 file changed, 29 insertions(+), 28 deletions(-)

diff --git 
a/components/camel-pdf/src/main/java/org/apache/camel/component/pdf/PdfProducer.java
 
b/components/camel-pdf/src/main/java/org/apache/camel/component/pdf/PdfProducer.java
index d51d159..ecc450f 100644
--- 
a/components/camel-pdf/src/main/java/org/apache/camel/component/pdf/PdfProducer.java
+++ 
b/components/camel-pdf/src/main/java/org/apache/camel/component/pdf/PdfProducer.java
@@ -77,45 +77,46 @@ public class PdfProducer extends DefaultProducer {
     private Object doAppend(Exchange exchange) throws IOException {
         log.debug("Got {} operation, going to append text to provided pdf.", 
pdfConfiguration.getOperation());
         String body = exchange.getIn().getBody(String.class);
-        PDDocument document = 
exchange.getIn().getHeader(PDF_DOCUMENT_HEADER_NAME, PDDocument.class);
-        if (document == null) {
-            throw new IllegalArgumentException(String.format("%s header is 
expected for append operation",
-                    PDF_DOCUMENT_HEADER_NAME));
+        try (PDDocument document = 
exchange.getIn().getHeader(PDF_DOCUMENT_HEADER_NAME, PDDocument.class)) {
+            if (document == null) {
+                throw new IllegalArgumentException(String.format("%s header is 
expected for append operation",
+                        PDF_DOCUMENT_HEADER_NAME));
+            }
+
+            if (document.isEncrypted()) {
+                document.setAllSecurityToBeRemoved(true);
+            }
+
+            ProtectionPolicy protectionPolicy = exchange.getIn().getHeader(
+                    PROTECTION_POLICY_HEADER_NAME, ProtectionPolicy.class);
+
+            appendToPdfDocument(body, document, protectionPolicy);
+            OutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+            document.save(byteArrayOutputStream);
+            return byteArrayOutputStream;
         }
-
-        if (document.isEncrypted()) {
-            document.setAllSecurityToBeRemoved(true);
-        }
-
-        ProtectionPolicy protectionPolicy = exchange.getIn().getHeader(
-                PROTECTION_POLICY_HEADER_NAME, ProtectionPolicy.class);
-
-        appendToPdfDocument(body, document, protectionPolicy);
-        OutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-        document.save(byteArrayOutputStream);
-        return byteArrayOutputStream;
     }
 
     private String doExtractText(Exchange exchange) throws IOException {
         log.debug("Got {} operation, going to extract text from provided 
pdf.", pdfConfiguration.getOperation());
-        PDDocument document = exchange.getIn().getBody(PDDocument.class);
-
-
-        PDFTextStripper pdfTextStripper = new PDFTextStripper();
-        return pdfTextStripper.getText(document);
+        try (PDDocument document = exchange.getIn().getBody(PDDocument.class)) 
{
+            PDFTextStripper pdfTextStripper = new PDFTextStripper();
+            return pdfTextStripper.getText(document);
+        }
     }
 
     private OutputStream doCreate(Exchange exchange) throws IOException {
         log.debug("Got {} operation, going to create and write provided string 
to pdf document.",
                 pdfConfiguration.getOperation());
         String body = exchange.getIn().getBody(String.class);
-        PDDocument document = new PDDocument();
-        StandardProtectionPolicy protectionPolicy = exchange.getIn().getHeader(
-                PROTECTION_POLICY_HEADER_NAME, StandardProtectionPolicy.class);
-        appendToPdfDocument(body, document, protectionPolicy);
-        OutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-        document.save(byteArrayOutputStream);
-        return byteArrayOutputStream;
+        try (PDDocument document = new PDDocument()) {
+            StandardProtectionPolicy protectionPolicy = 
exchange.getIn().getHeader(
+                    PROTECTION_POLICY_HEADER_NAME, 
StandardProtectionPolicy.class);
+            appendToPdfDocument(body, document, protectionPolicy);
+            OutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+            document.save(byteArrayOutputStream);
+            return byteArrayOutputStream;
+        }
     }
 
     private void appendToPdfDocument(String text, PDDocument document, 
ProtectionPolicy protectionPolicy) throws IOException {

Reply via email to