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);