此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.4spring-doc.cn

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.4spring-doc.cn

终端节点提供来自应用程序 JVM 的线程转储。threaddumpspring-doc.cn

以 JSON 格式检索线程转储

要将线程转储检索为 JSON,请使用适当的标头发出请求,如以下基于 curl 的示例所示:GET/actuator/threaddumpAcceptspring-doc.cn

$ curl 'http://localhost:8080/actuator/threaddump' -i -X GET \
    -H 'Accept: application/json'

生成的响应类似于以下内容:spring-doc.cn

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 40739

{
  "threads" : [ {
    "threadName" : "Test worker",
    "threadId" : 1,
    "blockedTime" : -1,
    "blockedCount" : 45,
    "waitedTime" : -1,
    "waitedCount" : 45,
    "lockOwnerId" : -1,
    "daemon" : false,
    "inNative" : false,
    "suspended" : false,
    "threadState" : "RUNNABLE",
    "priority" : 5,
    "stackTrace" : [ {
      "moduleName" : "java.management",
      "moduleVersion" : "17.0.12",
      "methodName" : "dumpThreads0",
      "fileName" : "ThreadImpl.java",
      "lineNumber" : -2,
      "nativeMethod" : true,
      "className" : "sun.management.ThreadImpl"
    }, {
      "moduleName" : "java.management",
      "moduleVersion" : "17.0.12",
      "methodName" : "dumpAllThreads",
      "fileName" : "ThreadImpl.java",
      "lineNumber" : 528,
      "nativeMethod" : false,
      "className" : "sun.management.ThreadImpl"
    }, {
      "moduleName" : "java.management",
      "moduleVersion" : "17.0.12",
      "methodName" : "dumpAllThreads",
      "fileName" : "ThreadImpl.java",
      "lineNumber" : 516,
      "nativeMethod" : false,
      "className" : "sun.management.ThreadImpl"
    }, {
      "classLoaderName" : "app",
      "methodName" : "getFormattedThreadDump",
      "fileName" : "ThreadDumpEndpoint.java",
      "lineNumber" : 52,
      "nativeMethod" : false,
      "className" : "org.springframework.boot.actuate.management.ThreadDumpEndpoint"
    }, {
      "classLoaderName" : "app",
      "methodName" : "threadDump",
      "fileName" : "ThreadDumpEndpoint.java",
      "lineNumber" : 43,
      "nativeMethod" : false,
      "className" : "org.springframework.boot.actuate.management.ThreadDumpEndpoint"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke0",
      "fileName" : "NativeMethodAccessorImpl.java",
      "lineNumber" : -2,
      "nativeMethod" : true,
      "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "NativeMethodAccessorImpl.java",
      "lineNumber" : 77,
      "nativeMethod" : false,
      "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "DelegatingMethodAccessorImpl.java",
      "lineNumber" : 43,
      "nativeMethod" : false,
      "className" : "jdk.internal.reflect.DelegatingMethodAccessorImpl"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "Method.java",
      "lineNumber" : 569,
      "nativeMethod" : false,
      "className" : "java.lang.reflect.Method"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invokeMethod",
      "fileName" : "ReflectionUtils.java",
      "lineNumber" : 281,
      "nativeMethod" : false,
      "className" : "org.springframework.util.ReflectionUtils"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invoke",
      "fileName" : "ReflectiveOperationInvoker.java",
      "lineNumber" : 74,
      "nativeMethod" : false,
      "className" : "org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invoke",
      "fileName" : "AbstractDiscoveredOperation.java",
      "lineNumber" : 60,
      "nativeMethod" : false,
      "className" : "org.springframework.boot.actuate.endpoint.annotation.AbstractDiscoveredOperation"
    }, {
      "classLoaderName" : "app",
      "methodName" : "handle",
      "fileName" : "AbstractWebMvcEndpointHandlerMapping.java",
      "lineNumber" : 327,
      "nativeMethod" : false,
      "className" : "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$ServletWebOperationAdapter"
    }, {
      "classLoaderName" : "app",
      "methodName" : "handle",
      "fileName" : "AbstractWebMvcEndpointHandlerMapping.java",
      "lineNumber" : 434,
      "nativeMethod" : false,
      "className" : "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler"
    }, {
      "methodName" : "invoke",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "jdk.internal.reflect.GeneratedMethodAccessor65"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "DelegatingMethodAccessorImpl.java",
      "lineNumber" : 43,
      "nativeMethod" : false,
      "className" : "jdk.internal.reflect.DelegatingMethodAccessorImpl"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "Method.java",
      "lineNumber" : 569,
      "nativeMethod" : false,
      "className" : "java.lang.reflect.Method"
    }, {
      "classLoaderName" : "app",
      "methodName" : "doInvoke",
      "fileName" : "InvocableHandlerMethod.java",
      "lineNumber" : 255,
      "nativeMethod" : false,
      "className" : "org.springframework.web.method.support.InvocableHandlerMethod"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invokeForRequest",
      "fileName" : "InvocableHandlerMethod.java",
      "lineNumber" : 188,
      "nativeMethod" : false,
      "className" : "org.springframework.web.method.support.InvocableHandlerMethod"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invokeAndHandle",
      "fileName" : "ServletInvocableHandlerMethod.java",
      "lineNumber" : 118,
      "nativeMethod" : false,
      "className" : "org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invokeHandlerMethod",
      "fileName" : "RequestMappingHandlerAdapter.java",
      "lineNumber" : 986,
      "nativeMethod" : false,
      "className" : "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"
    }, {
      "classLoaderName" : "app",
      "methodName" : "handleInternal",
      "fileName" : "RequestMappingHandlerAdapter.java",
      "lineNumber" : 891,
      "nativeMethod" : false,
      "className" : "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"
    }, {
      "classLoaderName" : "app",
      "methodName" : "handle",
      "fileName" : "AbstractHandlerMethodAdapter.java",
      "lineNumber" : 87,
      "nativeMethod" : false,
      "className" : "org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter"
    }, {
      "classLoaderName" : "app",
      "methodName" : "doDispatch",
      "fileName" : "DispatcherServlet.java",
      "lineNumber" : 1088,
      "nativeMethod" : false,
      "className" : "org.springframework.web.servlet.DispatcherServlet"
    }, {
      "classLoaderName" : "app",
      "methodName" : "doService",
      "fileName" : "DispatcherServlet.java",
      "lineNumber" : 978,
      "nativeMethod" : false,
      "className" : "org.springframework.web.servlet.DispatcherServlet"
    }, {
      "classLoaderName" : "app",
      "methodName" : "processRequest",
      "fileName" : "FrameworkServlet.java",
      "lineNumber" : 1014,
      "nativeMethod" : false,
      "className" : "org.springframework.web.servlet.FrameworkServlet"
    }, {
      "classLoaderName" : "app",
      "methodName" : "doGet",
      "fileName" : "FrameworkServlet.java",
      "lineNumber" : 903,
      "nativeMethod" : false,
      "className" : "org.springframework.web.servlet.FrameworkServlet"
    }, {
      "classLoaderName" : "app",
      "methodName" : "service",
      "fileName" : "HttpServlet.java",
      "lineNumber" : 527,
      "nativeMethod" : false,
      "className" : "jakarta.servlet.http.HttpServlet"
    }, {
      "classLoaderName" : "app",
      "methodName" : "service",
      "fileName" : "FrameworkServlet.java",
      "lineNumber" : 885,
      "nativeMethod" : false,
      "className" : "org.springframework.web.servlet.FrameworkServlet"
    }, {
      "classLoaderName" : "app",
      "methodName" : "service",
      "fileName" : "TestDispatcherServlet.java",
      "lineNumber" : 72,
      "nativeMethod" : false,
      "className" : "org.springframework.test.web.servlet.TestDispatcherServlet"
    }, {
      "classLoaderName" : "app",
      "methodName" : "service",
      "fileName" : "HttpServlet.java",
      "lineNumber" : 614,
      "nativeMethod" : false,
      "className" : "jakarta.servlet.http.HttpServlet"
    }, {
      "classLoaderName" : "app",
      "methodName" : "doFilter",
      "fileName" : "MockFilterChain.java",
      "lineNumber" : 165,
      "nativeMethod" : false,
      "className" : "org.springframework.mock.web.MockFilterChain$ServletFilterProxy"
    }, {
      "classLoaderName" : "app",
      "methodName" : "doFilter",
      "fileName" : "MockFilterChain.java",
      "lineNumber" : 132,
      "nativeMethod" : false,
      "className" : "org.springframework.mock.web.MockFilterChain"
    }, {
      "classLoaderName" : "app",
      "methodName" : "perform",
      "fileName" : "MockMvc.java",
      "lineNumber" : 201,
      "nativeMethod" : false,
      "className" : "org.springframework.test.web.servlet.MockMvc"
    }, {
      "classLoaderName" : "app",
      "methodName" : "getMvcResultOrFailure",
      "fileName" : "MockMvcTester.java",
      "lineNumber" : 387,
      "nativeMethod" : false,
      "className" : "org.springframework.test.web.servlet.assertj.MockMvcTester"
    }, {
      "classLoaderName" : "app",
      "methodName" : "perform",
      "fileName" : "MockMvcTester.java",
      "lineNumber" : 376,
      "nativeMethod" : false,
      "className" : "org.springframework.test.web.servlet.assertj.MockMvcTester"
    }, {
      "classLoaderName" : "app",
      "methodName" : "exchange",
      "fileName" : "MockMvcTester.java",
      "lineNumber" : 402,
      "nativeMethod" : false,
      "className" : "org.springframework.test.web.servlet.assertj.MockMvcTester"
    }, {
      "classLoaderName" : "app",
      "methodName" : "exchange",
      "fileName" : "MockMvcTester.java",
      "lineNumber" : 461,
      "nativeMethod" : false,
      "className" : "org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder"
    }, {
      "classLoaderName" : "app",
      "methodName" : "assertThat",
      "fileName" : "MockMvcTester.java",
      "lineNumber" : 487,
      "nativeMethod" : false,
      "className" : "org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder"
    }, {
      "classLoaderName" : "app",
      "methodName" : "assertThat",
      "fileName" : "MockMvcTester.java",
      "lineNumber" : 426,
      "nativeMethod" : false,
      "className" : "org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder"
    }, {
      "classLoaderName" : "app",
      "methodName" : "assertThat",
      "fileName" : "AssertionsForInterfaceTypes.java",
      "lineNumber" : 82,
      "nativeMethod" : false,
      "className" : "org.assertj.core.api.AssertionsForInterfaceTypes"
    }, {
      "classLoaderName" : "app",
      "methodName" : "assertThat",
      "fileName" : "Assertions.java",
      "lineNumber" : 3371,
      "nativeMethod" : false,
      "className" : "org.assertj.core.api.Assertions"
    }, {
      "classLoaderName" : "app",
      "methodName" : "jsonThreadDump",
      "fileName" : "ThreadDumpEndpointDocumentationTests.java",
      "lineNumber" : 65,
      "nativeMethod" : false,
      "className" : "org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.ThreadDumpEndpointDocumentationTests"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke0",
      "fileName" : "NativeMethodAccessorImpl.java",
      "lineNumber" : -2,
      "nativeMethod" : true,
      "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "NativeMethodAccessorImpl.java",
      "lineNumber" : 77,
      "nativeMethod" : false,
      "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "DelegatingMethodAccessorImpl.java",
      "lineNumber" : 43,
      "nativeMethod" : false,
      "className" : "jdk.internal.reflect.DelegatingMethodAccessorImpl"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "Method.java",
      "lineNumber" : 569,
      "nativeMethod" : false,
      "className" : "java.lang.reflect.Method"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invokeMethod",
      "fileName" : "ReflectionUtils.java",
      "lineNumber" : 766,
      "nativeMethod" : false,
      "className" : "org.junit.platform.commons.util.ReflectionUtils"
    }, {
      "classLoaderName" : "app",
      "methodName" : "proceed",
      "fileName" : "MethodInvocation.java",
      "lineNumber" : 60,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.MethodInvocation"
    }, {
      "classLoaderName" : "app",
      "methodName" : "proceed",
      "fileName" : "InvocationInterceptorChain.java",
      "lineNumber" : 131,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation"
    }, {
      "classLoaderName" : "app",
      "methodName" : "intercept",
      "fileName" : "TimeoutExtension.java",
      "lineNumber" : 156,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.extension.TimeoutExtension"
    }, {
      "classLoaderName" : "app",
      "methodName" : "interceptTestableMethod",
      "fileName" : "TimeoutExtension.java",
      "lineNumber" : 147,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.extension.TimeoutExtension"
    }, {
      "classLoaderName" : "app",
      "methodName" : "interceptTestMethod",
      "fileName" : "TimeoutExtension.java",
      "lineNumber" : 86,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.extension.TimeoutExtension"
    }, {
      "classLoaderName" : "app",
      "methodName" : "apply",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda$204/0x00007f3ef413f288"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$ofVoidMethod$0",
      "fileName" : "InterceptingExecutableInvoker.java",
      "lineNumber" : 103,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall"
    }, {
      "classLoaderName" : "app",
      "methodName" : "apply",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall$$Lambda$205/0x00007f3ef413f6a8"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$invoke$0",
      "fileName" : "InterceptingExecutableInvoker.java",
      "lineNumber" : 93,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker"
    }, {
      "classLoaderName" : "app",
      "methodName" : "apply",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$$Lambda$497/0x00007f3ef41fcac0"
    }, {
      "classLoaderName" : "app",
      "methodName" : "proceed",
      "fileName" : "InvocationInterceptorChain.java",
      "lineNumber" : 106,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation"
    }, {
      "classLoaderName" : "app",
      "methodName" : "proceed",
      "fileName" : "InvocationInterceptorChain.java",
      "lineNumber" : 64,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InvocationInterceptorChain"
    }, {
      "classLoaderName" : "app",
      "methodName" : "chainAndInvoke",
      "fileName" : "InvocationInterceptorChain.java",
      "lineNumber" : 45,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InvocationInterceptorChain"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invoke",
      "fileName" : "InvocationInterceptorChain.java",
      "lineNumber" : 37,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InvocationInterceptorChain"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invoke",
      "fileName" : "InterceptingExecutableInvoker.java",
      "lineNumber" : 92,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invoke",
      "fileName" : "InterceptingExecutableInvoker.java",
      "lineNumber" : 86,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$invokeTestMethod$8",
      "fileName" : "TestMethodTestDescriptor.java",
      "lineNumber" : 217,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda$1070/0x00007f3ef4630dc0"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "ThrowableCollector.java",
      "lineNumber" : 73,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invokeTestMethod",
      "fileName" : "TestMethodTestDescriptor.java",
      "lineNumber" : 213,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "TestMethodTestDescriptor.java",
      "lineNumber" : 138,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "TestMethodTestDescriptor.java",
      "lineNumber" : 68,
      "nativeMethod" : false,
      "className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$executeRecursively$6",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 151,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$310/0x00007f3ef4166be8"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "ThrowableCollector.java",
      "lineNumber" : 73,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$executeRecursively$8",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 141,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invoke",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$309/0x00007f3ef41669c0"
    }, {
      "classLoaderName" : "app",
      "methodName" : "around",
      "fileName" : "Node.java",
      "lineNumber" : 137,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.Node"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$executeRecursively$9",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 139,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$308/0x00007f3ef4166598"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "ThrowableCollector.java",
      "lineNumber" : 73,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector"
    }, {
      "classLoaderName" : "app",
      "methodName" : "executeRecursively",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 138,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 95,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "accept",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda$314/0x00007f3ef4167700"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "forEach",
      "fileName" : "ArrayList.java",
      "lineNumber" : 1511,
      "nativeMethod" : false,
      "className" : "java.util.ArrayList"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invokeAll",
      "fileName" : "SameThreadHierarchicalTestExecutorService.java",
      "lineNumber" : 41,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$executeRecursively$6",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 155,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$310/0x00007f3ef4166be8"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "ThrowableCollector.java",
      "lineNumber" : 73,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$executeRecursively$8",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 141,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invoke",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$309/0x00007f3ef41669c0"
    }, {
      "classLoaderName" : "app",
      "methodName" : "around",
      "fileName" : "Node.java",
      "lineNumber" : 137,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.Node"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$executeRecursively$9",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 139,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$308/0x00007f3ef4166598"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "ThrowableCollector.java",
      "lineNumber" : 73,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector"
    }, {
      "classLoaderName" : "app",
      "methodName" : "executeRecursively",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 138,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 95,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "accept",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda$314/0x00007f3ef4167700"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "forEach",
      "fileName" : "ArrayList.java",
      "lineNumber" : 1511,
      "nativeMethod" : false,
      "className" : "java.util.ArrayList"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invokeAll",
      "fileName" : "SameThreadHierarchicalTestExecutorService.java",
      "lineNumber" : 41,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$executeRecursively$6",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 155,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$310/0x00007f3ef4166be8"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "ThrowableCollector.java",
      "lineNumber" : 73,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$executeRecursively$8",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 141,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "invoke",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$309/0x00007f3ef41669c0"
    }, {
      "classLoaderName" : "app",
      "methodName" : "around",
      "fileName" : "Node.java",
      "lineNumber" : 137,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.Node"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$executeRecursively$9",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 139,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$308/0x00007f3ef4166598"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "ThrowableCollector.java",
      "lineNumber" : 73,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector"
    }, {
      "classLoaderName" : "app",
      "methodName" : "executeRecursively",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 138,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "NodeTestTask.java",
      "lineNumber" : 95,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask"
    }, {
      "classLoaderName" : "app",
      "methodName" : "submit",
      "fileName" : "SameThreadHierarchicalTestExecutorService.java",
      "lineNumber" : 35,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "HierarchicalTestExecutor.java",
      "lineNumber" : 57,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "HierarchicalTestEngine.java",
      "lineNumber" : 54,
      "nativeMethod" : false,
      "className" : "org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "EngineExecutionOrchestrator.java",
      "lineNumber" : 198,
      "nativeMethod" : false,
      "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "EngineExecutionOrchestrator.java",
      "lineNumber" : 169,
      "nativeMethod" : false,
      "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "EngineExecutionOrchestrator.java",
      "lineNumber" : 93,
      "nativeMethod" : false,
      "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
    }, {
      "classLoaderName" : "app",
      "methodName" : "lambda$execute$0",
      "fileName" : "EngineExecutionOrchestrator.java",
      "lineNumber" : 58,
      "nativeMethod" : false,
      "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
    }, {
      "classLoaderName" : "app",
      "methodName" : "accept",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator$$Lambda$259/0x00007f3ef414a330"
    }, {
      "classLoaderName" : "app",
      "methodName" : "withInterceptedStreams",
      "fileName" : "EngineExecutionOrchestrator.java",
      "lineNumber" : 141,
      "nativeMethod" : false,
      "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "EngineExecutionOrchestrator.java",
      "lineNumber" : 57,
      "nativeMethod" : false,
      "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "DefaultLauncher.java",
      "lineNumber" : 103,
      "nativeMethod" : false,
      "className" : "org.junit.platform.launcher.core.DefaultLauncher"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "DefaultLauncher.java",
      "lineNumber" : 85,
      "nativeMethod" : false,
      "className" : "org.junit.platform.launcher.core.DefaultLauncher"
    }, {
      "classLoaderName" : "app",
      "methodName" : "execute",
      "fileName" : "DelegatingLauncher.java",
      "lineNumber" : 47,
      "nativeMethod" : false,
      "className" : "org.junit.platform.launcher.core.DelegatingLauncher"
    }, {
      "methodName" : "processAllTestClasses",
      "fileName" : "JUnitPlatformTestClassProcessor.java",
      "lineNumber" : 124,
      "nativeMethod" : false,
      "className" : "org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor"
    }, {
      "methodName" : "access$000",
      "fileName" : "JUnitPlatformTestClassProcessor.java",
      "lineNumber" : 99,
      "nativeMethod" : false,
      "className" : "org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor"
    }, {
      "methodName" : "stop",
      "fileName" : "JUnitPlatformTestClassProcessor.java",
      "lineNumber" : 94,
      "nativeMethod" : false,
      "className" : "org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor"
    }, {
      "methodName" : "stop",
      "fileName" : "SuiteTestClassProcessor.java",
      "lineNumber" : 63,
      "nativeMethod" : false,
      "className" : "org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke0",
      "fileName" : "NativeMethodAccessorImpl.java",
      "lineNumber" : -2,
      "nativeMethod" : true,
      "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "NativeMethodAccessorImpl.java",
      "lineNumber" : 77,
      "nativeMethod" : false,
      "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "DelegatingMethodAccessorImpl.java",
      "lineNumber" : 43,
      "nativeMethod" : false,
      "className" : "jdk.internal.reflect.DelegatingMethodAccessorImpl"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "invoke",
      "fileName" : "Method.java",
      "lineNumber" : 569,
      "nativeMethod" : false,
      "className" : "java.lang.reflect.Method"
    }, {
      "methodName" : "dispatch",
      "fileName" : "ReflectionDispatch.java",
      "lineNumber" : 36,
      "nativeMethod" : false,
      "className" : "org.gradle.internal.dispatch.ReflectionDispatch"
    }, {
      "methodName" : "dispatch",
      "fileName" : "ReflectionDispatch.java",
      "lineNumber" : 24,
      "nativeMethod" : false,
      "className" : "org.gradle.internal.dispatch.ReflectionDispatch"
    }, {
      "methodName" : "dispatch",
      "fileName" : "ContextClassLoaderDispatch.java",
      "lineNumber" : 33,
      "nativeMethod" : false,
      "className" : "org.gradle.internal.dispatch.ContextClassLoaderDispatch"
    }, {
      "methodName" : "invoke",
      "fileName" : "ProxyDispatchAdapter.java",
      "lineNumber" : 92,
      "nativeMethod" : false,
      "className" : "org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler"
    }, {
      "moduleName" : "jdk.proxy1",
      "methodName" : "stop",
      "lineNumber" : -1,
      "nativeMethod" : false,
      "className" : "jdk.proxy1.$Proxy4"
    }, {
      "methodName" : "run",
      "fileName" : "TestWorker.java",
      "lineNumber" : 200,
      "nativeMethod" : false,
      "className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker$3"
    }, {
      "methodName" : "executeAndMaintainThreadName",
      "fileName" : "TestWorker.java",
      "lineNumber" : 132,
      "nativeMethod" : false,
      "className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker"
    }, {
      "methodName" : "execute",
      "fileName" : "TestWorker.java",
      "lineNumber" : 103,
      "nativeMethod" : false,
      "className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker"
    }, {
      "methodName" : "execute",
      "fileName" : "TestWorker.java",
      "lineNumber" : 63,
      "nativeMethod" : false,
      "className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker"
    }, {
      "methodName" : "execute",
      "fileName" : "ActionExecutionWorker.java",
      "lineNumber" : 56,
      "nativeMethod" : false,
      "className" : "org.gradle.process.internal.worker.child.ActionExecutionWorker"
    }, {
      "methodName" : "call",
      "fileName" : "SystemApplicationClassLoaderWorker.java",
      "lineNumber" : 121,
      "nativeMethod" : false,
      "className" : "org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker"
    }, {
      "methodName" : "call",
      "fileName" : "SystemApplicationClassLoaderWorker.java",
      "lineNumber" : 71,
      "nativeMethod" : false,
      "className" : "org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker"
    }, {
      "classLoaderName" : "app",
      "methodName" : "run",
      "fileName" : "GradleWorkerMain.java",
      "lineNumber" : 69,
      "nativeMethod" : false,
      "className" : "worker.org.gradle.process.internal.worker.GradleWorkerMain"
    }, {
      "classLoaderName" : "app",
      "methodName" : "main",
      "fileName" : "GradleWorkerMain.java",
      "lineNumber" : 74,
      "nativeMethod" : false,
      "className" : "worker.org.gradle.process.internal.worker.GradleWorkerMain"
    } ],
    "lockedMonitors" : [ ],
    "lockedSynchronizers" : [ ]
  }, {
    "threadName" : "Reference Handler",
    "threadId" : 2,
    "blockedTime" : -1,
    "blockedCount" : 1,
    "waitedTime" : -1,
    "waitedCount" : 0,
    "lockOwnerId" : -1,
    "daemon" : true,
    "inNative" : false,
    "suspended" : false,
    "threadState" : "RUNNABLE",
    "priority" : 10,
    "stackTrace" : [ {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "waitForReferencePendingList",
      "fileName" : "Reference.java",
      "lineNumber" : -2,
      "nativeMethod" : true,
      "className" : "java.lang.ref.Reference"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "processPendingReferences",
      "fileName" : "Reference.java",
      "lineNumber" : 253,
      "nativeMethod" : false,
      "className" : "java.lang.ref.Reference"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "run",
      "fileName" : "Reference.java",
      "lineNumber" : 215,
      "nativeMethod" : false,
      "className" : "java.lang.ref.Reference$ReferenceHandler"
    } ],
    "lockedMonitors" : [ ],
    "lockedSynchronizers" : [ ]
  }, {
    "threadName" : "Finalizer",
    "threadId" : 3,
    "blockedTime" : -1,
    "blockedCount" : 1,
    "waitedTime" : -1,
    "waitedCount" : 2,
    "lockName" : "java.lang.ref.ReferenceQueue$Lock@6f0fe11f",
    "lockOwnerId" : -1,
    "daemon" : true,
    "inNative" : false,
    "suspended" : false,
    "threadState" : "WAITING",
    "priority" : 8,
    "stackTrace" : [ {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "wait",
      "lineNumber" : -2,
      "nativeMethod" : true,
      "className" : "java.lang.Object"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "remove",
      "fileName" : "ReferenceQueue.java",
      "lineNumber" : 155,
      "nativeMethod" : false,
      "className" : "java.lang.ref.ReferenceQueue"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "remove",
      "fileName" : "ReferenceQueue.java",
      "lineNumber" : 176,
      "nativeMethod" : false,
      "className" : "java.lang.ref.ReferenceQueue"
    }, {
      "moduleName" : "java.base",
      "moduleVersion" : "17.0.12",
      "methodName" : "run",
      "fileName" : "Finalizer.java",
      "lineNumber" : 172,
      "nativeMethod" : false,
      "className" : "java.lang.ref.Finalizer$FinalizerThread"
    } ],
    "lockedMonitors" : [ ],
    "lockedSynchronizers" : [ ],
    "lockInfo" : {
      "className" : "java.lang.ref.ReferenceQueue$Lock",
      "identityHashCode" : 1863311647
    }
  } ]
}

