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 2020/12/30 13:39:07 UTC

svn commit: r1884941 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdfwriter/ pdmodel/ pdmodel/fdf/ pdmodel/interactive/digitalsignature/ pdmodel/interactive/digitalsignature/visible/

Author: lehmi
Date: Wed Dec 30 13:39:06 2020
New Revision: 1884941

URL: http://svn.apache.org/viewvc?rev=1884941&view=rev
Log:
PDFBOX-4321: don't close given output stream after saving a pdf

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDocument.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/SigningSupport.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDFTemplateCreator.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1884941&r1=1884940&r2=1884941&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java Wed Dec 30 13:39:06 2020
@@ -17,7 +17,6 @@
 package org.apache.pdfbox.pdfwriter;
 
 import java.io.ByteArrayOutputStream;
-import java.io.Closeable;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -39,7 +38,6 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -84,7 +82,7 @@ import org.apache.pdfbox.util.Hex;
  * @author Michael Traut
  * @author Ben Litchfield
  */
-public class COSWriter implements ICOSVisitor, Closeable
+public class COSWriter implements ICOSVisitor
 {
     /**
      * The dictionary open token.
@@ -349,24 +347,6 @@ public class COSWriter implements ICOSVi
     }
 
     /**
-     * This will close the stream.
-     *
-     * @throws IOException If the underlying stream throws an exception.
-     */
-    @Override
-    public void close() throws IOException
-    {
-        if (getStandardOutput() != null)
-        {
-            getStandardOutput().close();
-        }
-        if (incrementalOutput != null)
-        {
-            incrementalOutput.close();
-        }
-    }
-
-    /**
      * This will get the output stream.
      *
      * @return The output stream.

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java?rev=1884941&r1=1884940&r2=1884941&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java Wed Dec 30 13:39:06 2020
@@ -902,8 +902,8 @@ public class PDDocument implements Close
     /**
      * This will save the document to an output stream.
      *
-     * @param output The stream to write to. It will be closed when done. It is recommended to wrap
-     * it in a {@link java.io.BufferedOutputStream}, unless it is already buffered.
+     * @param output The stream to write to. It is recommended to wrap it in a {@link java.io.BufferedOutputStream},
+     * unless it is already buffered.
      *
      * @throws IOException if the output could not be written
      */
@@ -921,7 +921,11 @@ public class PDDocument implements Close
      */
     public void save(File file, CompressParameters compressParameters) throws IOException
     {
-        save(new BufferedOutputStream(new FileOutputStream(file)), compressParameters);
+        try (BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(
+                new FileOutputStream(file)))
+        {
+            save(bufferedOutputStream, compressParameters);
+        }
     }
 
     /**
@@ -940,8 +944,8 @@ public class PDDocument implements Close
     /**
      * Save the document using the given compression.
      *
-     * @param output The stream to write to. It will be closed when done. It is recommended to wrap it in a
-     * {@link java.io.BufferedOutputStream}, unless it is already buffered.
+     * @param output The stream to write to. It is recommended to wrap it in a {@link java.io.BufferedOutputStream},
+     * unless it is already buffered.
      * @param compressParameters The parameters for the document's compression.
      * @throws IOException if the output could not be written
      */
@@ -964,10 +968,8 @@ public class PDDocument implements Close
         fontsToSubset.clear();
 
         // save PDF
-        try (COSWriter writer = new COSWriter(output, compressParameters))
-        {
-            writer.write(this);
-        }
+        COSWriter writer = new COSWriter(output, compressParameters);
+        writer.write(this);
     }
 
     /**
@@ -991,10 +993,8 @@ public class PDDocument implements Close
         {
             throw new IllegalStateException("document was not loaded from a file or a stream");
         }
-        try (COSWriter writer = new COSWriter(output, pdfSource))
-        {
-            writer.write(this, signInterface);
-        }
+        COSWriter writer = new COSWriter(output, pdfSource);
+        writer.write(this, signInterface);
     }
 
     /**
@@ -1024,11 +1024,8 @@ public class PDDocument implements Close
         {
             throw new IllegalStateException("document was not loaded from a file or a stream");
         }
-        
-        try (COSWriter writer = new COSWriter(output, pdfSource, objectsToWrite))
-        {
-            writer.write(this, signInterface);
-        }
+        COSWriter writer = new COSWriter(output, pdfSource, objectsToWrite);
+        writer.write(this, signInterface);
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDocument.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDocument.java?rev=1884941&r1=1884940&r2=1884941&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDocument.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFDocument.java Wed Dec 30 13:39:06 2020
@@ -182,10 +182,8 @@ public class FDFDocument implements Clos
      */
     public void save(OutputStream output) throws IOException
     {
-        try (COSWriter writer = new COSWriter(output))
-        {
-            writer.write(this);
-        }
+        COSWriter writer = new COSWriter(output);
+        writer.write(this);
     }
 
     /**

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/SigningSupport.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/SigningSupport.java?rev=1884941&r1=1884940&r2=1884941&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/SigningSupport.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/SigningSupport.java Wed Dec 30 13:39:06 2020
@@ -51,16 +51,6 @@ public class SigningSupport implements E
     @Override
     public void close() throws IOException
     {
-        if (cosWriter != null)
-        {
-            try
-            {
-                cosWriter.close();
-            }
-            finally
-            {
-                cosWriter = null;
-            }
-        }
+        cosWriter = null;
     }
 }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDFTemplateCreator.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDFTemplateCreator.java?rev=1884941&r1=1884940&r2=1884941&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDFTemplateCreator.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDFTemplateCreator.java Wed Dec 30 13:39:06 2020
@@ -155,11 +155,11 @@ public class PDFTemplateCreator
 
     private InputStream getVisualSignatureAsStream(COSDocument visualSignature) throws IOException
     {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        try (COSWriter writer = new COSWriter(baos))
+        try (ByteArrayOutputStream baos = new ByteArrayOutputStream())
         {
+            COSWriter writer = new COSWriter(baos);
             writer.write(visualSignature);
+            return new ByteArrayInputStream(baos.toByteArray());
         }
-        return new ByteArrayInputStream(baos.toByteArray());
     }   
 }