in agent/src/jetbrains/buildServer/swabra/snapshots/SnapshotGenerator.java [43:79]
public boolean generateSnapshot(@NotNull File snapshot) {
if (snapshot.exists()) {
myLogger.debug("Snapshot file " + snapshot.getName() + " exists, trying to delete");
if (!FileUtil.delete(snapshot)) {
myLogger.warn("Unable to delete " + snapshot.getName());
return false;
}
}
mySavedObjects = 0;
myLogger.message("Saving " + myRootDir +
" directory state to snapshot file " + snapshot.getName(), true);
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(snapshot), "UTF-8"));
writer.write(getSnapshotHeader(myRootDirParent));
iterateAndBuildSnapshot(writer);
myLogger.debug("Successfully finished saving " + myRootDir +
" directory state to snapshot file " + snapshot.getName() + ", saved " + mySavedObjects + " objects (including root dir)");
} catch (Throwable e) {
myLogger.warn("Unable to save " + myRootDir.getAbsolutePath()
+ " directory state to snapshot file " + snapshot.getName() + getMessage(e));
myLogger.exception(e);
return false;
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
myLogger.exception(e);
return false;
}
}
return true;
}