响应结构

响应包含 JVM 线程的详细信息。 下表描述了响应的结构:spring-doc.cn

路径 类型 描述

threadsspring-doc.cn

Arrayspring-doc.cn

JVM 的线程。spring-doc.cn

threads.[].blockedCountspring-doc.cn

Numberspring-doc.cn

线程被阻塞的总次数。spring-doc.cn

threads.[].blockedTimespring-doc.cn

Numberspring-doc.cn

线程已阻塞的时间(以毫秒为单位)。如果禁用了线程争用监视,则为 -1。spring-doc.cn

threads.[].daemonspring-doc.cn

Booleanspring-doc.cn

线程是否为守护程序线程。仅在 Java 9 或更高版本上可用。spring-doc.cn

threads.[].inNativespring-doc.cn

Booleanspring-doc.cn

线程是否正在执行本机代码。spring-doc.cn

threads.[].lockNamespring-doc.cn

Stringspring-doc.cn

线程被阻塞的对象的说明(如果有)。spring-doc.cn

threads.[].lockInfospring-doc.cn

Objectspring-doc.cn

线程被阻塞等待的对象。spring-doc.cn

threads.[].lockInfo.classNamespring-doc.cn

Stringspring-doc.cn

lock 对象的完全限定类名。spring-doc.cn

