Fix FileSnapshot#save(long) and FileSnapshot#save(Instant)
Use the fallback timestamp resolution as already described in the javadoc of these methods. Using zero file timestamp resolution doesn't make sense. Change-Id: Iaad2a0f99c3be3678e94980a0a368181b6aed38c Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
d45219baac
commit
275f3da783
|
@ -44,7 +44,7 @@
|
|||
package org.eclipse.jgit.internal.storage.file;
|
||||
|
||||
import static org.eclipse.jgit.util.FS.FileStoreAttributes.FALLBACK_FILESTORE_ATTRIBUTES;
|
||||
|
||||
import static org.eclipse.jgit.util.FS.FileStoreAttributes.FALLBACK_TIMESTAMP_RESOLUTION;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
|
@ -176,7 +176,7 @@ private static Object getFileKey(BasicFileAttributes fileAttributes) {
|
|||
public static FileSnapshot save(long modified) {
|
||||
final Instant read = Instant.now();
|
||||
return new FileSnapshot(read, Instant.ofEpochMilli(modified),
|
||||
UNKNOWN_SIZE, Duration.ZERO, MISSING_FILEKEY);
|
||||
UNKNOWN_SIZE, FALLBACK_TIMESTAMP_RESOLUTION, MISSING_FILEKEY);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -196,8 +196,8 @@ public static FileSnapshot save(long modified) {
|
|||
*/
|
||||
public static FileSnapshot save(Instant modified) {
|
||||
final Instant read = Instant.now();
|
||||
return new FileSnapshot(read, modified, UNKNOWN_SIZE, Duration.ZERO,
|
||||
MISSING_FILEKEY);
|
||||
return new FileSnapshot(read, modified, UNKNOWN_SIZE,
|
||||
FALLBACK_TIMESTAMP_RESOLUTION, MISSING_FILEKEY);
|
||||
}
|
||||
|
||||
/** Last observed modification time of the path. */
|
||||
|
|
|
@ -213,13 +213,20 @@ public final static class FileStoreAttributes {
|
|||
private static final Duration UNDEFINED_DURATION = Duration
|
||||
.ofNanos(Long.MAX_VALUE);
|
||||
|
||||
/**
|
||||
* Fallback filesystem timestamp resolution. The worst case timestamp
|
||||
* resolution on FAT filesystems is 2 seconds.
|
||||
*/
|
||||
public static final Duration FALLBACK_TIMESTAMP_RESOLUTION = Duration
|
||||
.ofMillis(2000);
|
||||
|
||||
/**
|
||||
* Fallback FileStore attributes used when we can't measure the
|
||||
* filesystem timestamp resolution. The last modified time granularity
|
||||
* of FAT filesystems is 2 seconds.
|
||||
*/
|
||||
public static final FileStoreAttributes FALLBACK_FILESTORE_ATTRIBUTES = new FileStoreAttributes(
|
||||
Duration.ofMillis(2000));
|
||||
FALLBACK_TIMESTAMP_RESOLUTION);
|
||||
|
||||
private static final Map<FileStore, FileStoreAttributes> attributeCache = new ConcurrentHashMap<>();
|
||||
|
||||
|
|
Loading…
Reference in New Issue