From ae3afdae983a1a1f9df2eaf7ad7ef45651920433 Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Thu, 31 Jul 2014 21:04:38 +0200 Subject: [PATCH] Fix #166 by making last modified date comparison fuzzy --- .../org/syncany/database/FileVersionComparator.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/syncany-lib/src/main/java/org/syncany/database/FileVersionComparator.java b/syncany-lib/src/main/java/org/syncany/database/FileVersionComparator.java index 2ab1690d3..b72424441 100644 --- a/syncany-lib/src/main/java/org/syncany/database/FileVersionComparator.java +++ b/syncany-lib/src/main/java/org/syncany/database/FileVersionComparator.java @@ -290,12 +290,17 @@ private void compareSize(FileVersionComparison fileComparison) { } private void compareModifiedDate(FileVersionComparison fileComparison) { - if (fileComparison.expectedFileProperties.getLastModified() != fileComparison.actualFileProperties.getLastModified()) { + long timeDifferenceMillis = Math.abs(fileComparison.expectedFileProperties.getLastModified() - fileComparison.actualFileProperties.getLastModified()); + + // Fuzziness on last modified dates is necessary, see issue #166 + + if (timeDifferenceMillis > 1000) { fileComparison.fileChanges.add(FileChange.CHANGED_LAST_MOD_DATE); logger.log(Level.INFO, " - " + fileComparison.fileChanges - + ": Local file DIFFERS from file version, expected MOD. DATE = {0}, but actual MOD. DATE = {1}, for file {2}", new Object[] { - new Date(fileComparison.expectedFileProperties.getLastModified()), new Date(fileComparison.actualFileProperties.getLastModified()), + + ": Local file DIFFERS from file version, expected MOD. DATE = {0} ({1}), but actual MOD. DATE = {2} ({3}), for file {4}", new Object[] { + new Date(fileComparison.expectedFileProperties.getLastModified()), fileComparison.expectedFileProperties.getLastModified(), + new Date(fileComparison.actualFileProperties.getLastModified()), fileComparison.actualFileProperties.getLastModified(), fileComparison.actualFileProperties.getRelativePath() }); } }