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]