Merge branch 'stable-3.1' into stable-3.2
* stable-3.1:
Follow up to: "Fix BlockedThreadsCheck failing with un-blocked..."
Change-Id: Ia7a6ff9368b6dcfac336ad4e2868d3383b5b244c
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());
}