跳到主要内容
版本:4.0.2

Thread Dump(threaddump

QWen Max 中英对照 Thread Dump (threaddump) Thread Dump (threaddump)

线程转储(threaddump)

threaddump 端点提供应用程序 JVM 的线程转储。

以 JSON 格式获取线程转储

要以 JSON 格式获取线程转储,请向 /actuator/threaddump 发起一个 GET 请求,并设置合适的 Accept 头,如下列基于 curl 的示例所示:

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

得到的响应类似于以下内容:

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

{
"threads" : [ {
"blockedCount" : 24,
"blockedTime" : -1,
"daemon" : false,
"inNative" : false,
"lockOwnerId" : -1,
"lockedMonitors" : [ ],
"lockedSynchronizers" : [ ],
"priority" : 5,
"stackTrace" : [ {
"className" : "sun.management.ThreadImpl",
"fileName" : "ThreadImpl.java",
"lineNumber" : -2,
"methodName" : "dumpThreads0",
"moduleName" : "java.management",
"moduleVersion" : "25.0.2",
"nativeMethod" : true
}, {
"className" : "sun.management.ThreadImpl",
"fileName" : "ThreadImpl.java",
"lineNumber" : 505,
"methodName" : "dumpAllThreads",
"moduleName" : "java.management",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "sun.management.ThreadImpl",
"fileName" : "ThreadImpl.java",
"lineNumber" : 493,
"methodName" : "dumpAllThreads",
"moduleName" : "java.management",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.boot.actuate.management.ThreadDumpEndpoint",
"fileName" : "ThreadDumpEndpoint.java",
"lineNumber" : 52,
"methodName" : "getFormattedThreadDump",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.boot.actuate.management.ThreadDumpEndpoint",
"fileName" : "ThreadDumpEndpoint.java",
"lineNumber" : 43,
"methodName" : "threadDump",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.DirectMethodHandle$Holder",
"fileName" : "DirectMethodHandle$Holder",
"lineNumber" : -1,
"methodName" : "invokeVirtual",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.LambdaForm$MH/0x000000004e045c00",
"fileName" : "LambdaForm$MH",
"lineNumber" : -1,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.Invokers$Holder",
"fileName" : "Invokers$Holder",
"lineNumber" : -1,
"methodName" : "invokeExact_MT",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "jdk.internal.reflect.DirectMethodHandleAccessor",
"fileName" : "DirectMethodHandleAccessor.java",
"lineNumber" : 154,
"methodName" : "invokeImpl",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "jdk.internal.reflect.DirectMethodHandleAccessor",
"fileName" : "DirectMethodHandleAccessor.java",
"lineNumber" : 104,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.reflect.Method",
"fileName" : "Method.java",
"lineNumber" : 565,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.util.ReflectionUtils",
"fileName" : "ReflectionUtils.java",
"lineNumber" : 281,
"methodName" : "invokeMethod",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker",
"fileName" : "ReflectiveOperationInvoker.java",
"lineNumber" : 76,
"methodName" : "invoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.boot.actuate.endpoint.annotation.AbstractDiscoveredOperation",
"fileName" : "AbstractDiscoveredOperation.java",
"lineNumber" : 62,
"methodName" : "invoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.boot.webmvc.actuate.endpoint.web.AbstractWebMvcEndpointHandlerMapping$ServletWebOperationAdapter",
"fileName" : "AbstractWebMvcEndpointHandlerMapping.java",
"lineNumber" : 328,
"methodName" : "handle",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.boot.webmvc.actuate.endpoint.web.AbstractWebMvcEndpointHandlerMapping$OperationHandler",
"fileName" : "AbstractWebMvcEndpointHandlerMapping.java",
"lineNumber" : 457,
"methodName" : "handle",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.DirectMethodHandle$Holder",
"fileName" : "DirectMethodHandle$Holder",
"lineNumber" : -1,
"methodName" : "invokeSpecial",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.LambdaForm$MH/0x000000004e07d400",
"fileName" : "LambdaForm$MH",
"lineNumber" : -1,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.LambdaForm$MH/0x000000004e07d800",
"fileName" : "LambdaForm$MH",
"lineNumber" : -1,
"methodName" : "invokeExact_MT",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "jdk.internal.reflect.DirectMethodHandleAccessor",
"fileName" : "DirectMethodHandleAccessor.java",
"lineNumber" : 156,
"methodName" : "invokeImpl",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "jdk.internal.reflect.DirectMethodHandleAccessor",
"fileName" : "DirectMethodHandleAccessor.java",
"lineNumber" : 104,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.reflect.Method",
"fileName" : "Method.java",
"lineNumber" : 565,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.method.support.InvocableHandlerMethod",
"fileName" : "InvocableHandlerMethod.java",
"lineNumber" : 258,
"methodName" : "doInvoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.method.support.InvocableHandlerMethod",
"fileName" : "InvocableHandlerMethod.java",
"lineNumber" : 190,
"methodName" : "invokeForRequest",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod",
"fileName" : "ServletInvocableHandlerMethod.java",
"lineNumber" : 117,
"methodName" : "invokeAndHandle",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter",
"fileName" : "RequestMappingHandlerAdapter.java",
"lineNumber" : 934,
"methodName" : "invokeHandlerMethod",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter",
"fileName" : "RequestMappingHandlerAdapter.java",
"lineNumber" : 853,
"methodName" : "handleInternal",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter",
"fileName" : "AbstractHandlerMethodAdapter.java",
"lineNumber" : 86,
"methodName" : "handle",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.servlet.DispatcherServlet",
"fileName" : "DispatcherServlet.java",
"lineNumber" : 963,
"methodName" : "doDispatch",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.servlet.DispatcherServlet",
"fileName" : "DispatcherServlet.java",
"lineNumber" : 866,
"methodName" : "doService",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.servlet.FrameworkServlet",
"fileName" : "FrameworkServlet.java",
"lineNumber" : 1003,
"methodName" : "processRequest",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.servlet.FrameworkServlet",
"fileName" : "FrameworkServlet.java",
"lineNumber" : 892,
"methodName" : "doGet",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "jakarta.servlet.http.HttpServlet",
"fileName" : "HttpServlet.java",
"lineNumber" : 622,
"methodName" : "service",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.web.servlet.FrameworkServlet",
"fileName" : "FrameworkServlet.java",
"lineNumber" : 874,
"methodName" : "service",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.test.web.servlet.TestDispatcherServlet",
"fileName" : "TestDispatcherServlet.java",
"lineNumber" : 72,
"methodName" : "service",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "jakarta.servlet.http.HttpServlet",
"fileName" : "HttpServlet.java",
"lineNumber" : 710,
"methodName" : "service",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.mock.web.MockFilterChain$ServletFilterProxy",
"fileName" : "MockFilterChain.java",
"lineNumber" : 160,
"methodName" : "doFilter",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.mock.web.MockFilterChain",
"fileName" : "MockFilterChain.java",
"lineNumber" : 127,
"methodName" : "doFilter",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.test.web.servlet.MockMvc",
"fileName" : "MockMvc.java",
"lineNumber" : 199,
"methodName" : "perform",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.test.web.servlet.assertj.MockMvcTester",
"fileName" : "MockMvcTester.java",
"lineNumber" : 386,
"methodName" : "getMvcResultOrFailure",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.test.web.servlet.assertj.MockMvcTester",
"fileName" : "MockMvcTester.java",
"lineNumber" : 375,
"methodName" : "perform",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.test.web.servlet.assertj.MockMvcTester",
"fileName" : "MockMvcTester.java",
"lineNumber" : 401,
"methodName" : "exchange",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder",
"fileName" : "MockMvcTester.java",
"lineNumber" : 460,
"methodName" : "exchange",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder",
"fileName" : "MockMvcTester.java",
"lineNumber" : 486,
"methodName" : "assertThat",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder",
"fileName" : "MockMvcTester.java",
"lineNumber" : 425,
"methodName" : "assertThat",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.assertj.core.api.AssertionsForInterfaceTypes",
"fileName" : "AssertionsForInterfaceTypes.java",
"lineNumber" : 82,
"methodName" : "assertThat",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.assertj.core.api.Assertions",
"fileName" : "Assertions.java",
"lineNumber" : 3417,
"methodName" : "assertThat",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.springframework.boot.actuate.docs.management.ThreadDumpEndpointDocumentationTests",
"fileName" : "ThreadDumpEndpointDocumentationTests.java",
"lineNumber" : 65,
"methodName" : "jsonThreadDump",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.LambdaForm$DMH/0x000000004e5fcc00",
"fileName" : "LambdaForm$DMH",
"lineNumber" : -1,
"methodName" : "invokeVirtual",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.LambdaForm$MH/0x000000004e09c800",
"fileName" : "LambdaForm$MH",
"lineNumber" : -1,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.Invokers$Holder",
"fileName" : "Invokers$Holder",
"lineNumber" : -1,
"methodName" : "invokeExact_MT",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "jdk.internal.reflect.DirectMethodHandleAccessor",
"fileName" : "DirectMethodHandleAccessor.java",
"lineNumber" : 154,
"methodName" : "invokeImpl",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "jdk.internal.reflect.DirectMethodHandleAccessor",
"fileName" : "DirectMethodHandleAccessor.java",
"lineNumber" : 104,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.reflect.Method",
"fileName" : "Method.java",
"lineNumber" : 565,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.commons.util.ReflectionUtils",
"fileName" : "ReflectionUtils.java",
"lineNumber" : 701,
"methodName" : "invokeMethod",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.commons.support.ReflectionSupport",
"fileName" : "ReflectionSupport.java",
"lineNumber" : 502,
"methodName" : "invokeMethod",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.support.MethodReflectionUtils",
"fileName" : "MethodReflectionUtils.java",
"lineNumber" : 45,
"methodName" : "invoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.MethodInvocation",
"fileName" : "MethodInvocation.java",
"lineNumber" : 61,
"methodName" : "proceed",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation",
"fileName" : "InvocationInterceptorChain.java",
"lineNumber" : 124,
"methodName" : "proceed",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.extension.TimeoutExtension",
"fileName" : "TimeoutExtension.java",
"lineNumber" : 163,
"methodName" : "intercept",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.extension.TimeoutExtension",
"fileName" : "TimeoutExtension.java",
"lineNumber" : 148,
"methodName" : "interceptTestableMethod",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.extension.TimeoutExtension",
"fileName" : "TimeoutExtension.java",
"lineNumber" : 86,
"methodName" : "interceptTestMethod",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda/0x000000004e166a68",
"lineNumber" : -1,
"methodName" : "apply",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall",
"fileName" : "InterceptingExecutableInvoker.java",
"lineNumber" : 123,
"methodName" : "lambda$ofVoidMethod$0",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall$$Lambda/0x000000004e6075b0",
"lineNumber" : -1,
"methodName" : "apply",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker",
"fileName" : "InterceptingExecutableInvoker.java",
"lineNumber" : 105,
"methodName" : "lambda$invoke$0",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$$Lambda/0x000000004e604cd0",
"lineNumber" : -1,
"methodName" : "apply",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation",
"fileName" : "InvocationInterceptorChain.java",
"lineNumber" : 99,
"methodName" : "proceed",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InvocationInterceptorChain",
"fileName" : "InvocationInterceptorChain.java",
"lineNumber" : 66,
"methodName" : "proceed",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InvocationInterceptorChain",
"fileName" : "InvocationInterceptorChain.java",
"lineNumber" : 47,
"methodName" : "chainAndInvoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InvocationInterceptorChain",
"fileName" : "InvocationInterceptorChain.java",
"lineNumber" : 39,
"methodName" : "invoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker",
"fileName" : "InterceptingExecutableInvoker.java",
"lineNumber" : 104,
"methodName" : "invoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker",
"fileName" : "InterceptingExecutableInvoker.java",
"lineNumber" : 98,
"methodName" : "invoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker",
"fileName" : "InterceptingExecutableInvoker.java",
"lineNumber" : 71,
"methodName" : "invokeVoid",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor",
"fileName" : "TestMethodTestDescriptor.java",
"lineNumber" : 219,
"methodName" : "lambda$invokeTestMethod$0",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda/0x000000004e61db10",
"lineNumber" : -1,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector",
"fileName" : "ThrowableCollector.java",
"lineNumber" : 74,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor",
"fileName" : "TestMethodTestDescriptor.java",
"lineNumber" : 215,
"methodName" : "invokeTestMethod",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor",
"fileName" : "TestMethodTestDescriptor.java",
"lineNumber" : 157,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor",
"fileName" : "TestMethodTestDescriptor.java",
"lineNumber" : 70,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 176,
"methodName" : "lambda$executeRecursively$2",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188230",
"lineNumber" : -1,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector",
"fileName" : "ThrowableCollector.java",
"lineNumber" : 74,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 166,
"methodName" : "lambda$executeRecursively$1",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188000",
"lineNumber" : -1,
"methodName" : "invoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.Node",
"fileName" : "Node.java",
"lineNumber" : 138,
"methodName" : "around",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 164,
"methodName" : "lambda$executeRecursively$0",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e187a58",
"lineNumber" : -1,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector",
"fileName" : "ThrowableCollector.java",
"lineNumber" : 74,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 163,
"methodName" : "executeRecursively",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 116,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda/0x000000004e188d70",
"lineNumber" : -1,
"methodName" : "accept",
"nativeMethod" : false
}, {
"className" : "java.util.ArrayList",
"fileName" : "ArrayList.java",
"lineNumber" : 1604,
"methodName" : "forEach",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService",
"fileName" : "SameThreadHierarchicalTestExecutorService.java",
"lineNumber" : 42,
"methodName" : "invokeAll",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 180,
"methodName" : "lambda$executeRecursively$2",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188230",
"lineNumber" : -1,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector",
"fileName" : "ThrowableCollector.java",
"lineNumber" : 74,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 166,
"methodName" : "lambda$executeRecursively$1",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188000",
"lineNumber" : -1,
"methodName" : "invoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.Node",
"fileName" : "Node.java",
"lineNumber" : 138,
"methodName" : "around",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 164,
"methodName" : "lambda$executeRecursively$0",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e187a58",
"lineNumber" : -1,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector",
"fileName" : "ThrowableCollector.java",
"lineNumber" : 74,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 163,
"methodName" : "executeRecursively",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 116,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda/0x000000004e188d70",
"lineNumber" : -1,
"methodName" : "accept",
"nativeMethod" : false
}, {
"className" : "java.util.ArrayList",
"fileName" : "ArrayList.java",
"lineNumber" : 1604,
"methodName" : "forEach",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService",
"fileName" : "SameThreadHierarchicalTestExecutorService.java",
"lineNumber" : 42,
"methodName" : "invokeAll",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 180,
"methodName" : "lambda$executeRecursively$2",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188230",
"lineNumber" : -1,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector",
"fileName" : "ThrowableCollector.java",
"lineNumber" : 74,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 166,
"methodName" : "lambda$executeRecursively$1",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188000",
"lineNumber" : -1,
"methodName" : "invoke",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.Node",
"fileName" : "Node.java",
"lineNumber" : 138,
"methodName" : "around",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 164,
"methodName" : "lambda$executeRecursively$0",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e187a58",
"lineNumber" : -1,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.ThrowableCollector",
"fileName" : "ThrowableCollector.java",
"lineNumber" : 74,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 163,
"methodName" : "executeRecursively",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.NodeTestTask",
"fileName" : "NodeTestTask.java",
"lineNumber" : 116,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService",
"fileName" : "SameThreadHierarchicalTestExecutorService.java",
"lineNumber" : 36,
"methodName" : "submit",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor",
"fileName" : "HierarchicalTestExecutor.java",
"lineNumber" : 52,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine",
"fileName" : "HierarchicalTestEngine.java",
"lineNumber" : 58,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator",
"fileName" : "EngineExecutionOrchestrator.java",
"lineNumber" : 246,
"methodName" : "executeEngine",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator",
"fileName" : "EngineExecutionOrchestrator.java",
"lineNumber" : 218,
"methodName" : "failOrExecuteEngine",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator",
"fileName" : "EngineExecutionOrchestrator.java",
"lineNumber" : 179,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator",
"fileName" : "EngineExecutionOrchestrator.java",
"lineNumber" : 108,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator",
"fileName" : "EngineExecutionOrchestrator.java",
"lineNumber" : 66,
"methodName" : "lambda$execute$0",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator$$Lambda/0x000000004e172fa8",
"lineNumber" : -1,
"methodName" : "accept",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator",
"fileName" : "EngineExecutionOrchestrator.java",
"lineNumber" : 157,
"methodName" : "withInterceptedStreams",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator",
"fileName" : "EngineExecutionOrchestrator.java",
"lineNumber" : 65,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.DefaultLauncher",
"fileName" : "DefaultLauncher.java",
"lineNumber" : 125,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.DefaultLauncher",
"fileName" : "DefaultLauncher.java",
"lineNumber" : 114,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.DefaultLauncher",
"fileName" : "DefaultLauncher.java",
"lineNumber" : 93,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.DelegatingLauncher",
"fileName" : "DelegatingLauncher.java",
"lineNumber" : 48,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.InterceptingLauncher",
"fileName" : "InterceptingLauncher.java",
"lineNumber" : 41,
"methodName" : "lambda$execute$0",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.InterceptingLauncher$$Lambda/0x000000004e0bfa58",
"lineNumber" : -1,
"methodName" : "proceed",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor",
"fileName" : "ClasspathAlignmentCheckingLauncherInterceptor.java",
"lineNumber" : 25,
"methodName" : "intercept",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.InterceptingLauncher",
"fileName" : "InterceptingLauncher.java",
"lineNumber" : 40,
"methodName" : "execute",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "org.junit.platform.launcher.core.DelegatingLauncher",
"fileName" : "DelegatingLauncher.java",
"lineNumber" : 48,
"methodName" : "execute",
"nativeMethod" : false
}, {
"className" : "org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer",
"fileName" : "JUnitPlatformTestDefinitionProcessor.java",
"lineNumber" : 172,
"methodName" : "processAllTestClasses",
"nativeMethod" : false
}, {
"className" : "org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer",
"fileName" : "JUnitPlatformTestDefinitionProcessor.java",
"lineNumber" : 121,
"methodName" : "access$000",
"nativeMethod" : false
}, {
"className" : "org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor",
"fileName" : "JUnitPlatformTestDefinitionProcessor.java",
"lineNumber" : 114,
"methodName" : "stop",
"nativeMethod" : false
}, {
"className" : "org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor",
"fileName" : "SuiteTestDefinitionProcessor.java",
"lineNumber" : 64,
"methodName" : "stop",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.LambdaForm$DMH/0x000000004e09c000",
"fileName" : "LambdaForm$DMH",
"lineNumber" : -1,
"methodName" : "invokeInterface",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.LambdaForm$MH/0x000000004e09c800",
"fileName" : "LambdaForm$MH",
"lineNumber" : -1,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.invoke.Invokers$Holder",
"fileName" : "Invokers$Holder",
"lineNumber" : -1,
"methodName" : "invokeExact_MT",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "jdk.internal.reflect.DirectMethodHandleAccessor",
"fileName" : "DirectMethodHandleAccessor.java",
"lineNumber" : 154,
"methodName" : "invokeImpl",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "jdk.internal.reflect.DirectMethodHandleAccessor",
"fileName" : "DirectMethodHandleAccessor.java",
"lineNumber" : 104,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.reflect.Method",
"fileName" : "Method.java",
"lineNumber" : 565,
"methodName" : "invoke",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "org.gradle.internal.dispatch.MethodInvocation",
"fileName" : "MethodInvocation.java",
"lineNumber" : 77,
"methodName" : "invokeOn",
"nativeMethod" : false
}, {
"className" : "org.gradle.internal.dispatch.ReflectionDispatch",
"fileName" : "ReflectionDispatch.java",
"lineNumber" : 28,
"methodName" : "dispatch",
"nativeMethod" : false
}, {
"className" : "org.gradle.internal.dispatch.ReflectionDispatch",
"fileName" : "ReflectionDispatch.java",
"lineNumber" : 19,
"methodName" : "dispatch",
"nativeMethod" : false
}, {
"className" : "org.gradle.internal.dispatch.ContextClassLoaderDispatch",
"fileName" : "ContextClassLoaderDispatch.java",
"lineNumber" : 33,
"methodName" : "dispatch",
"nativeMethod" : false
}, {
"className" : "org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler",
"fileName" : "ProxyDispatchAdapter.java",
"lineNumber" : 88,
"methodName" : "invoke",
"nativeMethod" : false
}, {
"className" : "jdk.proxy1.$Proxy4",
"lineNumber" : -1,
"methodName" : "stop",
"moduleName" : "jdk.proxy1",
"nativeMethod" : false
}, {
"className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker$3",
"fileName" : "TestWorker.java",
"lineNumber" : 195,
"methodName" : "run",
"nativeMethod" : false
}, {
"className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker",
"fileName" : "TestWorker.java",
"lineNumber" : 126,
"methodName" : "executeAndMaintainThreadName",
"nativeMethod" : false
}, {
"className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker",
"fileName" : "TestWorker.java",
"lineNumber" : 103,
"methodName" : "execute",
"nativeMethod" : false
}, {
"className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker",
"fileName" : "TestWorker.java",
"lineNumber" : 63,
"methodName" : "execute",
"nativeMethod" : false
}, {
"className" : "org.gradle.process.internal.worker.child.ActionExecutionWorker",
"fileName" : "ActionExecutionWorker.java",
"lineNumber" : 56,
"methodName" : "execute",
"nativeMethod" : false
}, {
"className" : "org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker",
"fileName" : "SystemApplicationClassLoaderWorker.java",
"lineNumber" : 122,
"methodName" : "call",
"nativeMethod" : false
}, {
"className" : "org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker",
"fileName" : "SystemApplicationClassLoaderWorker.java",
"lineNumber" : 72,
"methodName" : "call",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "worker.org.gradle.process.internal.worker.GradleWorkerMain",
"fileName" : "GradleWorkerMain.java",
"lineNumber" : 69,
"methodName" : "run",
"nativeMethod" : false
}, {
"classLoaderName" : "app",
"className" : "worker.org.gradle.process.internal.worker.GradleWorkerMain",
"fileName" : "GradleWorkerMain.java",
"lineNumber" : 74,
"methodName" : "main",
"nativeMethod" : false
} ],
"suspended" : false,
"threadId" : 3,
"threadName" : "Test worker",
"threadState" : "RUNNABLE",
"waitedCount" : 31,
"waitedTime" : -1
}, {
"blockedCount" : 0,
"blockedTime" : -1,
"daemon" : true,
"inNative" : false,
"lockOwnerId" : -1,
"lockedMonitors" : [ ],
"lockedSynchronizers" : [ ],
"priority" : 10,
"stackTrace" : [ {
"className" : "java.lang.ref.Reference",
"fileName" : "Reference.java",
"lineNumber" : -2,
"methodName" : "waitForReferencePendingList",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : true
}, {
"className" : "java.lang.ref.Reference",
"fileName" : "Reference.java",
"lineNumber" : 246,
"methodName" : "processPendingReferences",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.ref.Reference$ReferenceHandler",
"fileName" : "Reference.java",
"lineNumber" : 208,
"methodName" : "run",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
} ],
"suspended" : false,
"threadId" : 13,
"threadName" : "Reference Handler",
"threadState" : "RUNNABLE",
"waitedCount" : 0,
"waitedTime" : -1
}, {
"blockedCount" : 0,
"blockedTime" : -1,
"daemon" : true,
"inNative" : false,
"lockInfo" : {
"className" : "java.lang.ref.ReferenceQueue$Lock",
"identityHashCode" : 1964303960
},
"lockName" : "java.lang.ref.ReferenceQueue$Lock@7514e658",
"lockOwnerId" : -1,
"lockedMonitors" : [ ],
"lockedSynchronizers" : [ ],
"priority" : 8,
"stackTrace" : [ {
"className" : "java.lang.Object",
"lineNumber" : -2,
"methodName" : "wait0",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : true
}, {
"className" : "java.lang.Object",
"lineNumber" : 389,
"methodName" : "wait",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.Object",
"lineNumber" : 351,
"methodName" : "wait",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.ref.ReferenceQueue",
"fileName" : "ReferenceQueue.java",
"lineNumber" : 137,
"methodName" : "remove0",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.ref.ReferenceQueue",
"fileName" : "ReferenceQueue.java",
"lineNumber" : 215,
"methodName" : "remove",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
}, {
"className" : "java.lang.ref.Finalizer$FinalizerThread",
"fileName" : "Finalizer.java",
"lineNumber" : 165,
"methodName" : "run",
"moduleName" : "java.base",
"moduleVersion" : "25.0.2",
"nativeMethod" : false
} ],
"suspended" : false,
"threadId" : 14,
"threadName" : "Finalizer",
"threadState" : "WAITING",
"waitedCount" : 1,
"waitedTime" : -1
} ]
}

响应结构

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

Path类型描述
threadsArrayJVM 的线程。
threads.[].blockedCountNumber线程被阻塞的总次数。
threads.[].blockedTimeNumber线程被阻塞所花费的时间(以毫秒为单位)。如果线程争用监控被禁用,则为 -1。
threads.[].daemonBoolean该线程是否为守护线程。仅在 Java 9 或更高版本中可用。
threads.[].inNativeBoolean该线程是否正在执行 native 代码。
threads.[].lockNameString线程被阻塞的对象的描述(如果有的话)。
threads.[].lockInfoObject线程被阻塞等待的对象。
threads.[].lockInfo.classNameString锁对象的完全限定类名。
threads.[].lockInfo.identityHashCodeNumber锁对象的身份哈希码。
threads.[].lockedMonitorsArray此线程锁定的监视器(如果有)
threads.[].lockedMonitors.[].classNameString锁对象的类名。
threads.[].lockedMonitors.[].identityHashCodeNumber锁对象的身份哈希码。
threads.[].lockedMonitors.[].lockedStackDepthNumber监视器被锁定时的栈深度。
threads.[].lockedMonitors.[].lockedStackFrameObject锁定监视器的栈帧。
threads.[].lockedSynchronizersArray此线程锁定的同步器。
threads.[].lockedSynchronizers.[].classNameString锁定同步器的类名。
threads.[].lockedSynchronizers.[].identityHashCodeNumber被锁定同步器的身份哈希码。
threads.[].lockOwnerIdNumber线程被阻塞的对象所属的线程 ID。如果线程未被阻塞,则为 -1
threads.[].lockOwnerNameString如果存在,表示阻塞该线程的对象所属的线程名称。
threads.[].priorityNumber线程的优先级。仅在 Java 9 或更高版本中可用。
threads.[].stackTraceArray线程的堆栈跟踪。
threads.[].stackTrace.[].classLoaderNameString包含此条目所标识执行点的类的类加载器名称(如果有的话)。仅在 Java 9 或更高版本中可用。
threads.[].stackTrace.[].classNameString包含此条目所标识执行点的类的名称。
threads.[].stackTrace.[].fileNameString包含此条目所标识执行点的源文件名称(如果有的话)。
threads.[].stackTrace.[].lineNumberNumber此条目标识的执行点的行号。若未知则为负数。
threads.[].stackTrace.[].methodNameString方法的名称。
threads.[].stackTrace.[].moduleNameString包含此条目所标识执行点的模块名称(如果有的话)。仅在 Java 9 或更高版本中可用。
threads.[].stackTrace.[].moduleVersionString包含此条目所标识执行点的模块版本(如果有的话)。仅在 Java 9 或更高版本中可用。
threads.[].stackTrace.[].nativeMethodBoolean执行点是否为原生方法。
threads.[].suspendedBoolean线程是否被挂起。
threads.[].threadIdNumber线程的 ID。
threads.[].threadNameString线程的名称。
threads.[].threadStateString线程的状态(NEWRUNNABLEBLOCKEDWAITINGTIMED_WAITINGTERMINATED)。
threads.[].waitedCountNumber线程等待通知的总次数。
threads.[].waitedTimeNumber线程已花费的等待时间,以毫秒为单位。如果线程争用监控被禁用,则为 -1

以文本形式获取线程转储

要以文本形式获取线程转储,请向 /actuator/threaddump 发起一个接受 text/plainGET 请求,如下列基于 curl 的示例所示:

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

得到的响应类似于以下内容:

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

2026-01-22 12:43:47
Full thread dump OpenJDK 64-Bit Server VM (25.0.2+12-LTS mixed mode, sharing):

"Test worker" - Thread t@3
java.lang.Thread.State: RUNNABLE
at java.management@25.0.2/sun.management.ThreadImpl.dumpThreads0(Native Method)
at java.management@25.0.2/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:505)
at java.management@25.0.2/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:493)
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 java.base@25.0.2/java.lang.invoke.DirectMethodHandle$Holder.invokeVirtual(DirectMethodHandle$Holder)
at java.base@25.0.2/java.lang.invoke.LambdaForm$MH/0x000000004e045c00.invoke(LambdaForm$MH)
at java.base@25.0.2/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder)
at java.base@25.0.2/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:154)
at java.base@25.0.2/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
at app//org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:281)
at app//org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.invoke(ReflectiveOperationInvoker.java:76)
at app//org.springframework.boot.actuate.endpoint.annotation.AbstractDiscoveredOperation.invoke(AbstractDiscoveredOperation.java:62)
at app//org.springframework.boot.webmvc.actuate.endpoint.web.AbstractWebMvcEndpointHandlerMapping$ServletWebOperationAdapter.handle(AbstractWebMvcEndpointHandlerMapping.java:328)
at app//org.springframework.boot.webmvc.actuate.endpoint.web.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(AbstractWebMvcEndpointHandlerMapping.java:457)
at java.base@25.0.2/java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(DirectMethodHandle$Holder)
at java.base@25.0.2/java.lang.invoke.LambdaForm$MH/0x000000004e07d400.invoke(LambdaForm$MH)
at java.base@25.0.2/java.lang.invoke.LambdaForm$MH/0x000000004e07d800.invokeExact_MT(LambdaForm$MH)
at java.base@25.0.2/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:156)
at java.base@25.0.2/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
at app//org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:258)
at app//org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:190)
at app//org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at app//org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:934)
at app//org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:853)
at app//org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:86)
at app//org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at app//org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866)
at app//org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1003)
at app//org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:892)
at app//jakarta.servlet.http.HttpServlet.service(HttpServlet.java:622)
at app//org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874)
at app//org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:72)
at app//jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710)
at app//org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:160)
at app//org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:127)
at app//org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:199)
at app//org.springframework.test.web.servlet.assertj.MockMvcTester.getMvcResultOrFailure(MockMvcTester.java:386)
at app//org.springframework.test.web.servlet.assertj.MockMvcTester.perform(MockMvcTester.java:375)
at app//org.springframework.test.web.servlet.assertj.MockMvcTester.exchange(MockMvcTester.java:401)
at app//org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder.exchange(MockMvcTester.java:460)
at app//org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder.assertThat(MockMvcTester.java:486)
at app//org.springframework.test.web.servlet.assertj.MockMvcTester$MockMvcRequestBuilder.assertThat(MockMvcTester.java:425)
at app//org.assertj.core.api.AssertionsForInterfaceTypes.assertThat(AssertionsForInterfaceTypes.java:82)
at app//org.assertj.core.api.Assertions.assertThat(Assertions.java:3417)
at app//org.springframework.boot.actuate.docs.management.ThreadDumpEndpointDocumentationTests.textThreadDump(ThreadDumpEndpointDocumentationTests.java:180)
at java.base@25.0.2/java.lang.invoke.LambdaForm$DMH/0x000000004e5fcc00.invokeVirtual(LambdaForm$DMH)
at java.base@25.0.2/java.lang.invoke.LambdaForm$MH/0x000000004e09c800.invoke(LambdaForm$MH)
at java.base@25.0.2/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder)
at java.base@25.0.2/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:154)
at java.base@25.0.2/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:701)
at app//org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:502)
at app//org.junit.jupiter.engine.support.MethodReflectionUtils.invoke(MethodReflectionUtils.java:45)
at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:61)
at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:124)
at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:163)
at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:148)
at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda/0x000000004e166a68.apply(Unknown Source)
at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:123)
at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall$$Lambda/0x000000004e6075b0.apply(Unknown Source)
at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:105)
at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$$Lambda/0x000000004e604cd0.apply(Unknown Source)
at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:99)
at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:66)
at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:47)
at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:39)
at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:104)
at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:98)
at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invokeVoid(InterceptingExecutableInvoker.java:71)
at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$0(TestMethodTestDescriptor.java:219)
at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda/0x000000004e61db10.execute(Unknown Source)
at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:215)
at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:157)
at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:176)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188230.execute(Unknown Source)
at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188000.invoke(Unknown Source)
at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e187a58.execute(Unknown Source)
at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda/0x000000004e188d70.accept(Unknown Source)
at java.base@25.0.2/java.util.ArrayList.forEach(ArrayList.java:1604)
at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188230.execute(Unknown Source)
at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188000.invoke(Unknown Source)
at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e187a58.execute(Unknown Source)
at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService$$Lambda/0x000000004e188d70.accept(Unknown Source)
at java.base@25.0.2/java.util.ArrayList.forEach(ArrayList.java:1604)
at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:42)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$2(NodeTestTask.java:180)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188230.execute(Unknown Source)
at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$1(NodeTestTask.java:166)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e188000.invoke(Unknown Source)
at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:138)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$0(NodeTestTask.java:164)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda/0x000000004e187a58.execute(Unknown Source)
at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:74)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:163)
at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:116)
at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:36)
at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:52)
at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:58)
at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:246)
at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:218)
at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:179)
at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108)
at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:66)
at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator$$Lambda/0x000000004e172fa8.accept(Unknown Source)
at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:157)
at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:65)
at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:125)
at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:93)
at app//org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at app//org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$0(InterceptingLauncher.java:41)
at app//org.junit.platform.launcher.core.InterceptingLauncher$$Lambda/0x000000004e0bfa58.proceed(Unknown Source)
at app//org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
at app//org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:40)
at app//org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:48)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.processAllTestClasses(JUnitPlatformTestDefinitionProcessor.java:172)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor$CollectThenExecuteTestDefinitionConsumer.access$000(JUnitPlatformTestDefinitionProcessor.java:121)
at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestDefinitionProcessor.stop(JUnitPlatformTestDefinitionProcessor.java:114)
at org.gradle.api.internal.tasks.testing.SuiteTestDefinitionProcessor.stop(SuiteTestDefinitionProcessor.java:64)
at java.base@25.0.2/java.lang.invoke.LambdaForm$DMH/0x000000004e09c000.invokeInterface(LambdaForm$DMH)
at java.base@25.0.2/java.lang.invoke.LambdaForm$MH/0x000000004e09c800.invoke(LambdaForm$MH)
at java.base@25.0.2/java.lang.invoke.Invokers$Holder.invokeExact_MT(Invokers$Holder)
at java.base@25.0.2/jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(DirectMethodHandleAccessor.java:154)
at java.base@25.0.2/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base@25.0.2/java.lang.reflect.Method.invoke(Method.java:565)
at org.gradle.internal.dispatch.MethodInvocation.invokeOn(MethodInvocation.java:77)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:28)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:19)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:88)
at jdk.proxy1/jdk.proxy1.$Proxy4.stop(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:195)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:126)
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:122)
at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:72)
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@13
java.lang.Thread.State: RUNNABLE
at java.base@25.0.2/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
at java.base@25.0.2/java.lang.ref.Reference.processPendingReferences(Reference.java:246)
at java.base@25.0.2/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:208)

