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