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());
}
}