Details
-
Feature
-
Status: Released (View Workflow)
-
Minor
-
Resolution: Fixed
-
None
-
None
Description
Current Situation
- File Modification Time
- All YADE providers return a long value indicating the time the file was last modified in milliseconds.
- The following underlying providers return the modification time in milliseconds themselves:
- Local (java.io.File.lastModified)
- SMB
- WebDAV(s)
- The following underlying providers return the modification time in seconds, which are normalized to milliseconds (*1_000) by YADE:
- FTP(S)
- SFTP (jsch, sshj)
- The following underlying providers return the modification time in milliseconds themselves:
- If the modification time cannot be evaluated (file does not exist, etc.), the Local Provider can return 0 as the time, all other providers return -1 in these cases.
- When setting the modification time(KeepModificationDate=true), the YADE SMB provider implements the additional check whether the modification time is >=0 to prevent the modification time not being completely removed, or by setting the modification time to the year 1970, but other providers set the modification time without a check.
- All YADE providers return a long value indicating the time the file was last modified in milliseconds.
- SFTP SSHJ provider
- The methods such as fileExists or isDirectory at the DEBUG level write a stacktrace if a file/directory does not exist, which can be interpreted as an error.
Desired Behaviour
- File Modification Time
- All YADE providers should handle the methods for o get/set modification time in the same way.
- Local provider should use java.nio.file.Files.getLastModifiedTime
- i.a. this makes it possible in later releases to be able to retrieve file time in micro-/nanoseconds
- SFTP SSHJ provider
- If a file/directory does not exist, it is sufficient to log a boolean value instead of logging the exception stacktrace of the underlying library.