Locked ownable synchronizers:
- None

"Finalizer" - Thread t@14
java.lang.Thread.State: WAITING
at java.base@25.0.2/java.lang.Object.wait0(Native Method)
- parking to wait for <7514e658> (a java.lang.ref.ReferenceQueue$Lock)
at java.base@25.0.2/java.lang.Object.wait(Unknown Source)
at java.base@25.0.2/java.lang.Object.wait(Unknown Source)
at java.base@25.0.2/java.lang.ref.ReferenceQueue.remove0(ReferenceQueue.java:137)
at java.base@25.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:215)
at java.base@25.0.2/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:165)

Locked ownable synchronizers:
- None

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

Locked ownable synchronizers:
- None

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

Locked ownable synchronizers:
- None

"Common-Cleaner" - Thread t@22
java.lang.Thread.State: TIMED_WAITING
at java.base@25.0.2/java.lang.Object.wait0(Native Method)
- parking to wait for <2762e667> (a java.lang.ref.ReferenceQueue$Lock)
at java.base@25.0.2/java.lang.Object.wait(Unknown Source)
at java.base@25.0.2/java.lang.ref.ReferenceQueue.remove0(ReferenceQueue.java:123)
at java.base@25.0.2/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:201)
at java.base@25.0.2/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:146)
at java.base@25.0.2/java.lang.Thread.runWith(Thread.java:1487)
at java.base@25.0.2/java.lang.Thread.run(Thread.java:1474)
at java.base@25.0.2/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:148)

