X-Git-Url: https://git.pterodactylus.net/?p=WoTNS.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fwotns%2Ffreenet%2Fwot%2FIdentityManager.java;h=1411ab3aa9564dda52dc0888aaad542338ed9f21;hp=e9107fefa196d1a67d72ff6cc5dc35a9e044aa06;hb=5b4d802d199206dac860f4691583f75ffe820ade;hpb=622c4a4d3ebed447d5708a41cf3e1e82e18fa29b diff --git a/src/main/java/net/pterodactylus/wotns/freenet/wot/IdentityManager.java b/src/main/java/net/pterodactylus/wotns/freenet/wot/IdentityManager.java index e9107fe..1411ab3 100644 --- a/src/main/java/net/pterodactylus/wotns/freenet/wot/IdentityManager.java +++ b/src/main/java/net/pterodactylus/wotns/freenet/wot/IdentityManager.java @@ -28,6 +28,7 @@ import java.util.logging.Logger; import net.pterodactylus.util.collection.SetBuilder; import net.pterodactylus.util.logging.Logging; +import net.pterodactylus.util.object.Default; import net.pterodactylus.util.service.AbstractService; import net.pterodactylus.wotns.freenet.plugin.PluginException; @@ -177,7 +178,7 @@ public class IdentityManager extends AbstractService { identities.add(ownIdentity); } synchronized (syncObject) { - identities.addAll(currentTrustedIdentities.get(ownIdentity)); + identities.addAll(Default.forNull(currentTrustedIdentities.get(ownIdentity), Collections. emptySet())); } return identities.get(); } @@ -216,6 +217,17 @@ public class IdentityManager extends AbstractService { for (Identity identity : trustedIdentities) { identities.put(identity.getId(), identity); } + + /* add own identities, too, as long as the WoT doesn’t do that. */ + for (OwnIdentity additionalOwnIdentity : ownIdentities) { + if (additionalOwnIdentity == ownIdentity) { + continue; + } + if ((context != null) && !additionalOwnIdentity.hasContext(context)) { + continue; + } + identities.put(additionalOwnIdentity.getId(), additionalOwnIdentity); + } } identitiesLoaded = true; } catch (WebOfTrustException wote1) {