threads.[].lockInfo.identityHashCodespring-doc.cn

Numberspring-doc.cn

lock 对象的标识哈希码。spring-doc.cn

threads.[].lockedMonitorsspring-doc.cn

Arrayspring-doc.cn

此线程锁定的监视器(如果有)spring-doc.cn

threads.[].lockedMonitors.[].classNamespring-doc.cn

Stringspring-doc.cn

lock 对象的类名。spring-doc.cn

threads.[].lockedMonitors.[].identityHashCodespring-doc.cn

Numberspring-doc.cn

lock 对象的标识哈希码。spring-doc.cn

threads.[].lockedMonitors.[].lockedStackDepthspring-doc.cn

Numberspring-doc.cn

显示器被锁定的堆栈深度。spring-doc.cn

threads.[].lockedMonitors.[].lockedStackFramespring-doc.cn

Objectspring-doc.cn

锁定显示器的堆栈帧。spring-doc.cn

threads.[].lockedSynchronizersspring-doc.cn

Arrayspring-doc.cn

此线程锁定的同步器。spring-doc.cn

threads.[].lockedSynchronizers.[].classNamespring-doc.cn

Stringspring-doc.cn

锁定同步器的类名。spring-doc.cn

threads.[].lockedSynchronizers.[].identityHashCodespring-doc.cn

