Author: nextgens
Date: 2008-08-14 21:27:00 +0000 (Thu, 14 Aug 2008)
New Revision: 21875

Modified:
   trunk/freenet/src/freenet/pluginmanager/PluginManager.java
Log:
attempt to improve PluginManager a bit... That class is a nightmare!

Modified: trunk/freenet/src/freenet/pluginmanager/PluginManager.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginManager.java  2008-08-14 
21:22:53 UTC (rev 21874)
+++ trunk/freenet/src/freenet/pluginmanager/PluginManager.java  2008-08-14 
21:27:00 UTC (rev 21875)
@@ -15,7 +15,6 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 import java.util.Vector;
@@ -116,7 +115,7 @@
 //             installDir = pmconfig.getString("installdir");

                // Start plugins in the config
-               pmconfig.register("loadplugin", null, 9, true, false, 
"PluginManager.loadedOnStartup", "PluginManager.loadedOnStartupLong",
+               pmconfig.register("loadplugin", null, 0, true, false, 
"PluginManager.loadedOnStartup", "PluginManager.loadedOnStartupLong",
                        new StringArrCallback() {

                                public String[] get() {
@@ -129,6 +128,7 @@
                                        throw new 
InvalidConfigValueException(L10n.getString("PluginManager.cannotSetOnceLoaded"));
                                }

+                       @Override
                                public boolean isReadOnly() {
                                        return true;
                                }
@@ -143,21 +143,15 @@
        }

        private String[] getConfigLoadString() {
-               try {
-                       Iterator it = getPlugins().iterator();
-
-                       Vector v = new Vector();
-
-                       while(it.hasNext()) {
-                               PluginInfoWrapper pluginInfoWrapper = 
(PluginInfoWrapper) it.next();
-                               v.add(pluginInfoWrapper.getFilename());
+               Vector<String> v = new Vector<String>();
+               
+               synchronized(pluginWrappers) {
+                       for(PluginInfoWrapper pi : pluginWrappers) {
+                               v.add(pi.getFilename());
                        }
-
-                       return (String[]) v.toArray(new String[v.size()]);
-               } catch(NullPointerException e) {
-                       Logger.error(this, "error while loading plugins: 
disabling them:" + e);
-                       return new String[0];
                }
+               
+               return v.toArray(new String[v.size()]);
        }

        /**


Reply via email to