Merge branch 'stable-3.3' * stable-3.3: Follow up to: "Fix BlockedThreadsCheck failing with un-blocked..." Change-Id: Idda21fba7713fc62b23b9ec7330a7f8f8f1e21d5
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsCheck.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsCheck.java index 4e21771..78b8b01 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsCheck.java +++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsCheck.java
@@ -17,12 +17,12 @@ import static com.googlesource.gerrit.plugins.healthcheck.check.HealthCheckNames.BLOCKEDTHREADS; import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Suppliers; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.gerrit.extensions.config.FactoryModule; import com.google.inject.Inject; import com.google.inject.Module; import com.google.inject.Provider; +import com.google.inject.Singleton; import com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig; import com.googlesource.gerrit.plugins.healthcheck.HealthCheckMetrics; import java.lang.management.ManagementFactory; @@ -31,9 +31,9 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; -import java.util.function.Supplier; import java.util.stream.Stream; +@Singleton public class BlockedThreadsCheck extends AbstractHealthCheck { public static Module SUB_CHECKS = new FactoryModule() { @@ -44,7 +44,7 @@ }; private final ThreadMXBean threads; - private final Supplier<List<Collector>> collectorsSupplier; + private final BlockedThreadsConfigurator collectorsSupplier; @Inject public BlockedThreadsCheck( @@ -52,15 +52,15 @@ HealthCheckConfig healthCheckConfig, HealthCheckMetrics.Factory healthCheckMetricsFactory, ThreadBeanProvider threadBeanProvider, - Provider<BlockedThreadsConfigurator> checksConfig) { + BlockedThreadsConfigurator checksConfig) { super(executor, healthCheckConfig, BLOCKEDTHREADS, healthCheckMetricsFactory); this.threads = threadBeanProvider.get(); - this.collectorsSupplier = Suppliers.memoize(() -> checksConfig.get().collectors()); + this.collectorsSupplier = checksConfig; } @Override protected Result doCheck() throws Exception { - List<Collector> collectors = collectorsSupplier.get(); + List<Collector> collectors = collectorsSupplier.createCollectors(); dumpAllThreads().forEach(info -> collectors.forEach(c -> c.collect(info))); // call check on all sub-checks so that metrics are populated
diff --git a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsConfigurator.java b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsConfigurator.java index ddc67f9..40030e1 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsConfigurator.java +++ b/src/main/java/com/googlesource/gerrit/plugins/healthcheck/check/BlockedThreadsConfigurator.java
@@ -50,7 +50,7 @@ this.providers = getProviders(subchecks, healthCheckConfig); } - List<Collector> collectors() { + List<Collector> createCollectors() { return providers.stream().map(CollectorProvider::get).collect(toList()); }