Author: fanningpj
Date: Tue Dec 28 12:36:51 2021
New Revision: 1896474

URL: http://svn.apache.org/viewvc?rev=1896474&view=rev
Log:
[bug-65772] stop using deleteOnExit in DefaultTempFileCreationStrategy

Modified:
    
poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BigGridDemo.java
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/GZIPSheetDataWriter.java
    
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/ChunkedCipherOutputStream.java
    
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java
    
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java

Modified: 
poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BigGridDemo.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BigGridDemo.java?rev=1896474&r1=1896473&r2=1896474&view=diff
==============================================================================
--- 
poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BigGridDemo.java
 (original)
+++ 
poi/trunk/poi-examples/src/main/java/org/apache/poi/examples/xssf/usermodel/BigGridDemo.java
 Tue Dec 28 12:36:51 2021
@@ -84,6 +84,7 @@ public final class BigGridDemo {
         // Step 1. Create a template file. Setup sheets and workbook-level 
objects such as
         // cell styles, number formats, etc.
 
+        File tmp = null;
         try (XSSFWorkbook wb = new XSSFWorkbook()) {
             XSSFSheet sheet = wb.createSheet("Big Grid");
 
@@ -97,7 +98,7 @@ public final class BigGridDemo {
             }
 
             //Step 2. Generate XML file.
-            File tmp = File.createTempFile("sheet", ".xml");
+            tmp = File.createTempFile("sheet", ".xml");
             try (
                     FileOutputStream stream = new FileOutputStream(tmp);
                     Writer fw = new OutputStreamWriter(stream, XML_ENCODING)
@@ -109,6 +110,8 @@ public final class BigGridDemo {
             try (FileOutputStream out = new FileOutputStream("big-grid.xlsx")) 
{
                 substitute(new File("template.xlsx"), tmp, 
sheetRef.substring(1), out);
             }
+        } finally {
+            if (tmp != null) tmp.delete();
         }
     }
 

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java?rev=1896474&r1=1896473&r2=1896474&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java
 Tue Dec 28 12:36:51 2021
@@ -111,8 +111,15 @@ public final class AesZipFileZipEntrySou
             RandomSingleton.getInstance().nextBytes(ivBytes);
             RandomSingleton.getInstance().nextBytes(keyBytes);
             final File tmpFile = TempFile.createTempFile("protectedXlsx", 
".zip");
-            copyToFile(is, tmpFile, keyBytes, ivBytes);
-            return fileToSource(tmpFile, keyBytes, ivBytes);
+            try {
+                copyToFile(is, tmpFile, keyBytes, ivBytes);
+                return fileToSource(tmpFile, keyBytes, ivBytes);
+            } catch (IOException|RuntimeException e) {
+                if (!tmpFile.delete()) {
+                    LOG.atInfo().log("Temp file was not deleted, may already 
have been deleted by another method.");
+                }
+                throw e;
+            }
         } finally {
             IOUtils.closeQuietly(is);
         }

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/GZIPSheetDataWriter.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/GZIPSheetDataWriter.java?rev=1896474&r1=1896473&r2=1896474&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/GZIPSheetDataWriter.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/GZIPSheetDataWriter.java
 Tue Dec 28 12:36:51 2021
@@ -28,6 +28,7 @@ import java.io.OutputStream;
 import java.util.zip.GZIPInputStream;
 import java.util.zip.GZIPOutputStream;
 
+import org.apache.poi.util.Removal;
 import org.apache.poi.util.TempFile;
 import org.apache.poi.xssf.model.SharedStringsTable;
 
@@ -49,8 +50,10 @@ public class GZIPSheetDataWriter extends
 
     /**
      * @return temp file to write sheet data
+     * @deprecated no need for this be public, will be made private or 
protected in an upcoming release
      */
     @Override
+    @Removal(version = "6.0.0")
     public File createTempFile() throws IOException {
         return TempFile.createTempFile("poi-sxssf-sheet-xml", ".gz");
     }

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/ChunkedCipherOutputStream.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/ChunkedCipherOutputStream.java?rev=1896474&r1=1896473&r2=1896474&view=diff
==============================================================================
--- 
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/ChunkedCipherOutputStream.java
 (original)
+++ 
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/ChunkedCipherOutputStream.java
 Tue Dec 28 12:36:51 2021
@@ -267,7 +267,9 @@ public abstract class ChunkedCipherOutpu
             throw new IOException(e);
         } finally {
             if (fileOut != null) {
-                fileOut.delete();
+                if (!fileOut.delete()) {
+                    //ignore
+                }
             }
         }
     }

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java?rev=1896474&r1=1896473&r2=1896474&view=diff
==============================================================================
--- 
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java
 (original)
+++ 
poi/trunk/poi/src/main/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java
 Tue Dec 28 12:36:51 2021
@@ -131,9 +131,10 @@ public class StandardEncryptor extends E
         protected long countBytes;
         protected final File fileOut;
         protected final DirectoryNode dir;
+        protected final boolean deleteFile;
 
         @SuppressWarnings({"resource", "squid:S2095"})
-        private StandardCipherOutputStream(DirectoryNode dir, File fileOut) 
throws IOException {
+        private StandardCipherOutputStream(DirectoryNode dir, File fileOut, 
boolean deleteFile) throws IOException {
             // although not documented, we need the same padding as with agile 
encryption
             // and instead of calculating the missing bytes for the block size 
ourselves
             // we leave it up to the CipherOutputStream, which generates/saves 
them on close()
@@ -147,12 +148,13 @@ public class StandardEncryptor extends E
             super(
                 new CipherOutputStream(new FileOutputStream(fileOut), 
getCipher(getSecretKey(), "PKCS5Padding"))
             );
+            this.deleteFile = deleteFile;
             this.fileOut = fileOut;
             this.dir = dir;
         }
 
         protected StandardCipherOutputStream(DirectoryNode dir) throws 
IOException {
-            this(dir, TempFile.createTempFile("encrypted_package", "crypt"));
+            this(dir, TempFile.createTempFile("encrypted_package", "crypt"), 
true);
         }
 
         @Override
@@ -172,6 +174,11 @@ public class StandardEncryptor extends E
             // the CipherOutputStream adds the padding bytes on close()
             super.close();
             writeToPOIFS();
+            if (deleteFile && fileOut != null) {
+                if (!fileOut.delete()) {
+                    //ignore
+                }
+            }
         }
 
         void writeToPOIFS() throws IOException {

Modified: 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java?rev=1896474&r1=1896473&r2=1896474&view=diff
==============================================================================
--- 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java
 (original)
+++ 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java
 Tue Dec 28 12:36:51 2021
@@ -618,7 +618,12 @@ public final class ExcelFileFormatDocFun
 //      }
 
         File tempEFFDocFile = downloadSourceFile();
-        processFile(tempEFFDocFile, outFile);
-        tempEFFDocFile.delete();
+        try {
+            processFile(tempEFFDocFile, outFile);
+        } finally {
+            if (!tempEFFDocFile.delete()) {
+                //ignore
+            }
+        }
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to