[EGIT PATCH] Handle the case when the file timestamp in java is rounded to seconds

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
---
 .../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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]