Numberspring-doc.cn

锁定同步器的身份哈希码。spring-doc.cn

threads.[].lockOwnerIdspring-doc.cn

Numberspring-doc.cn

拥有线程被阻塞的对象的线程的 ID。 如果线程未被阻塞。-1spring-doc.cn

threads.[].lockOwnerNamespring-doc.cn

Stringspring-doc.cn

拥有阻塞线程的对象(如果有)的线程的名称。spring-doc.cn

threads.[].priorityspring-doc.cn

Numberspring-doc.cn

线程的优先级。仅在 Java 9 或更高版本上可用。spring-doc.cn

threads.[].stackTracespring-doc.cn

Arrayspring-doc.cn

线程的堆栈跟踪。spring-doc.cn

threads.[].stackTrace.[].classLoaderNamespring-doc.cn

Stringspring-doc.cn

包含此条目标识的执行点(如果有)的类的类加载器的名称。仅在 Java 9 或更高版本上可用。spring-doc.cn

threads.[].stackTrace.[].classNamespring-doc.cn

Stringspring-doc.cn

包含此条目标识的执行点的类的名称。spring-doc.cn

threads.[].stackTrace.[].fileNamespring-doc.cn

Stringspring-doc.cn

包含此条目标识的执行点的源文件的名称(如果有)。spring-doc.cn

