X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneDownloader.java;h=7022f5ea088be792fbf51c353846645b078fef45;hb=33f333b35a73d3d4a4e79f41e9dd7b342db87b1a;hp=2eb4c71e348218d157f0f7f580a791fc7aeca5b7;hpb=bdc36fce008474fbb910dd599ce64d88fbc60461;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java index 2eb4c71..7022f5e 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java @@ -93,9 +93,10 @@ public class SoneDownloader extends AbstractService { * The Sone to add */ public void addSone(Sone sone) { - if (sones.add(sone)) { - freenetInterface.registerUsk(sone, this); + if (!sones.add(sone)) { + freenetInterface.unregisterUsk(sone); } + freenetInterface.registerUsk(sone, this); } /** @@ -132,9 +133,6 @@ public class SoneDownloader extends AbstractService { * The URI to fetch the Sone from */ public void fetchSone(Sone sone, FreenetURI soneUri) { - if (core.getSoneStatus(sone) == SoneStatus.downloading) { - return; - } logger.log(Level.FINE, "Starting fetch for Sone “%s” from %s…", new Object[] { sone, soneUri }); FreenetURI requestUri = soneUri.setMetaString(new String[] { "sone.xml" }); core.setSoneStatus(sone, SoneStatus.downloading); @@ -147,6 +145,7 @@ public class SoneDownloader extends AbstractService { logger.log(Level.FINEST, "Got %d bytes back.", fetchResults.getRight().size()); Sone parsedSone = parseSone(sone, fetchResults.getRight(), fetchResults.getLeft()); if (parsedSone != null) { + addSone(parsedSone); core.updateSone(parsedSone); } } finally {