X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2Fwot%2FIdentityManager.java;h=568a63735b11b689513600c758e8fee7ddf68774;hb=775d4caf9a15367785edd31d9cc411d67bdfb5ac;hp=6152c4bb40c4c00884289023d792c187d494e703;hpb=e8b0e80a1fda90e908b26d4d138092239fab1ed5;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManager.java b/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManager.java index 6152c4b..568a637 100644 --- a/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManager.java +++ b/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManager.java @@ -65,6 +65,9 @@ public class IdentityManager extends AbstractService { /* synchronize access on syncObject. */ private final Map currentOwnIdentities = new HashMap(); + /** The last time all identities were loaded. */ + private volatile long identitiesLastLoaded; + /** * Creates a new identity manager. * @@ -109,6 +112,16 @@ public class IdentityManager extends AbstractService { // /** + * Returns the last time all identities were loaded. + * + * @return The last time all identities were loaded (in milliseconds since + * Jan 1, 1970 UTC) + */ + public long getIdentitiesLastLoaded() { + return identitiesLastLoaded; + } + + /** * Returns whether the Web of Trust plugin could be reached during the last * try. * @@ -173,19 +186,23 @@ public class IdentityManager extends AbstractService { /* load trusted identities. */ for (OwnIdentity ownIdentity : ownIdentities) { + currentOwnIdentities.put(ownIdentity.getId(), ownIdentity); + Map identities = new HashMap(); + currentIdentities.put(ownIdentity, identities); + + /* if the context doesn’t match, skip getting trusted identities. */ if ((context != null) && !ownIdentity.hasContext(context)) { continue; } - currentOwnIdentities.put(ownIdentity.getId(), ownIdentity); + /* load trusted identities. */ Set trustedIdentities = webOfTrustConnector.loadTrustedIdentities(ownIdentity, context); - Map identities = new HashMap(); - currentIdentities.put(ownIdentity, identities); for (Identity identity : trustedIdentities) { identities.put(identity.getId(), identity); } } identitiesLoaded = true; + identitiesLastLoaded = System.currentTimeMillis(); } catch (WebOfTrustException wote1) { logger.log(Level.WARNING, "WoT has disappeared!", wote1); }