Skip to content

Commit d8cead5

Browse files
committed
Use accessor for in-progress async count added in Tomcat 9.0.33
Closes gh-20440
1 parent 281f4d4 commit d8cead5

File tree

1 file changed

+2
-7
lines changed

1 file changed

+2
-7
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/tomcat/TomcatGracefulShutdown.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,20 @@
1616

1717
package org.springframework.boot.web.embedded.tomcat;
1818

19-
import java.lang.reflect.Field;
2019
import java.time.Duration;
2120
import java.util.ArrayList;
2221
import java.util.List;
23-
import java.util.concurrent.atomic.AtomicLong;
2422

2523
import org.apache.catalina.Container;
2624
import org.apache.catalina.Service;
2725
import org.apache.catalina.connector.Connector;
26+
import org.apache.catalina.core.StandardContext;
2827
import org.apache.catalina.core.StandardWrapper;
2928
import org.apache.catalina.startup.Tomcat;
3029
import org.apache.commons.logging.Log;
3130
import org.apache.commons.logging.LogFactory;
3231

3332
import org.springframework.boot.web.server.GracefulShutdown;
34-
import org.springframework.util.ReflectionUtils;
3533

3634
/**
3735
* {@link GracefulShutdown} for {@link Tomcat}.
@@ -90,10 +88,7 @@ public boolean shutDownGracefully() {
9088

9189
private boolean active(Container context) {
9290
try {
93-
Field field = ReflectionUtils.findField(context.getClass(), "inProgressAsyncCount");
94-
field.setAccessible(true);
95-
AtomicLong inProgressAsyncCount = (AtomicLong) field.get(context);
96-
if (inProgressAsyncCount.get() > 0) {
91+
if (((StandardContext) context).getInProgressAsyncCount() > 0) {
9792
return true;
9893
}
9994
for (Container wrapper : context.findChildren()) {

0 commit comments

Comments
 (0)