diff --git a/source/de/anomic/yacy/yacyVersion.java b/source/de/anomic/yacy/yacyVersion.java index 97057355d..008c082a9 100644 --- a/source/de/anomic/yacy/yacyVersion.java +++ b/source/de/anomic/yacy/yacyVersion.java @@ -37,6 +37,7 @@ import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.SortedSet; import java.util.TreeSet; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -510,7 +511,7 @@ public final class yacyVersion implements Comparator, Comparable downloadedreleases = new TreeSet(); + SortedSet downloadedreleases = new TreeSet(); for (int j = 0; j < downloaded.length; j++) { try { release = new yacyVersion(downloaded[j]); @@ -533,22 +534,25 @@ public final class yacyVersion implements Comparator, Comparable iter = downloadedreleases.iterator(); - while (iter.hasNext()) { - release = iter.next(); - - if(keepMain && release.mainRelease) { - // we found the latest main release - keepMain = false; - continue; + + String lastMain = null; + String filename; + for (final yacyVersion aRelease : downloadedreleases) { + filename = aRelease.name; + if (keepMain && aRelease.mainRelease) { + // keep this one, delete last remembered main release file + if (lastMain != null) { + filename = lastMain; + } + lastMain = aRelease.name; } - + // check file age - File downloadedFile = new File(filesPath + File.separator + release.name); - if(now - downloadedFile.lastModified() > deleteAfterMillis) { + File downloadedFile = new File(filesPath + File.separator + filename); + if (now - downloadedFile.lastModified() > deleteAfterMillis) { // delete file - if(!downloadedFile.delete()) { - serverLog.logWarning("STARTUP", "cannot delete old release "+ downloadedFile.getAbsolutePath()); + if (!downloadedFile.delete()) { + serverLog.logWarning("STARTUP", "cannot delete old release " + downloadedFile.getAbsolutePath()); } } }