threads.[].stackTrace.[].lineNumberspring-doc.cn

Numberspring-doc.cn

此条目标识的执行点的行号。如果未知,则为阴性。spring-doc.cn

threads.[].stackTrace.[].methodNamespring-doc.cn

Stringspring-doc.cn

方法的名称。spring-doc.cn

threads.[].stackTrace.[].moduleNamespring-doc.cn

Stringspring-doc.cn

包含此条目标识的执行点的模块的名称(如果有)。仅在 Java 9 或更高版本上可用。spring-doc.cn

threads.[].stackTrace.[].moduleVersionspring-doc.cn

Stringspring-doc.cn

包含此条目标识的执行点的模块版本(如果有)。仅在 Java 9 或更高版本上可用。spring-doc.cn

threads.[].stackTrace.[].nativeMethodspring-doc.cn

Booleanspring-doc.cn

执行点是否为本机方法。spring-doc.cn

threads.[].suspendedspring-doc.cn

Booleanspring-doc.cn

线程是否处于暂停状态。spring-doc.cn

threads.[].threadIdspring-doc.cn

Numberspring-doc.cn

线程的 ID。spring-doc.cn

threads.[].threadNamespring-doc.cn

Stringspring-doc.cn

线程的名称。spring-doc.cn

threads.[].threadStatespring-doc.cn

Stringspring-doc.cn

线程的状态 (、 、 )。NEWRUNNABLEBLOCKEDWAITINGTIMED_WAITINGTERMINATEDspring-doc.cn

threads.[].waitedCountspring-doc.cn

Numberspring-doc.cn

线程等待通知的总次数。spring-doc.cn

threads.[].waitedTimespring-doc.cn

Numberspring-doc.cn

线程等待所花费的时间(以毫秒为单位)。如果禁用了线程争用监控,则为 -1spring-doc.cn

路径 类型 描述

threadsspring-doc.cn

Arrayspring-doc.cn

JVM 的线程。spring-doc.cn

threads.[].blockedCountspring-doc.cn

Numberspring-doc.cn

线程被阻塞的总次数。spring-doc.cn

threads.[].blockedTimespring-doc.cn