Locked ownable synchronizers:
- None

"/127.0.0.1:45276 to /127.0.0.1:42735 workers" - Thread t@24
java.lang.Thread.State: WAITING
at java.base@25.0.2/jdk.internal.misc.Unsafe.park(Native Method)
- parking to wait for <7b35798b> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.base@25.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:369)
at java.base@25.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:520)
at java.base@25.0.2/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:4364)
at java.base@25.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:4310)
at java.base@25.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1752)
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:47)
at java.base@25.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base@25.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base@25.0.2/java.lang.Thread.runWith(Thread.java:1487)
at java.base@25.0.2/java.lang.Thread.run(Thread.java:1474)

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

"/127.0.0.1:45276 to /127.0.0.1:42735 workers Thread 2" - Thread t@25
java.lang.Thread.State: WAITING
at java.base@25.0.2/jdk.internal.misc.Unsafe.park(Native Method)
- parking to wait for <351c4384> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.base@25.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:369)
at java.base@25.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:520)
at java.base@25.0.2/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:4364)
at java.base@25.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:4310)
at java.base@25.0.2/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1752)
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:47)
at java.base@25.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base@25.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base@25.0.2/java.lang.Thread.runWith(Thread.java:1487)
at java.base@25.0.2/java.lang.Thread.run(Thread.java:1474)

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

