You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2015/07/30 20:40:23 UTC

svn commit: r1693467 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java

Author: lehmi
Date: Thu Jul 30 18:40:22 2015
New Revision: 1693467

URL: http://svn.apache.org/r1693467
Log:
PDFBOX-2911: close all FileInputStreams created when calling addSource with a filename or a file

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java?rev=1693467&r1=1693466&r2=1693467&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java Thu Jul 30 18:40:22 2015
@@ -66,6 +66,7 @@ public class PDFMergerUtility
     private static final String STRUCTURETYPE_DOCUMENT = "Document";
 
     private final List<InputStream> sources;
+    private final List<FileInputStream> fileInpuStreams;
     private String destinationFileName;
     private OutputStream destinationStream;
     private boolean ignoreAcroFormErrors = false;
@@ -76,6 +77,7 @@ public class PDFMergerUtility
     public PDFMergerUtility()
     {
         sources = new ArrayList<InputStream>();
+        fileInpuStreams = new ArrayList<FileInputStream>();
     }
 
     /**
@@ -95,7 +97,7 @@ public class PDFMergerUtility
      */
     public void setDestinationFileName(String destination)
     {
-        this.destinationFileName = destination;
+        destinationFileName = destination;
     }
 
     /**
@@ -127,7 +129,7 @@ public class PDFMergerUtility
      */
     public void addSource(String source) throws FileNotFoundException
     {
-        sources.add(new FileInputStream(new File(source)));
+        addSource(new File(source));
     }
 
     /**
@@ -139,7 +141,9 @@ public class PDFMergerUtility
      */
     public void addSource(File source) throws FileNotFoundException
     {
-        sources.add(new FileInputStream(source));
+        FileInputStream stream = new FileInputStream(source);
+        sources.add(stream);
+        fileInpuStreams.add(stream);
     }
 
     /**
@@ -210,6 +214,10 @@ public class PDFMergerUtility
                 {
                     doc.close();
                 }
+                for (FileInputStream stream : fileInpuStreams)
+                {
+                    stream.close();
+                }
             }
         }
     }