From 51dfd528bd6de6ecb0d3d2c1a35fe0c0e3fd463c Mon Sep 17 00:00:00 2001 From: Johnny Lim Date: Fri, 24 Jan 2020 00:25:25 +0900 Subject: [PATCH] Close TomcatMetrics on shutdown for cleanup See micrometer-metrics/micrometer#1424 See gh-19880 --- .../metrics/web/tomcat/TomcatMetricsBinder.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/tomcat/TomcatMetricsBinder.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/tomcat/TomcatMetricsBinder.java index 689c41cdca..6a8a2bea6f 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/tomcat/TomcatMetricsBinder.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/tomcat/TomcatMetricsBinder.java @@ -25,6 +25,7 @@ import org.apache.catalina.Container; import org.apache.catalina.Context; import org.apache.catalina.Manager; +import org.springframework.beans.factory.DisposableBean; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.boot.web.context.WebServerApplicationContext; import org.springframework.boot.web.embedded.tomcat.TomcatWebServer; @@ -38,12 +39,14 @@ import org.springframework.context.ApplicationListener; * @author Andy Wilkinson * @since 2.1.0 */ -public class TomcatMetricsBinder implements ApplicationListener { +public class TomcatMetricsBinder implements ApplicationListener, DisposableBean { private final MeterRegistry meterRegistry; private final Iterable tags; + private volatile TomcatMetrics tomcatMetrics; + public TomcatMetricsBinder(MeterRegistry meterRegistry) { this(meterRegistry, Collections.emptyList()); } @@ -57,7 +60,8 @@ public class TomcatMetricsBinder implements ApplicationListener