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/06/06 13:43:00 UTC
svn commit: r1878544 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: cos/COSDocument.java
cos/COSStream.java pdfparser/PDFParser.java pdmodel/PDDocument.java
Author: lehmi
Date: Sat Jun 6 13:43:00 2020
New Revision: 1878544
URL: http://svn.apache.org/viewvc?rev=1878544&view=rev
Log:
PDFBOX-4836: limit the ScratchFile default creation to COS-layer
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSStream.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java?rev=1878544&r1=1878543&r2=1878544&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java Sat Jun 6 13:43:00 2020
@@ -29,6 +29,7 @@ import java.util.stream.Collectors;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.pdfbox.io.IOUtils;
+import org.apache.pdfbox.io.MemoryUsageSetting;
import org.apache.pdfbox.io.ScratchFile;
/**
@@ -98,7 +99,7 @@ public class COSDocument extends COSBase
*/
public COSDocument()
{
- this(ScratchFile.getMainMemoryOnlyInstance(), null);
+ this(MemoryUsageSetting.setupMainMemoryOnly());
}
/**
@@ -112,15 +113,24 @@ public class COSDocument extends COSBase
}
/**
- * Constructor that will use the provide memory handler for storage of the
- * PDF streams.
+ * Constructor that will use the provide memory settings for storage of the PDF streams.
*
- * @param scratchFile memory handler for buffering of PDF streams
+ * @param memUsageSetting defines how memory is used for buffering PDF streams
*
*/
- public COSDocument(ScratchFile scratchFile)
+ public COSDocument(MemoryUsageSetting memUsageSetting)
{
- this(scratchFile, null);
+ try
+ {
+ scratchFile = new ScratchFile(memUsageSetting);
+ }
+ catch (IOException ioe)
+ {
+ LOG.warn("Error initializing scratch file: " + ioe.getMessage()
+ + ". Fall back to main memory usage only.", ioe);
+
+ scratchFile = ScratchFile.getMainMemoryOnlyInstance();
+ }
}
/**
@@ -132,7 +142,8 @@ public class COSDocument extends COSBase
*/
public COSDocument(ScratchFile scratchFile, ICOSParser parser)
{
- this.scratchFile = scratchFile;
+ this.scratchFile = scratchFile != null ? scratchFile
+ : ScratchFile.getMainMemoryOnlyInstance();
this.parser = parser;
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSStream.java?rev=1878544&r1=1878543&r2=1878544&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSStream.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSStream.java Sat Jun 6 13:43:00 2020
@@ -68,7 +68,7 @@ public class COSStream extends COSDictio
*/
public COSStream()
{
- this(ScratchFile.getMainMemoryOnlyInstance());
+ this(null);
}
/**
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java?rev=1878544&r1=1878543&r2=1878544&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java Sat Jun 6 13:43:00 2020
@@ -45,7 +45,7 @@ public class PDFParser extends COSParser
*/
public PDFParser(RandomAccessRead source) throws IOException
{
- this(source, "", ScratchFile.getMainMemoryOnlyInstance());
+ this(source, "", null);
}
/**
@@ -71,7 +71,7 @@ public class PDFParser extends COSParser
*/
public PDFParser(RandomAccessRead source, String decryptionPassword) throws IOException
{
- this(source, decryptionPassword, ScratchFile.getMainMemoryOnlyInstance());
+ this(source, decryptionPassword, null);
}
/**
@@ -103,7 +103,7 @@ public class PDFParser extends COSParser
public PDFParser(RandomAccessRead source, String decryptionPassword, InputStream keyStore,
String alias) throws IOException
{
- this(source, decryptionPassword, keyStore, alias, ScratchFile.getMainMemoryOnlyInstance());
+ this(source, decryptionPassword, keyStore, alias, null);
}
/**
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=1878544&r1=1878543&r2=1878544&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 Sat Jun 6 13:43:00 2020
@@ -48,7 +48,6 @@ import org.apache.pdfbox.cos.COSUpdateIn
import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.io.MemoryUsageSetting;
import org.apache.pdfbox.io.RandomAccessRead;
-import org.apache.pdfbox.io.ScratchFile;
import org.apache.pdfbox.pdfwriter.COSWriter;
import org.apache.pdfbox.pdmodel.common.COSArrayList;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
@@ -167,20 +166,7 @@ public class PDDocument implements Close
*/
public PDDocument(MemoryUsageSetting memUsageSetting)
{
- ScratchFile scratchFile = null;
- try
- {
- scratchFile = new ScratchFile(memUsageSetting);
- }
- catch (IOException ioe)
- {
- LOG.warn("Error initializing scratch file: " + ioe.getMessage() +
- ". Fall back to main memory usage only.", ioe);
-
- scratchFile = ScratchFile.getMainMemoryOnlyInstance();
- }
-
- document = new COSDocument(scratchFile);
+ document = new COSDocument(memUsageSetting);
pdfSource = null;
// First we need a trailer