Author: tilman
Date: Fri Nov 14 13:12:01 2025
New Revision: 1929734
Log:
PDFBOX-6100: replace File.createTempFile to Files.createTempFile to reduce the
read permission to local user, as suggested by Simon Steiner
Modified:
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/RandomAccessReadBufferDataStreamTest.java
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/ScratchFile.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/rendering/TestPDFToImage.java
Modified:
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
Fri Nov 14 13:11:54 2025 (r1929733)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
Fri Nov 14 13:12:01 2025 (r1929734)
@@ -295,7 +295,7 @@ public class Tree extends JTree
{
try
{
- File temp = File.createTempFile("pdfbox", "." + extension);
+ File temp = Files.createTempFile("pdfbox", "." +
extension).toFile();
temp.deleteOnExit();
try (InputStream is = cosStream.createInputStream())
Modified:
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/RandomAccessReadBufferDataStreamTest.java
==============================================================================
---
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/RandomAccessReadBufferDataStreamTest.java
Fri Nov 14 13:11:54 2025 (r1929733)
+++
pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/ttf/RandomAccessReadBufferDataStreamTest.java
Fri Nov 14 13:12:01 2025 (r1929734)
@@ -23,11 +23,11 @@ import static org.junit.jupiter.api.Asse
import java.io.BufferedOutputStream;
import java.io.EOFException;
-import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import org.apache.pdfbox.io.RandomAccessRead;
import org.apache.pdfbox.io.RandomAccessReadBuffer;
@@ -123,9 +123,9 @@ class RandomAccessReadBufferDataStreamTe
@Test
void ensureReadFinishes() throws IOException
{
- final File file = File.createTempFile("apache-pdfbox", ".dat");
+ final Path path = Files.createTempFile("apache-pdfbox", ".dat");
- try (OutputStream outputStream = new BufferedOutputStream(new
FileOutputStream(file)))
+ try (OutputStream outputStream = new
BufferedOutputStream(Files.newOutputStream(path)))
{
final String content = "1234567890";
outputStream.write(content.getBytes(StandardCharsets.UTF_8));
@@ -133,7 +133,7 @@ class RandomAccessReadBufferDataStreamTe
}
final byte[] readBuffer = new byte[2];
- RandomAccessRead randomAccessRead = new
RandomAccessReadBufferedFile(file);
+ RandomAccessRead randomAccessRead = new
RandomAccessReadBufferedFile(path.toFile());
try (RandomAccessReadDataStream randomAccessReadDataStream = new
RandomAccessReadDataStream(
randomAccessRead))
{
@@ -145,7 +145,7 @@ class RandomAccessReadBufferDataStreamTe
}
assertEquals(10, totalAmountRead);
}
- file.delete();
+ Files.delete(path);
}
/**
@@ -156,15 +156,15 @@ class RandomAccessReadBufferDataStreamTe
@Test
void testReadBuffer() throws IOException
{
- final File file = File.createTempFile("apache-pdfbox", ".dat");
+ final Path path = Files.createTempFile("apache-pdfbox", ".dat");
- try (OutputStream outputStream = new BufferedOutputStream(new
FileOutputStream(file)))
+ try (OutputStream outputStream = new
BufferedOutputStream(Files.newOutputStream(path)))
{
final String content = "012345678A012345678B012345678C012345678D";
outputStream.write(content.getBytes(StandardCharsets.UTF_8));
outputStream.flush();
}
- RandomAccessRead randomAccessRead = new
RandomAccessReadBufferedFile(file);
+ RandomAccessRead randomAccessRead = new
RandomAccessReadBufferedFile(path.toFile());
final byte[] readBuffer = new byte[40];
try (RandomAccessReadDataStream randomAccessReadDataStream = new
RandomAccessReadDataStream(
@@ -238,7 +238,7 @@ class RandomAccessReadBufferDataStreamTe
assertEquals(count, bytesRead);
assertEquals("012345678B012345678C012", new String(readBuffer, 0,
count));
}
- file.delete();
+ Files.delete(path);
}
}
Modified: pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/ScratchFile.java
==============================================================================
--- pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/ScratchFile.java Fri Nov
14 13:11:54 2025 (r1929733)
+++ pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/ScratchFile.java Fri Nov
14 13:12:01 2025 (r1929734)
@@ -19,6 +19,7 @@ package org.apache.pdfbox.io;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.nio.file.Files;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.List;
@@ -253,7 +254,7 @@ public class ScratchFile implements Rand
// create scratch file is needed
if ( raf == null )
{
- file = File.createTempFile("PDFBox", ".tmp",
scratchFileDirectory);
+ file = Files.createTempFile(scratchFileDirectory.toPath(),
"PDFBox", ".tmp").toFile();
try
{
raf = new java.io.RandomAccessFile(file, "rw");
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/rendering/TestPDFToImage.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/rendering/TestPDFToImage.java
Fri Nov 14 13:11:54 2025 (r1929733)
+++
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/rendering/TestPDFToImage.java
Fri Nov 14 13:12:01 2025 (r1929734)
@@ -24,6 +24,7 @@ import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
+import java.nio.file.Files;
import javax.imageio.ImageIO;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
@@ -207,7 +208,7 @@ public class TestPDFToImage
// test to see whether file is destroyed in pdfbox
new FileOutputStream(new File(outDir, file.getName() +
".saveerror")).close();
- File tmpFile = File.createTempFile("pdfbox", ".pdf");
+ File tmpFile = Files.createTempFile("pdfbox", ".pdf").toFile();
document.setAllSecurityToBeRemoved(true);
document.save(tmpFile);
new File(outDir, file.getName() + ".saveerror").delete();