"/127.0.0.1:45276 to /127.0.0.1:42735 workers Thread 3" - Thread t@26
java.lang.Thread.State: RUNNABLE
at java.base@25.0.2/sun.nio.ch.EPoll.wait(Native Method)
at java.base@25.0.2/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:117)
at java.base@25.0.2/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:130)
- locked <67e85559> (a sun.nio.ch.Util$2)
- locked <7a00446> (a sun.nio.ch.EPollSelectorImpl)
at java.base@25.0.2/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:147)
at org.gradle.internal.remote.internal.inet.SocketConnection$SocketInputStream.read(SocketConnection.java:187)
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:83)
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:47)
at java.base@25.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base@25.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base@25.0.2/java.lang.Thread.runWith(Thread.java:1487)
at java.base@25.0.2/java.lang.Thread.run(Thread.java:1474)

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

"process reaper" - Thread t@33
java.lang.Thread.State: TIMED_WAITING
at java.base@25.0.2/jdk.internal.misc.Unsafe.park(Native Method)
- parking to wait for <50f77755> (a java.util.concurrent.SynchronousQueue$Transferer)
at java.base@25.0.2/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408)
at java.base@25.0.2/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452)
at java.base@25.0.2/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194)
at java.base@25.0.2/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235)
at java.base@25.0.2/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338)
at java.base@25.0.2/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015)
at java.base@25.0.2/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.base@25.0.2/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base@25.0.2/java.lang.Thread.runWith(Thread.java:1487)
at java.base@25.0.2/java.lang.Thread.run(Thread.java:1474)
at java.base@25.0.2/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:148)

