in agent/src/jetbrains/buildServer/swabra/SwabraPropertiesProcessor.java [205:246]
private void cleanupPropertiesAndSnapshots(final List<File> actualCheckoutDirs) {
try {
readPropertiesNoAwait(false);
final Set<String> savedDirs = myProperties.keySet();
final List<File> snapshots = getSnapshotFiles();
if (savedDirs.isEmpty() && snapshots.isEmpty()) {
return;
}
final ArrayList<String> propertiesToRemove = new ArrayList<String>(savedDirs);
final ArrayList<File> snapshotsToRemove = new ArrayList<File>(snapshots);
for (File checkoutDir : actualCheckoutDirs) {
if (!checkoutDir.isDirectory()) {
continue;
}
final String unifiedCheckoutDirPath = unifyPath(checkoutDir);
for (Map.Entry<String, DirInfo> entry : myProperties.entrySet()) {
final DirInfo info = entry.getValue();
final String monitoredDir = entry.getKey();
if (info.checkoutDir.equals(unifiedCheckoutDirPath)) {
propertiesToRemove.remove(unifyPath(monitoredDir));
snapshotsToRemove.remove(getSnapshotFile(new File(monitoredDir)));
}
}
}
for (String s : propertiesToRemove) {
myProperties.remove(s);
}
writeProperties();
for (File f : snapshotsToRemove) {
FileUtil.delete(f);
}
} finally {
myCleanupFinishedSignal.countDown();
}
}