You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2013/10/10 18:20:08 UTC
svn commit: r1531040 - /poi/trunk/src/java/org/apache/poi/util/TempFile.java
Author: nick
Date: Thu Oct 10 16:20:07 2013
New Revision: 1531040
URL: http://svn.apache.org/r1531040
Log:
Fix #55647 - When creating a temp file, ensure the name isn't already taken
Modified:
poi/trunk/src/java/org/apache/poi/util/TempFile.java
Modified: poi/trunk/src/java/org/apache/poi/util/TempFile.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/TempFile.java?rev=1531040&r1=1531039&r2=1531040&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/util/TempFile.java (original)
+++ poi/trunk/src/java/org/apache/poi/util/TempFile.java Thu Oct 10 16:20:07 2013
@@ -37,6 +37,7 @@ public final class TempFile {
* Don't forget to close all files or it might not be possible to delete them.
*/
public static File createTempFile(String prefix, String suffix) {
+ // Identify and create our temp dir, if needed
if (dir == null)
{
dir = new File(System.getProperty("java.io.tmpdir"), "poifiles");
@@ -45,9 +46,19 @@ public final class TempFile {
dir.deleteOnExit();
}
+ // Generate a unique new filename
File newFile = new File(dir, prefix + rnd.nextInt() + suffix);
+ if (newFile.exists())
+ {
+ // That name is already taken, try another
+ newFile = createTempFile(prefix, suffix);
+ }
+
+ // Set the delete on exit flag, unless explicitly disabled
if (System.getProperty("poi.keep.tmp.files") == null)
newFile.deleteOnExit();
+
+ // All done
return newFile;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org