CompletableFuture<List<WSLDistribution>> () { if (!isAvailable()) return CompletableFuture.completedFuture(List.of()); CachedDistributions cachedDistributions = myInstalledDistributions; if (cachedDistributions != null && cachedDistributions.isUpToDate()) { return CompletableFuture.completedFuture(cachedDistributions.myInstalledDistributions); } return CompletableFuture.supplyAsync(this::getInstalledDistributions, AppExecutorUtil.getAppExecutorService()); }