diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/ClasspathFileBasedCache.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/ClasspathFileBasedCache.java index 91992010e..896a6f5b1 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/ClasspathFileBasedCache.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/ClasspathFileBasedCache.java @@ -24,6 +24,9 @@ import org.json.JSONTokener; import org.springframework.ide.vscode.commons.util.Log; public class ClasspathFileBasedCache { + + public static final ClasspathFileBasedCache NULL = new ClasspathFileBasedCache(null); + public static final String CLASSPATH_DATA_CACHE_FILE = "classpath-data.json"; private static final String OUTPUT_FOLDER_PROPERTY = "outputFolder"; diff --git a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/DelegatingCachedClasspath.java b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/DelegatingCachedClasspath.java index 14c26b426..7b3c7f121 100644 --- a/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/DelegatingCachedClasspath.java +++ b/headless-services/commons/commons-java/src/main/java/org/springframework/ide/vscode/commons/java/DelegatingCachedClasspath.java @@ -18,6 +18,8 @@ import java.util.concurrent.Callable; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Predicate; +import org.springframework.ide.vscode.commons.util.Assert; + import com.google.common.base.Objects; import com.google.common.collect.ImmutableList; @@ -46,12 +48,13 @@ public class DelegatingCachedClasspath implements IClasspa private Callable delegateCreator; private AtomicReference cachedDelegate; - private ClasspathFileBasedCache fileCache; + private final ClasspathFileBasedCache fileCache; public DelegatingCachedClasspath(Callable delegateCreator, ClasspathFileBasedCache fileCache) { super(); - this.fileCache = fileCache; + Assert.isLegal(delegateCreator != null); + this.fileCache = fileCache != null ? fileCache : ClasspathFileBasedCache.NULL; this.cachedDelegate = new AtomicReference<>(null); this.cachedData = new AtomicReference<>(loadFileBasedCache(fileCache)); this.delegateCreator = delegateCreator;