# HG changeset patch # User Artem Tikhomirov # Date 1313162257 -7200 # Node ID f052f40839ec4da449c76edba2ee7a15de9bfa47 # Parent ff4fdbab4e2d649c3b492a6637722a3e4be3a9a5 Issue 9: NPE in getModificationDate for files with status 'Unknown' diff -r ff4fdbab4e2d -r f052f40839ec src/org/tmatesoft/hg/core/HgStatus.java --- a/src/org/tmatesoft/hg/core/HgStatus.java Thu Aug 11 05:12:13 2011 +0200 +++ b/src/org/tmatesoft/hg/core/HgStatus.java Fri Aug 12 17:17:37 2011 +0200 @@ -16,6 +16,7 @@ */ package org.tmatesoft.hg.core; +import java.io.File; import java.util.Date; import org.tmatesoft.hg.internal.ChangelogHelper; @@ -86,6 +87,10 @@ public Date getModificationDate() { RawChangeset cset = logHelper.findLatestChangeWith(path); if (cset == null) { + File localFile = new File(logHelper.getRepo().getWorkingDir(), path.toString()); + if (localFile.canRead()) { + return new Date(localFile.lastModified()); + } // FIXME check dirstate and/or local file for tstamp return new Date(); // what's correct } else { diff -r ff4fdbab4e2d -r f052f40839ec src/org/tmatesoft/hg/internal/ChangelogHelper.java --- a/src/org/tmatesoft/hg/internal/ChangelogHelper.java Thu Aug 11 05:12:13 2011 +0200 +++ b/src/org/tmatesoft/hg/internal/ChangelogHelper.java Fri Aug 12 17:17:37 2011 +0200 @@ -60,6 +60,9 @@ */ public RawChangeset findLatestChangeWith(Path file) { HgDataFile df = repo.getFileNode(file); + if (!df.exists()) { + return null; + } int changelogRev = df.getChangesetLocalRevision(HgRepository.TIP); if (changelogRev >= leftBoundary) { // the method is likely to be invoked for different files,