Author: tilman
Date: Fri Nov 14 13:11:54 2025
New Revision: 1929733

Log:
PDFBOX-6100: replace File.createTempFile to Files.createTempFile to reduce the 
read permission to local user, as suggested by Simon Steiner

Modified:
   
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
   
pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/RandomAccessReadBufferDataStreamTest.java
   pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/ScratchFile.java
   
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/rendering/TestPDFToImage.java

Modified: 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
==============================================================================
--- 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
  Fri Nov 14 12:45:03 2025        (r1929732)
+++ 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
  Fri Nov 14 13:11:54 2025        (r1929733)
@@ -294,7 +294,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/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/RandomAccessReadBufferDataStreamTest.java
==============================================================================
--- 
pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/RandomAccessReadBufferDataStreamTest.java
  Fri Nov 14 12:45:03 2025        (r1929732)
+++ 
pdfbox/branches/3.0/fontbox/src/test/java/org/apache/fontbox/ttf/RandomAccessReadBufferDataStreamTest.java
  Fri Nov 14 13:11:54 2025        (r1929733)
@@ -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/branches/3.0/io/src/main/java/org/apache/pdfbox/io/ScratchFile.java
==============================================================================
--- pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/ScratchFile.java  
Fri Nov 14 12:45:03 2025        (r1929732)
+++ pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/ScratchFile.java  
Fri Nov 14 13:11:54 2025        (r1929733)
@@ -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;
@@ -249,7 +250,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/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/rendering/TestPDFToImage.java
==============================================================================
--- 
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/rendering/TestPDFToImage.java
    Fri Nov 14 12:45:03 2025        (r1929732)
+++ 
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/rendering/TestPDFToImage.java
    Fri Nov 14 13:11:54 2025        (r1929733)
@@ -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.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -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();

Reply via email to