Author: nextgens
Date: 2007-11-10 22:15:56 +0000 (Sat, 10 Nov 2007)
New Revision: 15746

Modified:
   trunk/freenet/src/freenet/pluginmanager/PluginManager.java
Log:
Fix a serious bug in the plugin-loading code, preventing some plugins to be 
downloaded

Modified: trunk/freenet/src/freenet/pluginmanager/PluginManager.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginManager.java  2007-11-10 
20:15:32 UTC (rev 15745)
+++ trunk/freenet/src/freenet/pluginmanager/PluginManager.java  2007-11-10 
22:15:56 UTC (rev 15746)
@@ -426,11 +426,11 @@
                /* check if name is a local file. */
                File pluginFile = new File(name);
                if (pluginFile.exists() && pluginFile.isFile()) {
-                       try {
-                               pluginUrl = pluginFile.toURI().toURL();
-                       } catch (MalformedURLException e) {
-                               throw new PluginNotFoundException("can not 
convert local path");
-                       }
+                        try {
+                            pluginUrl = pluginFile.toURI().toURL();
+                        } catch (MalformedURLException e) {
+                            throw new PluginNotFoundException("can not convert 
local path");
+                        }
                } else {
                        /* check if name contains a URL. */
                        try {
@@ -463,7 +463,7 @@
                if (logMINOR) {
                        Logger.minor(this, "plugin file " + 
pluginFile.getAbsolutePath() + " exists: " + pluginFile.exists());
                }
-               if (!pluginFile.exists()) {
+               if (!pluginFile.exists() || pluginFile.length() == 0) {
                        File tempPluginFile = null;
                        OutputStream pluginOutputStream = null;
                        URLConnection urlConnection = null;
@@ -491,13 +491,7 @@
                                Closer.close(pluginOutputStream);
                                Closer.close(pluginInputStream);
                        }
-                       /* move temp jar to final jar. */
-                       if (pluginFile.exists()) {
-                               if (!pluginFile.delete()) {
-                                       Logger.error(this, "could not remove 
old plugin file");
-                                       throw new 
PluginNotFoundException("could not remove old plugin file");
-                               }
-                       }
+                        
                        if (!tempPluginFile.renameTo(pluginFile)) {
                                Logger.error(this, "could not rename temp file 
to plugin file");
                                throw new PluginNotFoundException("could not 
rename temp file to plugin file");


Reply via email to