From 68f55e9f007fd69f0b4553d662d14d441ae7025c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C5=A1a=20=C5=BDivkov?= Date: Wed, 21 Dec 2016 14:21:51 +0100 Subject: [PATCH] Log when loading project cache finished Change-Id: Ided04251a1dd743572fbb0ba6e853e494fcc1b7f --- .../gerrit/server/project/ProjectCacheWarmer.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectCacheWarmer.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectCacheWarmer.java index 2cdb172735..729aa9d75d 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectCacheWarmer.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectCacheWarmer.java @@ -25,8 +25,11 @@ import org.eclipse.jgit.lib.Config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; @Singleton public class ProjectCacheWarmer implements LifecycleListener { @@ -50,9 +53,10 @@ public class ProjectCacheWarmer implements LifecycleListener { new ScheduledThreadPoolExecutor(config.getInt("cache", "projects", "loadThreads", cpus), new ThreadFactoryBuilder().setNameFormat( "ProjectCacheLoader-%d").build()); + ExecutorService scheduler = Executors.newFixedThreadPool(1); log.info("Loading project cache"); - pool.execute(new Runnable() { + scheduler.execute(new Runnable() { @Override public void run() { for (final Project.NameKey name : cache.all()) { @@ -64,6 +68,12 @@ public class ProjectCacheWarmer implements LifecycleListener { }); } pool.shutdown(); + try { + pool.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS); + log.info("Finished loading project cache"); + } catch (InterruptedException e) { + log.warn("Interrupted while waiting for project cache to load"); + } } }); }