diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/FileFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/FileFunctions.java index 2b33757ec46aa25f0170a3c31f779b4e120d4707..f4d636e57a42f4340d51a196310c18a5b377efdf 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/FileFunctions.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/FileFunctions.java @@ -43,7 +43,6 @@ import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.StandardCopyOption; import java.nio.file.attribute.BasicFileAttributes; -import java.nio.file.attribute.FileTime; import java.nio.file.attribute.PosixFileAttributes; import java.util.ArrayList; import java.util.Arrays; @@ -315,9 +314,9 @@ public class FileFunctions { PosixFileAttributes pfa = Files.readAttributes(path, PosixFileAttributes.class); size = pfa.size(); isdir = RRuntime.asLogical(pfa.isDirectory()); - mtime = getTimeInSecs(pfa.lastModifiedTime()); - ctime = getTimeInSecs(pfa.creationTime()); - atime = getTimeInSecs(pfa.lastAccessTime()); + mtime = Utils.getTimeInSecs(pfa.lastModifiedTime()); + ctime = Utils.getTimeInSecs(pfa.creationTime()); + atime = Utils.getTimeInSecs(pfa.lastAccessTime()); uname = pfa.owner().getName(); grname = pfa.group().getName(); mode = Utils.intFilePermissions(pfa.permissions()); @@ -347,14 +346,6 @@ public class FileFunctions { return RDataFactory.createList(data, NAMES_VECTOR); } - private static int getTimeInSecs(Object fileTime) { - if (fileTime == null) { - return RRuntime.INT_NA; - } else { - return (int) ((FileTime) fileTime).toMillis() / 1000; - } - } - private static Object createColumnData(Column column, int vecLength) { // @formatter:off switch(column) { diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSrcref.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSrcref.java index 906133d1dd4ba488fbb275f60d68101ddbcddc15..ed438162f9482c8253064a170b17de771c27fd90 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSrcref.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSrcref.java @@ -92,15 +92,13 @@ public class RSrcref { return env; } - private static double getTimestamp(Path path) { - double mtime; + private static int getTimestamp(Path path) { try { PosixFileAttributes pfa = Files.readAttributes(path, PosixFileAttributes.class); - mtime = pfa.lastModifiedTime().toMillis(); + return Utils.getTimeInSecs(pfa.lastModifiedTime()); } catch (IOException ex) { - mtime = RRuntime.DOUBLE_NA; + return RRuntime.INT_NA; } - return mtime; } /** diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/Utils.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/Utils.java index a511ed968943b46d2c5da96149c8453114209c04..5d3c31feba257afdbfd70dbc0da57b7c367a7f19 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/Utils.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/Utils.java @@ -30,6 +30,7 @@ import java.io.InputStreamReader; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Path; +import java.nio.file.attribute.FileTime; import java.nio.file.attribute.PosixFilePermission; import java.util.Arrays; import java.util.Set; @@ -718,4 +719,12 @@ public final class Utils { } return startingTempDir; } + + public static int getTimeInSecs(FileTime fileTime) { + if (fileTime == null) { + return RRuntime.INT_NA; + } else { + return (int) (fileTime.toMillis() / 1000); + } + } }