From 64f7a64627b271a3c606890b7c838ff1f83fb75a Mon Sep 17 00:00:00 2001 From: alanb Date: Tue, 24 Mar 2009 14:08:37 +0000 Subject: [PATCH] 6819689: File.lastModified can return bogus value for remote file accessed as it is being deleted [win] Reviewed-by: sherman Contributed-by: andreas.frischknecht@softwired-inc.com --- src/windows/native/java/io/WinNTFileSystem_md.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/windows/native/java/io/WinNTFileSystem_md.c b/src/windows/native/java/io/WinNTFileSystem_md.c index 13d4c7e91..f4cc69111 100644 --- a/src/windows/native/java/io/WinNTFileSystem_md.c +++ b/src/windows/native/java/io/WinNTFileSystem_md.c @@ -309,12 +309,13 @@ Java_java_io_WinNTFileSystem_getLastModifiedTime(JNIEnv *env, jobject this, /* No template file */ NULL); if (h != INVALID_HANDLE_VALUE) { - GetFileTime(h, NULL, NULL, &t); + if (GetFileTime(h, NULL, NULL, &t)) { + modTime.LowPart = (DWORD) t.dwLowDateTime; + modTime.HighPart = (LONG) t.dwHighDateTime; + rv = modTime.QuadPart / 10000; + rv -= 11644473600000; + } CloseHandle(h); - modTime.LowPart = (DWORD) t.dwLowDateTime; - modTime.HighPart = (LONG) t.dwHighDateTime; - rv = modTime.QuadPart / 10000; - rv -= 11644473600000; } free(pathbuf); return rv; -- GitLab