Numberspring-doc.cn

线程已阻塞的时间(以毫秒为单位)。如果禁用了线程争用监视,则为 -1。spring-doc.cn

threads.[].daemonspring-doc.cn

Booleanspring-doc.cn

线程是否为守护程序线程。仅在 Java 9 或更高版本上可用。spring-doc.cn

threads.[].inNativespring-doc.cn

Booleanspring-doc.cn

线程是否正在执行本机代码。spring-doc.cn

threads.[].lockNamespring-doc.cn

Stringspring-doc.cn

线程被阻塞的对象的说明(如果有)。spring-doc.cn

threads.[].lockInfospring-doc.cn

Objectspring-doc.cn

线程被阻塞等待的对象。spring-doc.cn

threads.[].lockInfo.classNamespring-doc.cn

Stringspring-doc.cn

lock 对象的完全限定类名。spring-doc.cn

threads.[].lockInfo.identityHashCodespring-doc.cn

Numberspring-doc.cn

lock 对象的标识哈希码。spring-doc.cn

threads.[].lockedMonitorsspring-doc.cn

Arrayspring-doc.cn

此线程锁定的监视器(如果有)spring-doc.cn

threads.[].lockedMonitors.[].classNamespring-doc.cn

Stringspring-doc.cn

lock 对象的类名。spring-doc.cn

threads.[].lockedMonitors.[].identityHashCodespring-doc.cn

Numberspring-doc.cn

lock 对象的标识哈希码。spring-doc.cn

threads.[].lockedMonitors.[].lockedStackDepthspring-doc.cn

Numberspring-doc.cn

显示器被锁定的堆栈深度。spring-doc.cn

threads.[].lockedMonitors.[].lockedStackFramespring-doc.cn

Objectspring-doc.cn

锁定显示器的堆栈帧。spring-doc.cn

threads.[].lockedSynchronizersspring-doc.cn

Arrayspring-doc.cn

此线程锁定的同步器。spring-doc.cn

threads.[].lockedSynchronizers.[].classNamespring-doc.cn

Stringspring-doc.cn

锁定同步器的类名。spring-doc.cn

threads.[].lockedSynchronizers.[].identityHashCodespring-doc.cn

Numberspring-doc.cn

锁定同步器的身份哈希码。spring-doc.cn

threads.[].lockOwnerIdspring-doc.cn

Numberspring-doc.cn

拥有线程被阻塞的对象的线程的 ID。 如果线程未被阻塞。-1spring-doc.cn

threads.[].lockOwnerNamespring-doc.cn

Stringspring-doc.cn

拥有阻塞线程的对象(如果有)的线程的名称。spring-doc.cn

threads.[].priorityspring-doc.cn

Numberspring-doc.cn

线程的优先级。仅在 Java 9 或更高版本上可用。spring-doc.cn

threads.[].stackTracespring-doc.cn

Arrayspring-doc.cn

线程的堆栈跟踪。spring-doc.cn

threads.[].stackTrace.[].classLoaderNamespring-doc.cn

Stringspring-doc.cn

包含此条目标识的执行点(如果有)的类的类加载器的名称。仅在 Java 9 或更高版本上可用。spring-doc.cn

threads.[].stackTrace.[].classNamespring-doc.cn

Stringspring-doc.cn

包含此条目标识的执行点的类的名称。spring-doc.cn

threads.[].stackTrace.[].fileNamespring-doc.cn

Stringspring-doc.cn

包含此条目标识的执行点的源文件的名称(如果有)。spring-doc.cn

threads.[].stackTrace.[].lineNumberspring-doc.cn

Numberspring-doc.cn

此条目标识的执行点的行号。如果未知,则为阴性。spring-doc.cn

threads.[].stackTrace.[].methodNamespring-doc.cn

Stringspring-doc.cn

方法的名称。spring-doc.cn

threads.[].stackTrace.[].moduleNamespring-doc.cn

Stringspring-doc.cn

包含此条目标识的执行点的模块的名称(如果有)。仅在 Java 9 或更高版本上可用。spring-doc.cn

threads.[].stackTrace.[].moduleVersionspring-doc.cn

Stringspring-doc.cn

包含此条目标识的执行点的模块版本(如果有)。仅在 Java 9 或更高版本上可用。spring-doc.cn

threads.[].stackTrace.[].nativeMethodspring-doc.cn

Booleanspring-doc.cn

执行点是否为本机方法。spring-doc.cn

threads.[].suspendedspring-doc.cn

Booleanspring-doc.cn

线程是否处于暂停状态。spring-doc.cn

threads.[].threadIdspring-doc.cn

Numberspring-doc.cn

线程的 ID。spring-doc.cn

threads.[].threadNamespring-doc.cn

Stringspring-doc.cn

线程的名称。spring-doc.cn

threads.[].threadStatespring-doc.cn

Stringspring-doc.cn

线程的状态 (、 、 )。NEWRUNNABLEBLOCKEDWAITINGTIMED_WAITINGTERMINATEDspring-doc.cn

threads.[].waitedCountspring-doc.cn

Numberspring-doc.cn

线程等待通知的总次数。spring-doc.cn

threads.[].waitedTimespring-doc.cn

Numberspring-doc.cn

线程等待所花费的时间(以毫秒为单位)。如果禁用了线程争用监控,则为 -1spring-doc.cn

将线程转储作为文本检索

要将线程转储作为文本检索,请向该 accepts ,如以下基于 curl 的示例所示:GET/actuator/threaddumptext/plainspring-doc.cn

$ curl 'http://localhost:8080/actuator/threaddump' -i -X GET \
    -H 'Accept: text/plain'

生成的响应类似于以下内容:spring-doc.cn

HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 54207

2024-10-03 19:30:40
Full thread dump OpenJDK 64-Bit Server VM (17.0.12+10-LTS mixed mode, sharing):

