Skip to content
Snippets Groups Projects
Commit 964ccc1e authored by Florian Angerer's avatar Florian Angerer
Browse files

Fix: Rsrcref did not properly set mtime.

parent afe25ab5
No related branches found
No related tags found
No related merge requests found
...@@ -43,7 +43,6 @@ import java.nio.file.Paths; ...@@ -43,7 +43,6 @@ import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor; import java.nio.file.SimpleFileVisitor;
import java.nio.file.StandardCopyOption; import java.nio.file.StandardCopyOption;
import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileTime;
import java.nio.file.attribute.PosixFileAttributes; import java.nio.file.attribute.PosixFileAttributes;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
...@@ -315,9 +314,9 @@ public class FileFunctions { ...@@ -315,9 +314,9 @@ public class FileFunctions {
PosixFileAttributes pfa = Files.readAttributes(path, PosixFileAttributes.class); PosixFileAttributes pfa = Files.readAttributes(path, PosixFileAttributes.class);
size = pfa.size(); size = pfa.size();
isdir = RRuntime.asLogical(pfa.isDirectory()); isdir = RRuntime.asLogical(pfa.isDirectory());
mtime = getTimeInSecs(pfa.lastModifiedTime()); mtime = Utils.getTimeInSecs(pfa.lastModifiedTime());
ctime = getTimeInSecs(pfa.creationTime()); ctime = Utils.getTimeInSecs(pfa.creationTime());
atime = getTimeInSecs(pfa.lastAccessTime()); atime = Utils.getTimeInSecs(pfa.lastAccessTime());
uname = pfa.owner().getName(); uname = pfa.owner().getName();
grname = pfa.group().getName(); grname = pfa.group().getName();
mode = Utils.intFilePermissions(pfa.permissions()); mode = Utils.intFilePermissions(pfa.permissions());
...@@ -347,14 +346,6 @@ public class FileFunctions { ...@@ -347,14 +346,6 @@ public class FileFunctions {
return RDataFactory.createList(data, NAMES_VECTOR); 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) { private static Object createColumnData(Column column, int vecLength) {
// @formatter:off // @formatter:off
switch(column) { switch(column) {
......
...@@ -92,15 +92,13 @@ public class RSrcref { ...@@ -92,15 +92,13 @@ public class RSrcref {
return env; return env;
} }
private static double getTimestamp(Path path) { private static int getTimestamp(Path path) {
double mtime;
try { try {
PosixFileAttributes pfa = Files.readAttributes(path, PosixFileAttributes.class); PosixFileAttributes pfa = Files.readAttributes(path, PosixFileAttributes.class);
mtime = pfa.lastModifiedTime().toMillis(); return Utils.getTimeInSecs(pfa.lastModifiedTime());
} catch (IOException ex) { } catch (IOException ex) {
mtime = RRuntime.DOUBLE_NA; return RRuntime.INT_NA;
} }
return mtime;
} }
/** /**
......
...@@ -30,6 +30,7 @@ import java.io.InputStreamReader; ...@@ -30,6 +30,7 @@ import java.io.InputStreamReader;
import java.nio.file.FileSystem; import java.nio.file.FileSystem;
import java.nio.file.FileSystems; import java.nio.file.FileSystems;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.attribute.FileTime;
import java.nio.file.attribute.PosixFilePermission; import java.nio.file.attribute.PosixFilePermission;
import java.util.Arrays; import java.util.Arrays;
import java.util.Set; import java.util.Set;
...@@ -718,4 +719,12 @@ public final class Utils { ...@@ -718,4 +719,12 @@ public final class Utils {
} }
return startingTempDir; return startingTempDir;
} }
public static int getTimeInSecs(FileTime fileTime) {
if (fileTime == null) {
return RRuntime.INT_NA;
} else {
return (int) (fileTime.toMillis() / 1000);
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment