[EGIT PATCH] Handle the case when the file timestamp in java is rounded to seconds
- From
Robin Rosenberg <robin.rosenberg@dewire.com>
- Date
- Apr 13, 2009, 20:45 UTC
- Message-ID
- <1239655500-13595-1-git-send-email-robin.rosenberg@dewire.com>
Even if the file systems support subsecond timestamp resolution the Java runtime, including the Eclipse resources may return timestamps that are truncated to seconds only.
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com> --- .../decorators/DecoratableResourceAdapter.java | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/DecoratableResourceAdapter.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/DecoratableResourceAdapter.java index 5c68d5b..12f7ec3 100644 --- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/DecoratableResourceAdapter.java +++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/decorators/DecoratableResourceAdapter.java @@ -354,8 +354,12 @@ private static boolean timestampMatches(DirCacheEntry indexEntry, // so we need to check to see if this is the case here, and possibly // fix the timestamp of the resource to match the resolution of the // index. - if (tIndex % 1000 == 0) { - return tIndex == (tWorkspaceResource - (tWorkspaceResource % 1000)); + // It also appears the timestamp in Java on Linux may also be rounded + // in which case the index timestamp may have subseconds, but not + // the timestamp from the workspace resource. + // If either timestamp looks rounded we skip the subscond part. + if (tIndex % 1000 == 0 || tWorkspaceResource % 1000 == 0) { + return tIndex / 1000 == tWorkspaceResource / 1000; } else { return tIndex == tWorkspaceResource; }
-- 1.6.2.2.446.gfbdc0