"Test worker" - Thread t@1
   java.lang.Thread.State: RUNNABLE
	at [email protected]/sun.management.ThreadImpl.dumpThreads0(Native Method)
	at [email protected]/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:528)
	at [email protected]/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:516)
	at app//org.springframework.boot.actuate.management.ThreadDumpEndpoint.getFormattedThreadDump(ThreadDumpEndpoint.java:52)
	at app//org.springframework.boot.actuate.management.ThreadDumpEndpoint.textThreadDump(ThreadDumpEndpoint.java:48)
	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at [email protected]/java.lang.reflect.Method.invoke(Method.java:569)
	at app//org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:281)
	at app//org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.invoke(ReflectiveOperationInvoker.java:74)
	at app//org.springframework.boot.actuate.endpoint.annotation.AbstractDiscoveredOperation.invoke(AbstractDiscoveredOperation.java:60)
	at app//org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$ServletWebOperationAdapter.handle(AbstractWebMvcEndpointHandlerMapping.java:327)
	at app//org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(AbstractWebMvcEndpointHandlerMapping.java:434)
	at jdk.internal.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
	at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at [email protected]/java.lang.reflect.Method.invoke(Method.java:569)
	at app//org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255)
	at app//org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188)
	at app//org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
	at app//org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:986)
	at app//org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:891)
	at app//org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at app//org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088)
	at app//org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:978)
	at app//org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
	at app//org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
	at app//jakarta.servlet.http.HttpServlet.service(HttpServlet.java:527)
	at app//org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
	at app//org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:72)
	at app//jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
	at app//org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:165)
	at app//org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:132)
	at app//org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:201)
	at app//org.springframework.test.web.servlet.assertj.MockMvcTester.getMvcResultOrFailure(MockMvcTester.java:387)
	at app//org.springframework.test.web.servlet.assertj.MockMvcTester.perform(MockMvcTester.java:376)
	at app//org.springframework.test.web.servlet.assertj.MockMvcTester.exchange(MockMvcTester.java:402)
	at app//org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder.exchange(MockMvcTester.java:461)
	at app//org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder.assertThat(MockMvcTester.java:487)
	at app//org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder.assertThat(MockMvcTester.java:426)
	at app//org.assertj.core.api.AssertionsForInterfaceTypes.assertThat(AssertionsForInterfaceTypes.java:82)
	at app//org.assertj.core.api.Assertions.assertThat(Assertions.java:3371)
	at app//org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.ThreadDumpEndpointDocumentationTests.textThreadDump(ThreadDumpEndpointDocumentationTests.java:180)
	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at [email protected]/java.lang.reflect.Method.invoke(Method.java:569)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:766)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda$204/0x00007f3ef413f288.apply(Unknown Source)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall$$Lambda$205/0x00007f3ef413f6a8.apply(Unknown Source)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$$Lambda$497/0x00007f3ef41fcac0.apply(Unknown Source)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$8(TestMethodTestDescriptor.java:217)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda$1070/0x00007f3ef4630dc0.execute(Unknown Source)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$310/0x00007f3ef4166be8.execute(Unknown Source)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$309/0x00007f3ef41669c0.invoke(Unknown Source)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$308/0x00007f3ef4166598.execute(Unknown Source)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda$314/0x00007f3ef4167700.accept(Unknown Source)
	at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$310/0x00007f3ef4166be8.execute(Unknown Source)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$309/0x00007f3ef41669c0.invoke(Unknown Source)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$308/0x00007f3ef4166598.execute(Unknown Source)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda$314/0x00007f3ef4167700.accept(Unknown Source)
	at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$310/0x00007f3ef4166be8.execute(Unknown Source)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$309/0x00007f3ef41669c0.invoke(Unknown Source)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$308/0x00007f3ef4166598.execute(Unknown Source)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator$$Lambda$259/0x00007f3ef414a330.accept(Unknown Source)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
	at app//org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:124)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:99)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:63)
	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at [email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at [email protected]/java.lang.reflect.Method.invoke(Method.java:569)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92)
	at jdk.proxy1/jdk.proxy1.$Proxy4.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:200)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:132)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:103)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:63)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:121)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)

   Locked ownable synchronizers:
	- None

"Reference Handler" - Thread t@2
   java.lang.Thread.State: RUNNABLE
	at [email protected]/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
	at [email protected]/java.lang.ref.Reference.processPendingReferences(Reference.java:253)
	at [email protected]/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:215)

   Locked ownable synchronizers:
	- None

"Finalizer" - Thread t@3
   java.lang.Thread.State: WAITING
	at [email protected]/java.lang.Object.wait(Native Method)
	- waiting on <6f0fe11f> (a java.lang.ref.ReferenceQueue$Lock)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
	at [email protected]/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:172)

   Locked ownable synchronizers:
	- None

"Signal Dispatcher" - Thread t@4
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"Common-Cleaner" - Thread t@11
   java.lang.Thread.State: TIMED_WAITING
	at [email protected]/java.lang.Object.wait(Native Method)
	- waiting on <688ff23e> (a java.lang.ref.ReferenceQueue$Lock)
	at [email protected]/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
	at [email protected]/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140)
	at [email protected]/java.lang.Thread.run(Thread.java:840)
	at [email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)

   Locked ownable synchronizers:
	- None

"Notification Thread" - Thread t@12
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"/127.0.0.1:44192 to /127.0.0.1:44313 workers" - Thread t@14
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <5af75e60> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at org.gradle.internal.remote.internal.hub.queue.EndPointQueue.take(EndPointQueue.java:49)
	at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:403)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- Locked <3059cbc> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"/127.0.0.1:44192 to /127.0.0.1:44313 workers Thread 2" - Thread t@15
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <52a7893a> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at org.gradle.internal.remote.internal.hub.queue.EndPointQueue.take(EndPointQueue.java:49)
	at org.gradle.internal.remote.internal.hub.MessageHub$ConnectionDispatch.run(MessageHub.java:322)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- Locked <37d4349f> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"/127.0.0.1:44192 to /127.0.0.1:44313 workers Thread 3" - Thread t@16
   java.lang.Thread.State: RUNNABLE
	at [email protected]/sun.nio.ch.EPoll.wait(Native Method)
	at [email protected]/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:118)
	at [email protected]/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
	- locked <42b09d68> (a sun.nio.ch.Util$2)
	- locked <35ddc99b> (a sun.nio.ch.EPollSelectorImpl)
	at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
	at org.gradle.internal.remote.internal.inet.SocketConnection$SocketInputStream.read(SocketConnection.java:190)
	at com.esotericsoftware.kryo.io.Input.fill(Input.java:146)
	at com.esotericsoftware.kryo.io.Input.require(Input.java:178)
	at com.esotericsoftware.kryo.io.Input.readByte(Input.java:295)
	at org.gradle.internal.serialize.kryo.KryoBackedDecoder.readByte(KryoBackedDecoder.java:88)
	at org.gradle.internal.remote.internal.hub.InterHubMessageSerializer$MessageReader.read(InterHubMessageSerializer.java:64)
	at org.gradle.internal.remote.internal.hub.InterHubMessageSerializer$MessageReader.read(InterHubMessageSerializer.java:52)
	at org.gradle.internal.remote.internal.inet.SocketConnection.receive(SocketConnection.java:86)
	at org.gradle.internal.remote.internal.hub.MessageHub$ConnectionReceive.run(MessageHub.java:270)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:48)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- Locked <3ee37e5a> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"process reaper" - Thread t@20
   java.lang.Thread.State: TIMED_WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <5b5d7843> (a java.util.concurrent.SynchronousQueue$TransferStack)
	at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
	at [email protected]/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401)
	at [email protected]/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1061)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"Attach Listener" - Thread t@21
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None

