Author: toad
Date: 2007-09-08 15:19:21 +0000 (Sat, 08 Sep 2007)
New Revision: 15039

Modified:
   trunk/freenet/src/freenet/pluginmanager/PluginHandler.java
   trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
Log:
More de-uglification: PluginStarter must know its PluginInfoWrapper.

Modified: trunk/freenet/src/freenet/pluginmanager/PluginHandler.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginHandler.java  2007-09-08 
15:11:37 UTC (rev 15038)
+++ trunk/freenet/src/freenet/pluginmanager/PluginHandler.java  2007-09-08 
15:19:21 UTC (rev 15039)
@@ -20,8 +20,9 @@
         * @param plug
         */
        public static PluginInfoWrapper startPlugin(PluginManager pm, String 
filename, FredPlugin plug, PluginRespirator pr) {
-               final PluginStarter ps = new PluginStarter(pr);
-               final PluginInfoWrapper pi = new PluginInfoWrapper(plug, ps, 
filename);
+               final PluginInfoWrapper pi = new PluginInfoWrapper(plug, 
filename);
+               final PluginStarter ps = new PluginStarter(pr, pi);
+               pi.setThread(ps);

                // This is an ugly trick... sorry ;o)
                // The thread still exists as an identifier, but is never 
started if the
@@ -45,9 +46,11 @@
                private Object plugin = null;
                private PluginRespirator pr;
                private PluginManager pm = null;
+               final PluginInfoWrapper pi;

-               public PluginStarter(PluginRespirator pr) {
+               public PluginStarter(PluginRespirator pr, PluginInfoWrapper pi) 
{
                        this.pr = pr;
+                       this.pi = pi;
                        setDaemon(true);
                }


Modified: trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java      
2007-09-08 15:11:37 UTC (rev 15038)
+++ trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java      
2007-09-08 15:19:21 UTC (rev 15039)
@@ -22,15 +22,13 @@
        private HashSet toadletLinks=new HashSet(); 
        //public String 

-       public PluginInfoWrapper(FredPlugin plug, Thread ps, String filename) {
+       public PluginInfoWrapper(FredPlugin plug, String filename) {
                if (fedPluginThread) return;
                className = plug.getClass().toString();
-               thread = ps;
                this.plug = plug;
                this.filename = filename;
-               threadName = 'p' + className.replaceAll("^class ", "") + '_' + 
ps.hashCode();
+               threadName = 'p' + className.replaceAll("^class ", "") + '_' + 
hashCode();
                start = System.currentTimeMillis();
-               ps.setName(threadName);
                fedPluginThread = true;
                isPproxyPlugin = (plug instanceof FredPluginHTTP);
                isThreadlessPlugin = (plug instanceof FredPluginThreadless);
@@ -38,6 +36,13 @@
                isPortForwardPlugin = (plug instanceof FredPluginPortForward);
        }

+       void setThread(Thread ps) {
+               if(thread != null)
+                       throw new IllegalStateException("Already set a thread");
+               thread = ps;
+               thread.setName(threadName);
+       }
+       
        public String toString() {
                return "ID: \"" +threadName + "\", Name: "+ className +", 
Started: " + (new Date(start)).toString();
        }


Reply via email to