Locked ownable synchronizers:
- None

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

Locked ownable synchronizers:
- None

"VirtualThread-unblocker" - Thread t@46
java.lang.Thread.State: RUNNABLE
at java.base@25.0.2/java.lang.VirtualThread.takeVirtualThreadListToUnblock(Native Method)
at java.base@25.0.2/java.lang.VirtualThread.unblockVirtualThreads(VirtualThread.java:1507)
at java.base@25.0.2/java.lang.VirtualThread$$Lambda/0x000000004e3f5038.run(Unknown Source)
at java.base@25.0.2/java.lang.Thread.runWith(Thread.java:1487)
at java.base@25.0.2/java.lang.Thread.run(Thread.java:1474)
at java.base@25.0.2/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:148)

Locked ownable synchronizers:
- None

"Keep-Alive-Timer" - Thread t@52
java.lang.Thread.State: TIMED_WAITING
at java.base@25.0.2/java.lang.Thread.sleepNanos0(Native Method)
at java.base@25.0.2/java.lang.Thread.sleepNanos(Thread.java:509)
at java.base@25.0.2/java.lang.Thread.sleep(Thread.java:540)
at java.base@25.0.2/sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:224)
at java.base@25.0.2/java.lang.Thread.runWith(Thread.java:1487)
at java.base@25.0.2/java.lang.Thread.run(Thread.java:1474)
at java.base@25.0.2/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:148)

Locked ownable synchronizers:
- None