Author: toad
Date: 2007-09-08 17:03:03 +0000 (Sat, 08 Sep 2007)
New Revision: 15056

Modified:
   trunk/freenet/src/freenet/support/io/FileUtil.java
Log:
Fix FileUtil.writeTo -> fix loading plugins via <plugin name># when the default 
temp dir and the data are on different drives or otherwise cannot be renamed.
Looks to have been a problem for a while.

Modified: trunk/freenet/src/freenet/support/io/FileUtil.java
===================================================================
--- trunk/freenet/src/freenet/support/io/FileUtil.java  2007-09-08 16:58:27 UTC 
(rev 15055)
+++ trunk/freenet/src/freenet/support/io/FileUtil.java  2007-09-08 17:03:03 UTC 
(rev 15056)
@@ -15,6 +15,7 @@
 import java.io.InputStreamReader;

 import freenet.client.DefaultMIMETypes;
+import freenet.support.Logger;

 final public class FileUtil {

@@ -107,7 +108,9 @@
        public static boolean writeTo(InputStream input, File target) throws 
FileNotFoundException, IOException {
                DataInputStream dis = null;
                FileOutputStream fos = null;
-               File file = File.createTempFile("temp", ".tmp");
+               File file = File.createTempFile("temp", ".tmp", 
target.getParentFile());
+               if(Logger.shouldLog(Logger.MINOR, FileUtil.class))
+                       Logger.minor(FileUtil.class, "Writing to "+file+" to be 
renamed to "+target);

                try {
                        dis = new DataInputStream(input);
@@ -125,7 +128,12 @@
                        if(fos != null) fos.close();
                }

-               return file.renameTo(target);
+               if(file.renameTo(target))
+                       return true;
+               else {
+                       file.delete();
+                       return false;
+               }
        }

        public static String sanitize(String s) {


Reply via email to