X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=dc6516d8e61096d7213c6df48b363706e8caca52;hb=f0475af7553655310d1a5076603e3288168183f8;hp=e4814fea03c24d99f4896957830061674a4fdf11;hpb=bb29e8bdcfb1a9be26bb6bb40d73f019dccfebaf;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index e4814fe..dc6516d 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -436,10 +436,6 @@ public class Core implements IdentityListener { return null; } synchronized (localSones) { - if (localSones.containsKey(ownIdentity.getId())) { - logger.log(Level.FINE, "Tried to add known local Sone: %s", ownIdentity); - return localSones.get(ownIdentity.getId()); - } final Sone sone; try { sone = getLocalSone(ownIdentity.getId()).setIdentity(ownIdentity).setInsertUri(new FreenetURI(ownIdentity.getInsertUri())).setRequestUri(new FreenetURI(ownIdentity.getRequestUri())); @@ -454,15 +450,7 @@ public class Core implements IdentityListener { soneInserters.put(sone, soneInserter); soneInserter.start(); setSoneStatus(sone, SoneStatus.idle); - new Thread(new Runnable() { - - @Override - @SuppressWarnings("synthetic-access") - public void run() { - soneDownloader.fetchSone(sone); - } - - }, "Sone Downloader").start(); + loadSone(sone); return sone; } } @@ -497,14 +485,19 @@ public class Core implements IdentityListener { return null; } synchronized (remoteSones) { - if (remoteSones.containsKey(identity.getId())) { - logger.log(Level.FINE, "Identity already exists: %s", identity); - return remoteSones.get(identity.getId()); - } - Sone sone = new Sone(identity); + final Sone sone = getRemoteSone(identity.getId()).setIdentity(identity); sone.setRequestUri(getSoneUri(identity.getRequestUri(), identity.getProperty("Sone.LatestEdition"))); remoteSones.put(identity.getId(), sone); soneDownloader.addSone(sone); + new Thread(new Runnable() { + + @Override + @SuppressWarnings("synthetic-access") + public void run() { + soneDownloader.fetchSone(sone); + } + + }, "Sone Downloader").start(); setSoneStatus(sone, SoneStatus.idle); return sone; } @@ -571,7 +564,7 @@ public class Core implements IdentityListener { return; } localSones.remove(sone.getId()); - soneInserters.remove(sone.getId()).stop(); + soneInserters.remove(sone).stop(); } identityManager.removeContext((OwnIdentity) sone.getIdentity(), "Sone"); }