"HikariPool-1 housekeeper" - Thread t@29
   java.lang.Thread.State: TIMED_WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <1dc0f59d> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"boundedElastic-evictor-1" - Thread t@40
   java.lang.Thread.State: TIMED_WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <4a80ebe> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"reactor-http-epoll-1" - Thread t@41
   java.lang.Thread.State: RUNNABLE
	at app//io.netty.channel.epoll.Native.epollWait(Native Method)
	at app//io.netty.channel.epoll.Native.epollWait(Native.java:220)
	at app//io.netty.channel.epoll.Native.epollWait(Native.java:213)
	at app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:308)
	at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:365)
	at app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
	at app//io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at app//io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"server" - Thread t@42
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <5fe29ea1> (a java.util.concurrent.CountDownLatch$Sync)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1047)
	at [email protected]/java.util.concurrent.CountDownLatch.await(CountDownLatch.java:230)
	at app//reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:91)
	at app//reactor.core.publisher.Mono.block(Mono.java:1779)
	at app//org.springframework.boot.web.embedded.netty.NettyWebServer$1.run(NettyWebServer.java:214)

   Locked ownable synchronizers:
	- None

"reactor-http-epoll-2" - Thread t@43
   java.lang.Thread.State: RUNNABLE
	at app//io.netty.channel.epoll.Native.epollWait(Native Method)
	at app//io.netty.channel.epoll.Native.epollWait(Native.java:220)
	at app//io.netty.channel.epoll.Native.epollWait(Native.java:213)
	at app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:308)
	at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:365)
	at app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
	at app//io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at app//io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"reactor-http-epoll-3" - Thread t@44
   java.lang.Thread.State: RUNNABLE
	at app//io.netty.channel.epoll.Native.epollWait(Native Method)
	at app//io.netty.channel.epoll.Native.epollWait(Native.java:220)
	at app//io.netty.channel.epoll.Native.epollWait(Native.java:213)
	at app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:308)
	at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:365)
	at app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
	at app//io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at app//io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"reactor-http-epoll-4" - Thread t@45
   java.lang.Thread.State: RUNNABLE
	at app//io.netty.channel.epoll.Native.epollWait(Native Method)
	at app//io.netty.channel.epoll.Native.epollWait(Native.java:220)
	at app//io.netty.channel.epoll.Native.epollWait(Native.java:213)
	at app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:308)
	at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:365)
	at app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
	at app//io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at app//io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"boundedElastic-1" - Thread t@46
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <6fcd6a7e> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"Catalina-utility-1" - Thread t@48
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <753b0607> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"Catalina-utility-2" - Thread t@49
   java.lang.Thread.State: TIMED_WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <753b0607> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"container-0" - Thread t@50
   java.lang.Thread.State: TIMED_WAITING
	at [email protected]/java.lang.Thread.sleep(Native Method)
	at app//org.apache.catalina.core.StandardServer.await(StandardServer.java:520)
	at app//org.springframework.boot.web.embedded.tomcat.TomcatWebServer$1.run(TomcatWebServer.java:219)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-exec-1" - Thread t@51
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <31222be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-exec-2" - Thread t@52
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <31222be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-exec-3" - Thread t@53
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <31222be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-exec-4" - Thread t@54
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <31222be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-exec-5" - Thread t@55
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <31222be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-exec-6" - Thread t@56
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <31222be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-exec-7" - Thread t@57
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <31222be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-exec-8" - Thread t@58
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <31222be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-exec-9" - Thread t@59
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <31222be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-exec-10" - Thread t@60
   java.lang.Thread.State: WAITING
	at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
	- parking to wait for <31222be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
	at [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
	at [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
	at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
	at [email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:117)
	at app//org.apache.tomcat.util.threads.TaskQueue.take(TaskQueue.java:33)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1114)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1175)
	at app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-Poller" - Thread t@61
   java.lang.Thread.State: RUNNABLE
	at [email protected]/sun.nio.ch.EPoll.wait(Native Method)
	at [email protected]/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:118)
	at [email protected]/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
	- locked <7a7ebcf3> (a sun.nio.ch.Util$2)
	- locked <7e64a758> (a sun.nio.ch.EPollSelectorImpl)
	at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:141)
	at app//org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:755)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- None

"http-nio-auto-1-Acceptor" - Thread t@62
   java.lang.Thread.State: RUNNABLE
	at [email protected]/sun.nio.ch.Net.accept(Native Method)
	at [email protected]/sun.nio.ch.ServerSocketChannelImpl.implAccept(ServerSocketChannelImpl.java:425)
	at [email protected]/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:391)
	at app//org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:518)
	at app//org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:71)
	at app//org.apache.tomcat.util.net.Acceptor.run(Acceptor.java:128)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- Locked <53c29dad> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"test-1" - Thread t@69
   java.lang.Thread.State: RUNNABLE
	at [email protected]/java.lang.Thread.start0(Native Method)
	at [email protected]/java.lang.Thread.start(Thread.java:809)
	- locked <731fd11e> (a java.lang.Thread)
	at app//org.springframework.core.task.SimpleAsyncTaskExecutor.doExecute(SimpleAsyncTaskExecutor.java:311)
	at app//org.springframework.scheduling.concurrent.SimpleAsyncTaskScheduler.doExecute(SimpleAsyncTaskScheduler.java:213)
	at app//org.springframework.core.task.SimpleAsyncTaskExecutor.execute(SimpleAsyncTaskExecutor.java:267)
	at app//org.springframework.core.task.SimpleAsyncTaskExecutor.execute(SimpleAsyncTaskExecutor.java:238)
	at app//org.springframework.scheduling.concurrent.SimpleAsyncTaskScheduler.execute(SimpleAsyncTaskScheduler.java:241)
	at app//org.springframework.scheduling.concurrent.SimpleAsyncTaskScheduler.lambda$scheduledTask$1(SimpleAsyncTaskScheduler.java:223)
	at app//org.springframework.scheduling.concurrent.SimpleAsyncTaskScheduler$$Lambda$2290/0x00007f3ef4c63888.run(Unknown Source)
	at app//org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
	at app//org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:96)
	at [email protected]/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at [email protected]/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at [email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at [email protected]/java.lang.Thread.run(Thread.java:840)

   Locked ownable synchronizers:
	- Locked <7114def7> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"test-1093" - Thread t@1167
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
	- None