From 2f777a8f0919b918d8f72b26c21a29423b2040e9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sun, 13 Nov 2011 12:56:37 +0100 Subject: [PATCH] Always return copies of own identities. --- .../pterodactylus/sone/freenet/wot/IdentityManager.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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 065aa47..69af0ca 100644 --- a/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManager.java +++ b/src/main/java/net/pterodactylus/sone/freenet/wot/IdentityManager.java @@ -26,6 +26,8 @@ import java.util.logging.Level; import java.util.logging.Logger; import net.pterodactylus.sone.freenet.plugin.PluginException; +import net.pterodactylus.util.collection.Mapper; +import net.pterodactylus.util.collection.Mappers; import net.pterodactylus.util.logging.Logging; import net.pterodactylus.util.service.AbstractService; @@ -140,7 +142,7 @@ public class IdentityManager extends AbstractService { Set allOwnIdentities = getAllOwnIdentities(); for (OwnIdentity ownIdentity : allOwnIdentities) { if (ownIdentity.getId().equals(id)) { - return ownIdentity; + return new DefaultOwnIdentity(webOfTrustConnector, ownIdentity); } } return null; @@ -159,7 +161,17 @@ public class IdentityManager extends AbstractService { newOwnIdentities.put(ownIdentity.getId(), ownIdentity); } checkOwnIdentities(newOwnIdentities); - return ownIdentities; + return Mappers.mappedSet(ownIdentities, new Mapper() { + + /** + * {@inheritDoc} + */ + @Override + @SuppressWarnings("synthetic-access") + public OwnIdentity map(OwnIdentity input) { + return new DefaultOwnIdentity(webOfTrustConnector, input); + } + }); } catch (WebOfTrustException wote1) { logger.log(Level.WARNING, "Could not load all own identities!", wote1); return Collections.emptySet(); -- 2.7.4