public void run() { Logger.debug(this, "Main loop running..."); try { mConnectedToWoT = connectToWoT(); if (mConnectedToWoT) { try { fetchOwnIdentities(); // Fetch the own identities first to prevent own-identities from // being imported as normal identity... fetchIdentities(); garbageCollectIdentities(); } catch (Exception e) { Logger.error(this, "Fetching identities failed.", e); } } } finally { final long sleepTime = mConnectedToWoT ? (THREAD_PERIOD / 2 + mRandom.nextInt(THREAD_PERIOD)) : WOT_RECONNECT_DELAY; Logger.debug(this, "Sleeping for " + (sleepTime / (60 * 1000)) + " minutes."); mTicker.queueTimedJob( this, "Freetalk " + this.getClass().getSimpleName(), sleepTime, false, true); } Logger.debug(this, "Main loop finished."); }