From b6afe56dc25c982d471cf17ec4102a643613237e Mon Sep 17 00:00:00 2001 From: Roel Spilker Date: Wed, 15 Jan 2014 21:28:31 +0100 Subject: [configuration] Use URI in the API instead of files. Null results in an empty Iterable. Some improvements on the time-out code --- .../lombok/core/configuration/FileSystemSourceCache.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/core') diff --git a/src/core/lombok/core/configuration/FileSystemSourceCache.java b/src/core/lombok/core/configuration/FileSystemSourceCache.java index 50a3bac7..c329b435 100644 --- a/src/core/lombok/core/configuration/FileSystemSourceCache.java +++ b/src/core/lombok/core/configuration/FileSystemSourceCache.java @@ -24,6 +24,8 @@ package lombok.core.configuration; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; +import java.net.URI; +import java.util.Collections; import java.util.Iterator; import java.util.NoSuchElementException; import java.util.concurrent.ConcurrentHashMap; @@ -43,8 +45,9 @@ public class FileSystemSourceCache { this.reporterFactory = reporterFactory; } - public Iterable sourcesForJavaFile(File javaFile) { - final File directory = new File(javaFile.toURI().normalize()).getParentFile(); + public Iterable sourcesForJavaFile(URI javaFile) { + if (javaFile == null) return Collections.emptyList(); + final File directory = new File(javaFile.normalize()).getParentFile(); return new Iterable() { @Override public Iterator iterator() { @@ -91,12 +94,13 @@ public class FileSystemSourceCache { Content content = ensureContent(directory); synchronized (content) { - if (content.lastChecked != MISSING && content.lastChecked - now < RECHECK_FILESYSTEM && getLastModified(configFile) == content.lastModified) { + if (content.lastChecked != MISSING && now - content.lastChecked < RECHECK_FILESYSTEM && getLastModified(configFile) == content.lastModified) { return content.source; } content.lastChecked = now; + long previouslyModified = content.lastModified; content.lastModified = getLastModified(configFile); - content.source = content.lastModified == MISSING ? null : parse(configFile); + if (content.lastModified != previouslyModified) content.source = content.lastModified == MISSING ? null : parse(configFile); return content.source; } } -- cgit