+ if (!isSoneRescueMode()) {
+ soneDownloader.fetchSone(sone);
+ return;
+ }
+ logger.log(Level.INFO, "Trying to restore Sone from Freenet…");
+ coreListenerManager.fireRescuingSone(sone);
+ lockSone(sone);
+ long edition = sone.getLatestEdition();
+ while (!stopped && (edition >= 0) && isSoneRescueMode()) {
+ logger.log(Level.FINE, "Downloading edition " + edition + "…");
+ soneDownloader.fetchSone(sone, sone.getRequestUri().setKeyType("SSK").setDocName("Sone-" + edition));
+ --edition;
+ }
+ logger.log(Level.INFO, "Finished restoring Sone from Freenet, starting Inserter…");
+ coreListenerManager.fireRescuedSone(sone);
+ soneInserter.start();