Author: xor
Date: 2008-11-08 01:54:23 +0000 (Sat, 08 Nov 2008)
New Revision: 23406

Modified:
   trunk/plugins/Freetalk/Freetalk.java
Log:
Make it wait for WoT until it is loaded.

Modified: trunk/plugins/Freetalk/Freetalk.java
===================================================================
--- trunk/plugins/Freetalk/Freetalk.java        2008-11-08 01:51:12 UTC (rev 
23405)
+++ trunk/plugins/Freetalk/Freetalk.java        2008-11-08 01:54:23 UTC (rev 
23406)
@@ -26,6 +26,7 @@
 import freenet.clients.http.PageMaker.THEME;
 import freenet.keys.FreenetURI;
 import freenet.l10n.L10n.LANGUAGE;
+import freenet.pluginmanager.PluginNotFoundException;
 import freenet.pluginmanager.DownloadPluginHTTPException;
 import freenet.pluginmanager.FredPlugin;
 import freenet.pluginmanager.FredPluginFCP;
@@ -36,6 +37,7 @@
 import freenet.pluginmanager.FredPluginVersioned;
 import freenet.pluginmanager.NotFoundPluginHTTPException;
 import freenet.pluginmanager.PluginHTTPException;
+import freenet.pluginmanager.PluginNotFoundException;
 import freenet.pluginmanager.PluginReplySender;
 import freenet.pluginmanager.PluginRespirator;
 import freenet.pluginmanager.RedirectPluginHTTPException;
@@ -115,8 +117,21 @@
                tbf = pr.getNode().clientCore.tempBucketFactory;

                Logger.debug(this, "Creating identity manager...");
-               mIdentityManager = new FTIdentityManagerWoT(db, 
pr.getNode().executor);
+               int tries = 0;
+               do {
+                       try {
+                               ++tries;
+                               mIdentityManager = new FTIdentityManagerWoT(db, 
pr);
+                       }

+                       catch(PluginNotFoundException e) {
+                               if(tries == 10)
+                                       throw new RuntimeException(e);
+                               Logger.error(this, "WoT plugin not found! 
Retrying ...");
+                               try { Thread.sleep(10 * 1000); } 
catch(InterruptedException ex) {}
+                       }
+               } while(mIdentityManager == null);
+               
                Logger.debug(this, "Creating message manager...");
                mMessageManager = new FTMessageManagerWoT(db, 
pr.getNode().executor, mIdentityManager);



Reply via email to