0% found this document useful (0 votes)
167 views

Spring Boot Actuator Web Api PDF

This document provides documentation on the Spring Boot Actuator web API. It describes endpoints for retrieving application audit events, bean definitions, cache configurations, health status, and other runtime application information. Each endpoint is defined along with the URL, request parameters, and response structure.

Uploaded by

Sonu Soni
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
167 views

Spring Boot Actuator Web Api PDF

This document provides documentation on the Spring Boot Actuator web API. It describes endpoints for retrieving application audit events, bean definitions, cache configurations, health status, and other runtime application information. Each endpoint is defined along with the URL, request parameters, and response structure.

Uploaded by

Sonu Soni
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 167

Spring Boot Actuator Web API

Documentation
Andy Wilkinson, Stephane Nicoll

3.1.0-SNAPSHOT
Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2  

1.1. URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
 

1.2. Timestamps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2  

2. Audit Events (auditevents) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3  

2.1. Retrieving Audit Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3  

2.1.1. Query Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3  

2.1.2. Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3  

3. Beans (beans) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5  

3.1. Retrieving the Beans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5  

3.1.1. Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6  

4. Caches (caches) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8  

4.1. Retrieving All Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8  

4.1.1. Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8  

4.2. Retrieving Caches by Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9  

4.2.1. Query Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9  

4.2.2. Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9  

4.3. Evict All Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10  

4.4. Evict a Cache by Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10  

4.4.1. Request Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10  

5. Conditions Evaluation Report (conditions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11  

5.1. Retrieving the Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11  

5.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13  

6. Configuration Properties (configprops). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14  

6.1. Retrieving All @ConfigurationProperties Beans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14  

6.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16  

6.2. Retrieving @ConfigurationProperties Beans By Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17  

6.2.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18  

7. Environment (env) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20  

7.1. Retrieving the Entire Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20  

7.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40  

7.2. Retrieving a Single Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40  

7.2.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41  

8. Flyway (flyway) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42  

8.1. Retrieving the Migrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42  

8.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42  

9. Health (health) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44  

9.1. Retrieving the Health of the Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44  

9.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45  


9.2. Retrieving the Health of a Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46  

9.2.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46  

9.3. Retrieving the Health of a Nested Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47  

9.3.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47  

10. Heap Dump (heapdump) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48  

10.1. Retrieving the Heap Dump. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48  

11. HTTP Exchanges (httpexchanges) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49  

11.1. Retrieving the HTTP Exchanges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49  

11.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49  

12. Info (info). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51


 

12.1. Retrieving the Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51  

12.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51  

Build Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51  

Git Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52  

13. Spring Integration graph (integrationgraph). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53  

13.1. Retrieving the Spring Integration Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53  

13.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54  

13.2. Rebuilding the Spring Integration Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55  

14. Liquibase (liquibase) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56  

14.1. Retrieving the Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56  

14.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56  

15. Log File (logfile) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58  

15.1. Retrieving the Log File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58  

15.2. Retrieving Part of the Log File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60  

16. Loggers (loggers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61  

16.1. Retrieving All Loggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61  

16.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62  

16.2. Retrieving a Single Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62  

16.2.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62  

16.3. Retrieving a Single Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63  

16.3.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63  

16.4. Setting a Log Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63  

16.4.1. Request Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64  

16.5. Setting a Log Level for a Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64  

16.5.1. Request Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64  

16.6. Clearing a Log Level. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64  

17. Mappings (mappings) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65  

17.1. Retrieving the Mappings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65  

17.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68  

17.1.2. Dispatcher Servlets Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68  

17.1.3. Servlets Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70  


17.1.4. Servlet Filters Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70  

17.1.5. Dispatcher Handlers Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70  

18. Metrics (metrics). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73


 

18.1. Retrieving Metric Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73  

18.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73  

18.2. Retrieving a Metric. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 

18.2.1. Query Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74  

18.2.2. Response structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74  

18.3. Drilling Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75


 

19. Prometheus (prometheus) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76  

19.1. Retrieving All Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76  

19.1.1. Query Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78  

19.2. Retrieving Filtered Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79  

20. Quartz (quartz) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80


 

20.1. Retrieving Registered Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80  

20.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80  

20.2. Retrieving Registered Job Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80  

20.2.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81  

20.3. Retrieving Registered Trigger Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81  

20.3.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82  

20.4. Retrieving Overview of a Job Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82  

20.4.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83  

20.5. Retrieving Overview of a Trigger Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83  

20.5.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84  

20.6. Retrieving Details of a Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86  

20.6.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87  

20.7. Retrieving Details of a Trigger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88  

20.7.1. Common Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88  

20.7.2. Cron Trigger Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89  

20.7.3. Simple Trigger Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90  

20.7.4. Daily Time Interval Trigger Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91  

20.7.5. Calendar Interval Trigger Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93  

20.7.6. Custom Trigger Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94  

21. Scheduled Tasks (scheduledtasks) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95  

21.1. Retrieving the Scheduled Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95  

21.1.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96  

22. Sessions (sessions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97


 

22.1. Retrieving Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97  

22.1.1. Query Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98  

22.1.2. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98  

22.2. Retrieving a Single Session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98  


22.2.1. Response Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99  

22.3. Deleting a Session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99


 

23. Shutdown (shutdown) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100


 

23.1. Shutting Down the Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100  

23.1.1. Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100


 

24. Application Startup (startup) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101  

24.1. Retrieving the Application Startup Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101  

24.1.1. Retrieving a snapshot of the Application Startup Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101  

24.1.2. Draining the Application Startup Steps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102  

24.1.3. Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103


 

25. Thread Dump (threaddump). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105  

25.1. Retrieving the Thread Dump as JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105  

25.1.1. Response Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127


 

25.2. Retrieving the Thread Dump as Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129  


This API documentation describes Spring Boot Actuators web endpoints.

1
Chapter 1. Overview
Before you proceed, you should read the following topics:

• URLs

• Timestamps

In order to get the correct JSON responses documented below, Jackson must be
 available.

1.1. URLs
By default, all web endpoints are available beneath the path /actuator with URLs of the form
/actuator/{id}. The /actuator base path can be configured by using the
management.endpoints.web.base-path property, as shown in the following example:

management.endpoints.web.base-path=/manage

The preceding application.properties example changes the form of the endpoint URLs from
/actuator/{id} to /manage/{id}. For example, the URL info endpoint would become /manage/info.

1.2. Timestamps
All timestamps that are consumed by the endpoints, either as query parameters or in the request
body, must be formatted as an offset date and time as specified in ISO 8601.

2
Chapter 2. Audit Events (auditevents)
The auditevents endpoint provides information about the application’s audit events.

2.1. Retrieving Audit Events


To retrieve the audit events, make a GET request to /actuator/auditevents, as shown in the following
curl-based example:

$ curl 'http://localhost:8080/actuator/auditevents?principal=alice&after=2023-02-
24T17%3A23%3A32.550826419Z&type=logout' -i -X GET

The preceding example retrieves logout events for the principal, alice, that occurred after 09:37 on
7 November 2017 in the UTC timezone. The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 127

{
  "events" : [ {
  "timestamp" : "2023-02-24T17:23:32.551225381Z",
  "principal" : "alice",
  "type" : "logout"
  } ]
}

2.1.1. Query Parameters

The endpoint uses query parameters to limit the events that it returns. The following table shows
the supported query parameters:

Parameter Description
after Restricts the events to those that occurred after the given time.
Optional.
principal Restricts the events to those with the given principal. Optional.
type Restricts the events to those with the given type. Optional.

2.1.2. Response Structure

The response contains details of all of the audit events that matched the query. The following table
describes the structure of the response:

3
Path Type Description
events Array An array of audit events.
events.[].timestamp String The timestamp of when the event occurred.
events.[].principal String The principal that triggered the event.
events.[].type String The type of the event.

4
Chapter 3. Beans (beans)
The beans endpoint provides information about the application’s beans.

3.1. Retrieving the Beans


To retrieve the beans, make a GET request to /actuator/beans, as shown in the following curl-based
example:

$ curl 'http://localhost:8080/actuator/beans' -i -X GET

The resulting response is similar to the following:

5
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 1089

{
  "contexts" : {
  "application" : {
  "beans" : {
 
"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration
$DispatcherServletRegistrationConfiguration" : {
  "aliases" : [ ],
  "scope" : "singleton",
  "type" :
"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration
$DispatcherServletRegistrationConfiguration",
  "dependencies" : [ ]
  },
 
"org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration"
: {
  "aliases" : [ ],
  "scope" : "singleton",
  "type" :
"org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration",
  "dependencies" : [ ]
  },
 
"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration
" : {
  "aliases" : [ ],
  "scope" : "singleton",
  "type" :
"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration
",
  "dependencies" : [ ]
  }
  }
  }
  }
}

3.1.1. Response Structure

The response contains details of the application’s beans. The following table describes the structure
of the response:

6
Path Type Description
contexts Object Application contexts keyed by id.
contexts.*.parentId String Id of the parent application context, if any.
contexts.*.beans Object Beans in the application context keyed by name.
contexts.*.beans.*.aliases Array Names of any aliases.
contexts.*.beans.*.scope String Scope of the bean.
contexts.*.beans.*.type String Fully qualified type of the bean.
contexts.*.beans.*.resource String Resource in which the bean was defined, if any.
contexts.*.beans.*.dependencie Array Names of any dependencies.
s

7
Chapter 4. Caches (caches)
The caches endpoint provides access to the application’s caches.

4.1. Retrieving All Caches


To retrieve the application’s caches, make a GET request to /actuator/caches, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/caches' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 435

{
  "cacheManagers" : {
  "anotherCacheManager" : {
  "caches" : {
  "countries" : {
  "target" : "java.util.concurrent.ConcurrentHashMap"
  }
  }
  },
  "cacheManager" : {
  "caches" : {
  "cities" : {
  "target" : "java.util.concurrent.ConcurrentHashMap"
  },
  "countries" : {
  "target" : "java.util.concurrent.ConcurrentHashMap"
  }
  }
  }
  }
}

4.1.1. Response Structure

The response contains details of the application’s caches. The following table describes the
structure of the response:

Path Type Description


cacheManagers Object Cache managers keyed by id.

8
Path Type Description
cacheManagers.*.caches Object Caches in the application context keyed
by name.
cacheManagers.*.caches.*.target String Fully qualified name of the native cache.

4.2. Retrieving Caches by Name


To retrieve a cache by name, make a GET request to /actuator/caches/{name}, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/caches/cities' -i -X GET

The preceding example retrieves information about the cache named cities. The resulting
response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 113

{
  "target" : "java.util.concurrent.ConcurrentHashMap",
  "name" : "cities",
  "cacheManager" : "cacheManager"
}

4.2.1. Query Parameters

If the requested name is specific enough to identify a single cache, no extra parameter is required.
Otherwise, the cacheManager must be specified. The following table shows the supported query
parameters:

Parameter Description
cacheManager Name of the cacheManager to qualify the cache. May be omitted
if the cache name is unique.

4.2.2. Response Structure

The response contains details of the requested cache. The following table describes the structure of
the response:

Path Type Description


name String Cache name.
cacheManager String Cache manager name.

9
Path Type Description
target String Fully qualified name of the native cache.

4.3. Evict All Caches


To clear all available caches, make a DELETE request to /actuator/caches as shown in the following
curl-based example:

$ curl 'http://localhost:8080/actuator/caches' -i -X DELETE

4.4. Evict a Cache by Name


To evict a particular cache, make a DELETE request to /actuator/caches/{name} as shown in the
following curl-based example:

$ curl
'http://localhost:8080/actuator/caches/countries?cacheManager=anotherCacheManager' -i
-X DELETE \
  -H 'Content-Type: application/x-www-form-urlencoded'

As there are two caches named countries, the cacheManager has to be provided to
 specify which Cache should be cleared.

4.4.1. Request Structure

If the requested name is specific enough to identify a single cache, no extra parameter is required.
Otherwise, the cacheManager must be specified. The following table shows the supported query
parameters:

Parameter Description
cacheManager Name of the cacheManager to qualify the cache. May be omitted
if the cache name is unique.

10
Chapter 5. Conditions Evaluation Report
(conditions)
The conditions endpoint provides information about the evaluation of conditions on configuration
and auto-configuration classes.

5.1. Retrieving the Report


To retrieve the report, make a GET request to /actuator/conditions, as shown in the following curl-
based example:

$ curl 'http://localhost:8080/actuator/conditions' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 3705

{
  "contexts" : {
  "application" : {
  "positiveMatches" : {
  "EndpointAutoConfiguration#endpointOperationParameterMapper" : [ {
  "condition" : "OnBeanCondition",
  "message" : "@ConditionalOnMissingBean (types:
org.springframework.boot.actuate.endpoint.invoke.ParameterValueMapper; SearchStrategy:
all) did not find any beans"
  } ],
  "JacksonEndpointAutoConfiguration#endpointObjectMapper" : [ {
  "condition" : "OnClassCondition",
  "message" : "@ConditionalOnClass found required classes
'com.fasterxml.jackson.databind.ObjectMapper',
'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder'"
  }, {
  "condition" : "OnPropertyCondition",
  "message" : "@ConditionalOnProperty (management.endpoints.jackson.isolated-
object-mapper) matched"
  } ],
  "EndpointAutoConfiguration#endpointCachingOperationInvokerAdvisor" : [ {
  "condition" : "OnBeanCondition",
  "message" : "@ConditionalOnMissingBean (types:
org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor
; SearchStrategy: all) did not find any beans"
  } ]
  },
  "negativeMatches" : {

11
  "WebFluxEndpointManagementContextConfiguration" : {
  "notMatched" : [ {
  "condition" : "OnWebApplicationCondition",
  "message" : "not a reactive web application"
  } ],
  "matched" : [ {
  "condition" : "OnClassCondition",
  "message" : "@ConditionalOnClass found required classes
'org.springframework.web.reactive.DispatcherHandler',
'org.springframework.http.server.reactive.HttpHandler'"
  } ]
  },
  "GsonHttpMessageConvertersConfiguration.GsonHttpMessageConverterConfiguration"
: {
  "notMatched" : [ {
  "condition" :
"GsonHttpMessageConvertersConfiguration.PreferGsonOrJacksonAndJsonbUnavailableConditio
n",
  "message" : "AnyNestedCondition 0 matched 2 did not; NestedCondition on
GsonHttpMessageConvertersConfiguration.PreferGsonOrJacksonAndJsonbUnavailableCondition
.JacksonJsonbUnavailable NoneNestedConditions 1 matched 1 did not; NestedCondition on
GsonHttpMessageConvertersConfiguration.JacksonAndJsonbUnavailableCondition.JsonbPrefer
red @ConditionalOnProperty (spring.mvc.converters.preferred-json-mapper=jsonb) did not
find property 'spring.mvc.converters.preferred-json-mapper'; NestedCondition on
GsonHttpMessageConvertersConfiguration.JacksonAndJsonbUnavailableCondition.JacksonAvai
lable @ConditionalOnBean (types:
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
SearchStrategy: all) found bean 'mappingJackson2HttpMessageConverter'; NestedCondition
on
GsonHttpMessageConvertersConfiguration.PreferGsonOrJacksonAndJsonbUnavailableCondition
.GsonPreferred @ConditionalOnProperty (spring.mvc.converters.preferred-json-
mapper=gson) did not find property 'spring.mvc.converters.preferred-json-mapper'"
  } ],
  "matched" : [ ]
  },
 
"WebMvcEndpointManagementContextConfiguration#managementHealthEndpointWebMvcHandlerMap
ping" : {
  "notMatched" : [ {
  "condition" : "OnManagementPortCondition",
  "message" : "Management Port actual port type (SAME) did not match
required type (DIFFERENT)"
  } ],
  "matched" : [ ]
  }
  },
  "unconditionalClasses" : [
"org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration",
"org.springframework.boot.actuate.autoconfigure.endpoint.jackson.JacksonEndpointAutoCo
nfiguration",
"org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration" ]

12
  }
  }
}

5.1.1. Response Structure

The response contains details of the application’s condition evaluation. The following table
describes the structure of the response:

Path Type Description


contexts Object Application contexts keyed by id.
contexts.*.positiveMatches Object Classes and methods with conditions that
were matched.
contexts.*.positiveMatches.*.[].conditi String Name of the condition.
on
contexts.*.positiveMatches.*.[].message String Details of why the condition was
matched.
contexts.*.negativeMatches Object Classes and methods with conditions that
were not matched.
contexts.*.negativeMatches.*.notMatched Array Conditions that were matched.
contexts.*.negativeMatches.*.notMatched String Name of the condition.
.[].condition
contexts.*.negativeMatches.*.notMatched String Details of why the condition was not
.[].message matched.
contexts.*.negativeMatches.*.matched Array Conditions that were matched.
contexts.*.negativeMatches.*.matched.[] String Name of the condition.
.condition
contexts.*.negativeMatches.*.matched.[] String Details of why the condition was
.message matched.
contexts.*.unconditionalClasses Array Names of unconditional auto-
configuration classes if any.
contexts.*.parentId String Id of the parent application context, if
any.

13
Chapter 6. Configuration Properties
(configprops)
The configprops endpoint provides information about the application’s @ConfigurationProperties
beans.

6.1. Retrieving All @ConfigurationProperties Beans


To retrieve all of the @ConfigurationProperties beans, make a GET request to /actuator/configprops,
as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/configprops' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 3411

{
  "contexts" : {
  "application" : {
  "beans" : {
  "management.endpoints.web.cors-
org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties" :
{
  "prefix" : "management.endpoints.web.cors",
  "properties" : {
  "allowedOrigins" : [ ],
  "maxAge" : "PT30M",
  "exposedHeaders" : [ ],
  "allowedOriginPatterns" : [ ],
  "allowedHeaders" : [ ],
  "allowedMethods" : [ ]
  },
  "inputs" : {
  "allowedOrigins" : [ ],
  "maxAge" : { },
  "exposedHeaders" : [ ],
  "allowedOriginPatterns" : [ ],
  "allowedHeaders" : [ ],
  "allowedMethods" : [ ]
  }
  },
  "management.endpoints.web-
org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties" : {
  "prefix" : "management.endpoints.web",

14
  "properties" : {
  "pathMapping" : { },
  "exposure" : {
  "include" : [ "*" ],
  "exclude" : [ ]
  },
  "basePath" : "/actuator",
  "discovery" : {
  "enabled" : true
  }
  },
  "inputs" : {
  "pathMapping" : { },
  "exposure" : {
  "include" : [ {
  "value" : "*",
  "origin" : "\"management.endpoints.web.exposure.include\" from
property source \"Inlined Test Properties\""
  } ],
  "exclude" : [ ]
  },
  "basePath" : { },
  "discovery" : {
  "enabled" : { }
  }
  }
  },
  "spring.web-org.springframework.boot.autoconfigure.web.WebProperties" : {
  "prefix" : "spring.web",
  "properties" : {
  "localeResolver" : "ACCEPT_HEADER",
  "resources" : {
  "staticLocations" : [ "classpath:/META-INF/resources/",
"classpath:/resources/", "classpath:/static/", "classpath:/public/" ],
  "addMappings" : true,
  "chain" : {
  "cache" : true,
  "compressed" : false,
  "strategy" : {
  "fixed" : {
  "enabled" : false,
  "paths" : [ "/**" ]
  },
  "content" : {
  "enabled" : false,
  "paths" : [ "/**" ]
  }
  }
  },
  "cache" : {
  "cachecontrol" : { },

15
  "useLastModified" : true
  }
  }
  },
  "inputs" : {
  "localeResolver" : { },
  "resources" : {
  "staticLocations" : [ { }, { }, { }, { } ],
  "addMappings" : { },
  "chain" : {
  "cache" : { },
  "compressed" : { },
  "strategy" : {
  "fixed" : {
  "enabled" : { },
  "paths" : [ { } ]
  },
  "content" : {
  "enabled" : { },
  "paths" : [ { } ]
  }
  }
  },
  "cache" : {
  "cachecontrol" : { },
  "useLastModified" : { }
  }
  }
  }
  }
  }
  }
  }
}

6.1.1. Response Structure

The response contains details of the application’s @ConfigurationProperties beans. The following
table describes the structure of the response:

Path Type Description


contexts Object Application contexts keyed by id.
contexts.*.beans.* Object @ConfigurationProperties beans keyed by bean
name.
contexts.*.beans.*.prefix String Prefix applied to the names of the bean’s
properties.
contexts.*.beans.*.properties Object Properties of the bean as name-value pairs.

16
Path Type Description
contexts.*.beans.*.inputs Object Origin and value of the configuration property
used when binding to this bean.
contexts.*.parentId String Id of the parent application context, if any.

6.2. Retrieving @ConfigurationProperties Beans By


Prefix
To retrieve the @ConfigurationProperties beans mapped under a certain prefix, make a GET request
to /actuator/configprops/{prefix}, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/configprops/spring.jackson' -i -X GET

The resulting response is similar to the following:

17
HTTP/1.1 200 OK
Content-Disposition: inline;filename=f.txt
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 676

{
  "contexts" : {
  "application" : {
  "beans" : {
  "spring.jackson-
org.springframework.boot.autoconfigure.jackson.JacksonProperties" : {
  "prefix" : "spring.jackson",
  "properties" : {
  "serialization" : { },
  "visibility" : { },
  "parser" : { },
  "deserialization" : { },
  "generator" : { },
  "mapper" : { }
  },
  "inputs" : {
  "serialization" : { },
  "visibility" : { },
  "parser" : { },
  "deserialization" : { },
  "generator" : { },
  "mapper" : { }
  }
  }
  }
  }
  }
}

The {prefix} does not need to be exact, a more general prefix will return all beans
 mapped under that prefix stem.

6.2.1. Response Structure

The response contains details of the application’s @ConfigurationProperties beans. The following
table describes the structure of the response:

Path Type Description


contexts Object Application contexts keyed by id.
contexts.*.beans.* Object @ConfigurationProperties beans keyed by bean
name.

18
Path Type Description
contexts.*.beans.*.prefix String Prefix applied to the names of the bean’s
properties.
contexts.*.beans.*.properties Object Properties of the bean as name-value pairs.
contexts.*.beans.*.inputs Object Origin and value of the configuration property
used when binding to this bean.
contexts.*.parentId String Id of the parent application context, if any.

19
Chapter 7. Environment (env)
The env endpoint provides information about the application’s Environment.

7.1. Retrieving the Entire Environment


To retrieve the entire environment, make a GET request to /actuator/env, as shown in the following
curl-based example:

$ curl 'http://localhost:8080/actuator/env' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 70614

{
  "activeProfiles" : [ ],
  "propertySources" : [ {
  "name" : "servletContextInitParams",
  "properties" : { }
  }, {
  "name" : "systemProperties",
  "properties" : {
  "java.specification.version" : {
  "value" : "17"
  },
  "java.class.path" : {
  "value" : "/root/.gradle/caches/7.6.1/workerMain/gradle-
worker.jar:/tmp/build/6da1d659/git-repo/spring-boot-project/spring-boot-actuator-
autoconfigure/build/classes/java/test:/tmp/build/6da1d659/git-repo/spring-boot-
project/spring-boot-actuator-
autoconfigure/build/resources/test:/tmp/build/6da1d659/git-repo/spring-boot-
project/spring-boot-actuator-
autoconfigure/build/classes/java/main:/tmp/build/6da1d659/git-repo/spring-boot-
project/spring-boot-actuator-
autoconfigure/build/resources/main:/tmp/build/6da1d659/git-repo/spring-boot-
project/spring-boot-tools/spring-boot-test-support/build/libs/spring-boot-test-
support-3.1.0-SNAPSHOT.jar:/tmp/build/6da1d659/git-repo/spring-boot-project/spring-
boot-actuator/build/libs/spring-boot-actuator-3.1.0-
SNAPSHOT.jar:/tmp/build/6da1d659/git-repo/spring-boot-project/spring-boot-
autoconfigure/build/libs/spring-boot-autoconfigure-3.1.0-
SNAPSHOT.jar:/tmp/build/6da1d659/git-repo/spring-boot-project/spring-boot-
test/build/libs/spring-boot-test-3.1.0-SNAPSHOT.jar:/tmp/build/6da1d659/git-
repo/spring-boot-project/spring-boot/build/libs/spring-boot-3.1.0-
SNAPSHOT.jar:/root/.gradle/caches/modules-2/files-
2.1/com.fasterxml.jackson.dataformat/jackson-dataformat-

20
xml/2.14.2/1c162dd3006c0b7608becd55af4639f2c7b5a79a/jackson-dataformat-xml-
2.14.2.jar:/root/.gradle/caches/modules-2/files-
2.1/com.fasterxml.jackson.datatype/jackson-datatype-
jsr310/2.14.2/796518148a385b2728d44886cc0f8852eb8eeb53/jackson-datatype-jsr310-
2.14.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-
data-cassandra/4.1.0-M2/69fb5cfe7b11deb6f30424524fcbd3aaff99e9f2/spring-data-
cassandra-4.1.0-M2.jar:/root/.gradle/caches/modules-2/files-2.1/com.datastax.oss/java-
driver-query-builder/4.15.0/308cebab44e688c05ab61390005500d8db231ecd/java-driver-
query-builder-4.15.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.datastax.oss/java-driver-
core/4.15.0/aedf50875f5be8589770957735d37d2580ca5ac5/java-driver-core-
4.15.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-
data-elasticsearch/5.1.0-M2/3e9ac4bb1130b49eabbfc76c80b03231d5c67019/spring-data-
elasticsearch-5.1.0-M2.jar:/root/.gradle/caches/modules-2/files-
2.1/org.flywaydb/flyway-core/9.15.1/c6b909e17e1fb765bd30f52944c2b5d193878db5/flyway-
core-9.15.1.jar:/root/.gradle/caches/modules-2/files-
2.1/com.fasterxml.jackson.dataformat/jackson-dataformat-
toml/2.14.2/c40f33f9f727b2fd0ecfcb596b114358fd1f08b0/jackson-dataformat-toml-
2.14.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.media/jersey-
media-json-jackson/3.1.1/a72e24d8ad075affb9636c616c7b3499a201023d/jersey-media-json-
jackson-3.1.1.jar:/root/.gradle/caches/modules-2/files-
2.1/com.fasterxml.jackson.module/jackson-module-jakarta-xmlbind-
annotations/2.14.2/f568a91da2164a2cbca77543eca9e7d8f7a8eaae/jackson-module-jakarta-
xmlbind-annotations-2.14.2.jar:/root/.gradle/caches/modules-2/files-
2.1/io.micrometer/micrometer-tracing-reporter-wavefront/1.1.0-
M1/9dcc107b1e2e7fd23ca087725f0a673161a3c251/micrometer-tracing-reporter-wavefront-
1.1.0-M1.jar:/root/.gradle/caches/modules-2/files-2.1/com.wavefront/wavefront-
internal-reporter-java/1.7.16/135f9be9f149a6f0614db155ddf51e216d0d2891/wavefront-
internal-reporter-java-1.7.16.jar:/root/.gradle/caches/modules-2/files-
2.1/com.fasterxml.jackson.dataformat/jackson-dataformat-
yaml/2.14.2/cc9a25c1f4212562dcb2fa33dd8ae179ba0e6a4e/jackson-dataformat-yaml-
2.14.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-
data-rest-webmvc/4.1.0-M2/4b385717314dcdf6caed75b4157c0d3b8504565b/spring-data-rest-
webmvc-4.1.0-M2.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.data/spring-data-rest-core/4.1.0-
M2/dc6ae7d78b20ee5aef1e35f858d1a471150cdf7c/spring-data-rest-core-4.1.0-
M2.jar:/root/.gradle/caches/modules-2/files-
2.1/com.fasterxml.jackson.datatype/jackson-datatype-
jdk8/2.14.2/2f3c71211b6ea7a978eba33574d7135d536e07fb/jackson-datatype-jdk8-
2.14.2.jar:/root/.gradle/caches/modules-2/files-
2.1/com.fasterxml.jackson.core/jackson-
core/2.14.2/f804090e6399ce0cf78242db086017512dd71fcc/jackson-core-
2.14.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.kafka/kafka-
streams/3.4.0/9ee9b42d89f9bbd6f19bc4fce4407d5d240a7d48/kafka-streams-
3.4.0.jar:/root/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-
annotations/2.14.2/a7aae9525864930723e3453ab799521fdfd9d873/jackson-annotations-
2.14.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-
data-couchbase/5.1.0-M2/8a2ac7c17f9dd3b386030204f5c61d5a20aa39c3/spring-data-
couchbase-5.1.0-M2.jar:/root/.gradle/caches/modules-2/files-
2.1/io.micrometer/micrometer-registry-wavefront/1.11.0-
M1/b4512f77577deb07f6c5dd8bb8973cab7521c980/micrometer-registry-wavefront-1.11.0-

21
M1.jar:/root/.gradle/caches/modules-2/files-2.1/com.wavefront/wavefront-sdk-
java/3.0.4/370dc7ed21a55b4d49c37fad6fc6343402873587/wavefront-sdk-java-
3.0.4.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.restdocs/spring-restdocs-
mockmvc/3.0.0/d6b6ac3817f68f2dcf9ad4db4e00836776abb1ea/spring-restdocs-mockmvc-
3.0.0.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.restdocs/spring-restdocs-
webtestclient/3.0.0/671307a91b382e690191eb40dcc44250092d373a/spring-restdocs-
webtestclient-3.0.0.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.restdocs/spring-restdocs-
core/3.0.0/82e4c7cf63a478e71272662c511f3485f4a5af7b/spring-restdocs-core-
3.0.0.jar:/root/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-
databind/2.14.2/1e71fddbc80bb86f71a6345ac1e8ab8a00e7134/jackson-databind-
2.14.2.jar:/root/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-
classic/1.4.5/28e7dc0b208d6c3f15beefd73976e064b4ecfa9b/logback-classic-
1.4.5.jar:/root/.gradle/caches/modules-2/files-2.1/com.github.ben-
manes.caffeine/caffeine/3.1.4/19021f711c6a8595c567c0a7746b5ce264415912/caffeine-
3.1.4.jar:/root/.gradle/caches/modules-2/files-2.1/com.hazelcast/hazelcast-
spring/5.2.2/21eef5ae180fabf5a4f71167d69714a68cda21ee/hazelcast-spring-
5.2.2.jar:/root/.gradle/caches/modules-2/files-
2.1/com.hazelcast/hazelcast/5.2.2/2467e0dc93a2cc4c911ca1b95913384bf891b95d/hazelcast-
5.2.2.jar:/root/.gradle/caches/modules-2/files-
2.1/com.zaxxer/HikariCP/5.0.1/a74c7f0a37046846e88d54f7cb6ea6d565c65f9c/HikariCP-
5.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-registry-
jmx/1.11.0-M1/3337353d757d983abdcdb18687af70b277283303/micrometer-registry-jmx-1.11.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.dropwizard.metrics/metrics-
jmx/4.2.16/510f56f5fc358925d4be61d8bfe8c239b4b82853/metrics-jmx-
4.2.16.jar:/root/.gradle/caches/modules-2/files-2.1/io.lettuce/lettuce-
core/6.2.3.RELEASE/3d671a51095ef90b817a690ef1b569b24b309665/lettuce-core-
6.2.3.RELEASE.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.amqp/spring-
rabbit/3.0.2/910f6a931b70f874ab03ba3dc0df2c6e05de12b8/spring-rabbit-
3.0.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.kafka/spring-
kafka/3.0.3/939ecd99ac2b9c691dc29c6a1aa3976068e908ed/spring-kafka-
3.0.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.cache2k/cache2k-
micrometer/2.6.1.Final/58731da010cc872915e012325027954bdc3122c8/cache2k-micrometer-
2.6.1.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.hibernate.orm/hibernate-
micrometer/6.1.7.Final/87261a3761c7245d6d2bd382583eea93e7e06063/hibernate-micrometer-
6.1.7.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-
registry-stackdriver/1.11.0-M1/94e4abcec33ba76b87e3108ba02500eb23f2e9f3/micrometer-
registry-stackdriver-1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/io.micrometer/micrometer-registry-appoptics/1.11.0-
M1/40f88ba69a1f42a6c31533743b74ca2b16942a4e/micrometer-registry-appoptics-1.11.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-registry-
atlas/1.11.0-M1/62cc9ff0c2acbe141db6ed25d16cf4e3a6d9e8a5/micrometer-registry-atlas-
1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-
registry-datadog/1.11.0-M1/6e6e828fc4448d074ac49230e91ffd0e8c2afd3a/micrometer-
registry-datadog-1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/io.micrometer/micrometer-registry-dynatrace/1.11.0-
M1/b2345783783e37bdf64a135f8b0017e32507d413/micrometer-registry-dynatrace-1.11.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-registry-

22
elastic/1.11.0-M1/433135a3f48e5a5b74b2a5d6c2d85e0fa2f05d0c/micrometer-registry-
elastic-1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/io.micrometer/micrometer-registry-ganglia/1.11.0-
M1/4aa4e68b4f3f9b13f7a6ee1b56bc1cdce06c365a/micrometer-registry-ganglia-1.11.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-registry-
graphite/1.11.0-M1/606208804e304138dfa1f93fddaa4356eee68fa3/micrometer-registry-
graphite-1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/io.micrometer/micrometer-registry-humio/1.11.0-
M1/242fad20e796dbc46a788cae8eb3ed9b5766d1bc/micrometer-registry-humio-1.11.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-registry-
influx/1.11.0-M1/13b83123bf7748099bde7b022ddb540b652fbd12/micrometer-registry-influx-
1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-
registry-kairos/1.11.0-M1/d8f5282f4b2e63e18c54466a3f19239da47c789f/micrometer-
registry-kairos-1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/io.micrometer/micrometer-registry-new-relic/1.11.0-
M1/8d3b382d58506174326f741376552de419b26a7b/micrometer-registry-new-relic-1.11.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-registry-
otlp/1.11.0-M1/7bfd898d99c7fceacf951ce41f6bc7c04c678c28/micrometer-registry-otlp-
1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-
registry-prometheus/1.11.0-M1/33fc1da148265abe005a878490333db16b77796d/micrometer-
registry-prometheus-1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/io.micrometer/micrometer-registry-signalfx/1.11.0-
M1/5e7ed6aeb42592881c3b2794c7ac28fb24afa0ff/micrometer-registry-signalfx-1.11.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-registry-
statsd/1.11.0-M1/c151d787186567db8c5a3dae4c590d4513820e4d/micrometer-registry-statsd-
1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.activemq/artemis-
jakarta-server/2.28.0/1fd59a9818757eb04434f06d61942abe4da19e69/artemis-jakarta-server-
2.28.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.activemq/artemis-
server/2.28.0/697ed2e284e01f757e7187eb1b9b6b733eba5fa6/artemis-server-
2.28.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-
core/1.11.0-M1/d8f698ae91fe8c855db37d78f227549a371503d0/micrometer-core-1.11.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-observation-
test/1.11.0-M1/f0645883825d556d6138007a3c7af0cfc8b1e82c/micrometer-observation-test-
1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-
tracing-bridge-brave/1.1.0-M1/dc3d3fd3aa450e86c60ca64c4898da8bcf2e18da/micrometer-
tracing-bridge-brave-1.1.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/io.micrometer/micrometer-tracing-bridge-otel/1.1.0-
M1/7cb6852865555d105b1e1b7bf303c6297937f14c/micrometer-tracing-bridge-otel-1.1.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-
tracing/1.1.0-M1/6f79df945662b6011e411f9fde526c949f96b7f5/micrometer-tracing-1.1.0-
M1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.integration/spring-integration-jmx/6.1.0-
M1/8c9db56e240f8128656221c5aa3bfcbb70cf5795/spring-integration-jmx-6.1.0-
M1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.integration/spring-integration-core/6.1.0-
M1/ef1a00cbbc135b2228c285ff5376e4fa414292ce/spring-integration-core-6.1.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
webflux/6.0.5/974ded4b42f3e7c3e64850b630def25c96969e55/spring-webflux-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
webmvc/6.0.5/31b98472b0d92d0e1c92ea773ca4f946c7165229/spring-webmvc-
6.0.5.jar:/root/.gradle/caches/modules-2/files-

23
2.1/org.springframework.security/spring-security-oauth2-resource-server/6.1.0-
M1/8059a28ee2201d2137220ec8258290716f083045/spring-security-oauth2-resource-server-
6.1.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.security/spring-security-saml2-service-provider/6.1.0-
M1/c24767db4369203917c13d3e845593ffa622dcef/spring-security-saml2-service-provider-
6.1.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.security/spring-security-test/6.1.0-
M1/dcabe47e10bcd0179d115d42309c7ce9fde52542/spring-security-test-6.1.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.security/spring-
security-web/6.1.0-M1/a67a34caab2df60ddae69604773e074b5f77bca7/spring-security-web-
6.1.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.security/spring-security-oauth2-jose/6.1.0-
M1/11279b00482ac36da5c9ec31756a7675b598e745/spring-security-oauth2-jose-6.1.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.security/spring-
security-oauth2-core/6.1.0-M1/65070ec831ec7383eed3522db17f2ff1e553367/spring-security-
oauth2-core-6.1.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.hateoas/spring-
hateoas/2.0.2/8d0ad900c421f9c60f4366e9d2cfab2c4a4b5b56/spring-hateoas-
2.0.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
web/6.0.5/1c065e1c2a14fe688abc9ff10c470287a33e2359/spring-web-
6.0.5.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.security/spring-security-config/6.1.0-
M1/7fa500c6ed8df608ef0a386f61ba453df08777/spring-security-config-6.1.0-
M1.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.security/spring-
security-core/6.1.0-M1/f62ab6b7550dd058afbc8ee29d5dc72eb68598a8/spring-security-core-
6.1.0-M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer-
observation/1.11.0-M1/59ec4782b181818e5013bbc3f1b62c7ead9bcfc8/micrometer-observation-
1.11.0-M1.jar:/root/.gradle/caches/modules-2/files-
2.1/io.prometheus/simpleclient_pushgateway/0.16.0/65935d9855ece6f85c21ad38634703d0917b
f88c/simpleclient_pushgateway-0.16.0.jar:/root/.gradle/caches/modules-2/files-
2.1/io.zipkin.reporter2/zipkin-sender-
urlconnection/2.16.3/8ea6090584755a4040491e9407b8858241259430/zipkin-sender-
urlconnection-2.16.3.jar:/root/.gradle/caches/modules-2/files-
2.1/io.opentelemetry/opentelemetry-exporter-
zipkin/1.19.0/511b67a4cad80618944c2edad33ed5f58750f19e/opentelemetry-exporter-zipkin-
1.19.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.projectreactor.netty/reactor-
netty-http/1.1.3/ddebf6e059e10315e9a53417289c98745a8fc7a7/reactor-netty-http-
1.1.3.jar:/root/.gradle/caches/modules-2/files-2.1/io.r2dbc/r2dbc-
pool/1.0.0.RELEASE/dd17a497ab7b8c9c63d13d730647edaa8f51f3d6/r2dbc-pool-
1.0.0.RELEASE.jar:/root/.gradle/caches/modules-2/files-2.1/io.r2dbc/r2dbc-
h2/1.0.0.RELEASE/b99b52c87e7f32136f58131ad7b7a3e2eb168f75/r2dbc-h2-
1.0.0.RELEASE.jar:/root/.gradle/caches/modules-2/files-2.1/io.r2dbc/r2dbc-
spi/1.0.0.RELEASE/e3d15b2d27fdb8fdb76a181b21d5c752adf1d165/r2dbc-spi-
1.0.0.RELEASE.jar:/root/.gradle/caches/modules-2/files-
2.1/org.apache.activemq/artemis-jakarta-service-
extensions/2.28.0/85f411be873f44d4824db73cfe957005d5949576/artemis-jakarta-service-
extensions-2.28.0.jar:/root/.gradle/caches/modules-2/files-
2.1/org.apache.activemq/artemis-jakarta-
client/2.28.0/80f9b52c02403b61b7d5c9f8393698ef402994b3/artemis-jakarta-client-
2.28.0.jar:/root/.gradle/caches/modules-2/files-2.1/jakarta.jms/jakarta.jms-
api/3.1.0/e194cf91a3f908e4846542849ac11a8e0b3c68ad/jakarta.jms-api-

24
3.1.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.hibernate.orm/hibernate-
core/6.1.7.Final/343f47b34c96fe9c44bf9b219a7b3c5d6d2fc90e/hibernate-core-
6.1.7.Final.jar:/root/.gradle/caches/modules-2/files-
2.1/jakarta.persistence/jakarta.persistence-
api/3.1.0/66901fa1c373c6aff65c13791cc11da72060a8d6/jakarta.persistence-api-
3.1.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.undertow/undertow-
servlet/2.3.4.Final/8e24255d8d11d7bf4f01649ee43895b05e2a6675/undertow-servlet-
2.3.4.Final.jar:/root/.gradle/caches/modules-2/files-
2.1/jakarta.servlet/jakarta.servlet-
api/6.0.0/abecc699286e65035ebba9844c03931357a6a963/jakarta.servlet-api-
6.0.0.jar:/root/.gradle/caches/modules-2/files-2.1/javax.cache/cache-
api/1.1.1/c56fb980eb5208bfee29a9a5b9d951aba076bd91/cache-api-
1.1.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.activemq/artemis-jdbc-
store/2.28.0/b646816b75ff8947425a50d4e5b4bb2a72866d9a/artemis-jdbc-store-
2.28.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-
dbcp2/2.9.0/16d808749cf3dac900c073dd834b5e288562a59c/commons-dbcp2-
2.9.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.kafka/kafka-
clients/3.4.0/69aebfca9da335f6617f9e5e7a4b45f16e8c86b5/kafka-clients-
3.4.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-to-
slf4j/2.20.0/d37f81f8978e2672bc32c82712ab4b3f66624adc/log4j-to-slf4j-
2.20.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-
api/2.20.0/1fe6082e660daf07c689a89c94dc0f49c26b44bb/log4j-api-
2.20.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-
embed-core/10.1.5/21417d3ef8189e2af05aae0a765ad9204d7211b5/tomcat-embed-core-
10.1.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.tomcat.embed/tomcat-
embed-el/10.1.5/c125df13af42a0fc0cd342370449b1276181e2a1/tomcat-embed-el-
10.1.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.tomcat/tomcat-
jdbc/10.1.5/246dd5d42a09bb200996241a7e26ccca625994cb/tomcat-jdbc-
10.1.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
aspects/6.0.5/a758bb59124425df6614c4d335365c1a2bdbeafa/spring-aspects-
6.0.5.jar:/root/.gradle/caches/modules-2/files-
2.1/org.aspectj/aspectjweaver/1.9.19/afbffb1210239fbba5cad73093c5b216d515838f/aspectjw
eaver-1.9.19.jar:/root/.gradle/caches/modules-2/files-2.1/org.cache2k/cache2k-
spring/2.6.1.Final/cd312efb1645de91bdd8571b98273cb0acf52d15/cache2k-spring-
2.6.1.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.eclipse.angus/angus-
mail/1.1.0/5adb81aef7afb24e8b8fabce407317b0cb7d73ec/angus-mail-
1.1.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-
webapp/11.0.13/285e2b8c68b4fe46400147edcdcfec5c4f8ff3cc/jetty-webapp-
11.0.13.jar:/root/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-
servlet/11.0.13/9613672af85702e49b92d0efe4c8ef1031591d8c/jetty-servlet-
11.0.13.jar:/root/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-
security/11.0.13/414402b865b239b135774364f02bbbf6a47e8302/jetty-security-
11.0.13.jar:/root/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-
server/11.0.13/e853abaa5d7578d1e7db0655042f98845e6976c6/jetty-server-
11.0.13.jar:/root/.gradle/caches/modules-2/files-2.1/co.elastic.clients/elasticsearch-
java/8.6.2/ba36fe2c48866940a21091edd1f0e87ebaa70bc3/elasticsearch-java-
8.6.2.jar:/root/.gradle/caches/modules-2/files-
2.1/org.elasticsearch.client/elasticsearch-rest-
client/8.6.2/62405b8a99efcad0423ac92e3ff42a222a96cd46/elasticsearch-rest-client-
8.6.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.ext/jersey-
spring6/3.1.1/d391082f288d03eb2000f6551297c7e11edc2b80/jersey-spring6-

25
3.1.1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.glassfish.jersey.containers/jersey-container-servlet-
core/3.1.1/9be14c0c53e3e86946a63cdec523ed12e689e61e/jersey-container-servlet-core-
3.1.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.core/jersey-
server/3.1.1/1d2732562cd241c9093d892fca83ba0e32d0ce39/jersey-server-
3.1.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.hibernate.validator/hibernate-
validator/8.0.0.Final/8e0389f22a3a246915a3311877da4168256b95d2/hibernate-validator-
8.0.0.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.influxdb/influxdb-
java/2.23/5fd74d5ef7cc5c731f82d5fb9c7e0b6b6a94da77/influxdb-java-
2.23.jar:/root/.gradle/caches/modules-2/files-2.1/org.liquibase/liquibase-
core/4.19.0/3aa0982df3fda12ce196144696e7122e278faa99/liquibase-core-
4.19.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.mongodb/mongodb-driver-
reactivestreams/4.9.0/72e332857db9b363b5a6987b2179dc88ea08bbb9/mongodb-driver-
reactivestreams-4.9.0.jar:/root/.gradle/caches/modules-2/files-
2.1/org.mongodb/mongodb-driver-
sync/4.9.0/c998d1bd3dcbaaef18643c47799a2242f290051c/mongodb-driver-sync-
4.9.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.neo4j.driver/neo4j-java-
driver/5.5.0/645b2cdaedfb89c41e34e3e73060ad67578ee263/neo4j-java-driver-
5.5.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.quartz-
scheduler/quartz/2.3.2/18a6d6b5a40b77bd060b34cb9f2acadc4bae7c8a/quartz-
2.3.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-
data-jpa/3.1.0-M2/fe1247a188c232659a20fedab4f8f3590ab152a5/spring-data-jpa-3.1.0-
M2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
orm/6.0.5/82e5d0afe235807b25e92c7bf5054bcd7206f34d/spring-orm-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
jdbc/6.0.5/7555dec3648ffb656fb36a902cf9a74c5db7c392/spring-jdbc-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
jms/6.0.5/a55469a3e394bbf2853a6b29aa670368bd38a0a1/spring-jms-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
messaging/6.0.5/eebce63fbbf9fbb1e4ceffacc4a6ba87e000b43d/spring-messaging-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-
data-ldap/3.1.0-M2/b236c2a173b5cb5090eaa5e0b85654529b2d4be9/spring-data-ldap-3.1.0-
M2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-
mongodb/4.1.0-M2/e2cde823f68fdecbf44e28c8bd09c310ac100c9/spring-data-mongodb-4.1.0-
M2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-data-
redis/3.1.0-M2/d3ea6e8e78fe98e23d0ebb872ba5e92ef6de3b22/spring-data-redis-3.1.0-
M2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.graphql/spring-
graphql/1.1.2/7fb2da388772bebeffd974cf20df7702db9dbac2/spring-graphql-
1.1.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.session/spring-
session-core/3.0.0/6a1494a8036e6d3d2fe7dc81724d41bbb61c2ed0/spring-session-core-
3.0.0.jar:/root/.gradle/caches/modules-2/files-
2.1/redis.clients/jedis/4.3.1/c780769bddbb1dbba2441c89af68e9fa126a32cb/jedis-
4.3.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.projectreactor/reactor-
test/3.5.3/79a878db483cec2afa915d2b540d3984a6783c65/reactor-test-
3.5.3.jar:/root/.gradle/caches/modules-2/files-
2.1/com.squareup.okhttp3/mockwebserver/4.10.0/59da7fa7d338bfccee2ae831bee9ada9a1027363
/mockwebserver-4.10.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.jayway.jsonpath/json-path/2.7.0/f9d7d9659f2694e61142046ff8a216c047f263e8/json-
path-2.7.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.undertow/undertow-
core/2.3.4.Final/1116e3a9dcfcc84baefa3a433f7a8526182f9088/undertow-core-
2.3.4.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-

26
runtime/4.0.2/e4e4e0c5b0d42054d00dc4023901572a60d368c7/jaxb-runtime-
4.0.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.jaxb/jaxb-
core/4.0.2/8c29249f6c10f4ee08967783831580b0f5c5360/jaxb-core-
4.0.2.jar:/root/.gradle/caches/modules-2/files-2.1/jakarta.xml.bind/jakarta.xml.bind-
api/4.0.0/bbb399208d288b15ec101fa4fcfc4bd77cedc97a/jakarta.xml.bind-api-
4.0.0.jar:/root/.gradle/caches/modules-2/files-
2.1/org.aspectj/aspectjrt/1.9.19/d6d4ccdb1318b19c85e8c1c2227941c32a4253a9/aspectjrt-
1.9.19.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core-
test/6.0.5/4c1601e8d487ba7a7bfd20a34933983658d15890/spring-core-test-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.assertj/assertj-
core/3.24.2/ebbf338e33f893139459ce5df023115971c2786f/assertj-core-
3.24.2.jar:/root/.gradle/caches/modules-2/files-
2.1/org.awaitility/awaitility/4.2.0/2c39784846001a9cffd6c6b89c78de62c0d80fb8/awaitilit
y-4.2.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.cache2k/cache2k-
core/2.6.1.Final/7e333caaafa2bf4e489b58537b5c4218a4e6505/cache2k-core-
2.6.1.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.cache2k/cache2k-
api/2.6.1.Final/6afd23d7897fff56515f0cefa6a846bdebe10bce/cache2k-api-
2.6.1.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-
library/2.2/cf530c8a0bc993487c64e940ae639bb4a6104dc6/hamcrest-library-
2.2.jar:/root/.gradle/caches/modules-2/files-
2.1/junit/junit/4.13.1/cdd00374f1fee76b11e2a9d127405aa3f6be5b6a/junit-
4.13.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.hamcrest/hamcrest-
core/2.2/3f2bd07716a31c395e2837254f37f21f0f0ab24b/hamcrest-core-
2.2.jar:/root/.gradle/caches/modules-2/files-
2.1/org.hamcrest/hamcrest/2.2/1820c0968dba3a11a1b30669bb1f01978a91dedc/hamcrest-
2.2.jar:/root/.gradle/caches/modules-2/files-
2.1/org.hsqldb/hsqldb/2.7.1/9ffb617125371538a32eb9ba1cb2fa743b2c993b/hsqldb-
2.7.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-
launcher/1.9.2/38e0bfad8c57d4cd1a8f27926c25ffe9543068d6/junit-platform-launcher-
1.9.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-junit-
jupiter/4.11.0/6a2a2d138141e9c003451292348173c899450872/mockito-junit-jupiter-
4.11.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-
params/5.9.2/bc2765afb7b85b583c710dd259a11c6b8c39e912/junit-jupiter-params-
5.9.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-
engine/5.9.2/572f7a553b53f83ee59cc045ce1c3772864ab76c/junit-jupiter-engine-
5.9.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-jupiter-
api/5.9.2/fed843581520eac594bc36bb4b0f55e7b947dda9/junit-jupiter-api-
5.9.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-
engine/1.9.2/40aeef2be7b04f96bb91e8b054affc28b7c7c935/junit-platform-engine-
1.9.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.junit.platform/junit-platform-
commons/1.9.2/6f9f8621d8230cd38aa42e58ccbc0c00569131ce/junit-platform-commons-
1.9.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.junit.jupiter/junit-
jupiter/5.9.2/26c586fbe0ebd81b48c9f11f0d998124248697ae/junit-jupiter-
5.9.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.mockito/mockito-
core/4.11.0/ce5226440c2ee78915716d4ce3d10aed2dbf26fb/mockito-core-
4.11.0.jar:/root/.gradle/caches/modules-2/files-
2.1/org.skyscreamer/jsonassert/1.5.1/6d842d0faf4cf6725c509a5e5347d319ee0431c3/jsonasse
rt-1.5.1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.yaml/snakeyaml/1.33/2cd0a87ff7df953f810c344bdf2fe3340b954c69/snakeyaml-
1.33.jar:/root/.gradle/caches/modules-2/files-
2.1/jakarta.management.j2ee/jakarta.management.j2ee-

27
api/1.1.4/dbbe7575f97efd0b04f3a8455cf82c256c853055/jakarta.management.j2ee-api-
1.1.4.jar:/root/.gradle/caches/modules-2/files-
2.1/jakarta.transaction/jakarta.transaction-
api/2.0.1/51a520e3fae406abb84e2e1148e6746ce3f80a1a/jakarta.transaction-api-
2.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-saml-
impl/4.0.1/995986fd848ede1443469f3aff1f82b740224262/opensaml-saml-impl-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-saml-
api/4.0.1/2205aba935f4da468382a3dc5f32c3821ec1564c/opensaml-saml-api-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-soap-
impl/4.0.1/38bfaf5fc189774e94ead218bd1c754da295c226/opensaml-soap-impl-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-profile-
api/4.0.1/bece5f6d30d4051e6eeaf2b88dd1e5a13f6b28b7/opensaml-profile-api-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-soap-
api/4.0.1/d8e11e31cb5164788a530478e1831969e94a38b6/opensaml-soap-api-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-xmlsec-
impl/4.0.1/efa15ba85127ac3b20c75b8d4f04c7e92325a00a/opensaml-xmlsec-impl-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-xmlsec-
api/4.0.1/edb4365d3d183933cf0d0b31966ea352b8d20c60/opensaml-xmlsec-api-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-security-
impl/4.0.1/64568e9aa8bd7bcd76983e462f9eb2c3dcacbdce/opensaml-security-impl-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-security-
api/4.0.1/f3d33ca18cde2a7c7e3643aeca9f03974be9577d/opensaml-security-api-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-messaging-
api/4.0.1/eb9c9971f6bd2a6681a2a692a1f29a35874de389/opensaml-messaging-api-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-
core/4.0.1/ec3d1734137d6ccabba7d6d5e149f571beeaa673/opensaml-core-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context-
support/6.0.5/ccdfc353020a20b34b7dd7cf48e3fc10ef4f6af2/spring-context-support-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-
data-keyvalue/3.1.0-M2/db52bd89eaf21b4de4a65b795e62a38841b236c6/spring-data-keyvalue-
3.1.0-M2.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.plugin/spring-plugin-
core/3.0.0/d56aa02dd7272dca30aa598dc8b72e823227046a/spring-plugin-core-
3.0.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
context/6.0.5/468e6a8446072a9eea95ff17bf5f03c97414cdf3/spring-context-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
test/6.0.5/8be22c21ccbfdfc9651e205559ad11c4063373e9/spring-test-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.ldap/spring-
ldap-core/3.0.1/ade537cf91213952966685679423b59ca2cfb77f/spring-ldap-core-
3.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
tx/6.0.5/92127c0a17c63f70320d20b05d56e21acd6ffbbf/spring-tx-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.amqp/spring-
amqp/3.0.2/698cf3a55e202356034288ed0bdccc2f8579b7e2/spring-amqp-
3.0.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.data/spring-
data-commons/3.1.0-M2/7f000c6936062cb44f3748cd6bdb931d7229e0eb/spring-data-commons-
3.1.0-M2.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
aop/6.0.5/ac13a58d1ccc0619709572a05f067cc81741d7d3/spring-aop-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
oxm/6.0.5/ab02def696dd39a69a8416dd1f8c252bf9a83b3a/spring-oxm-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
beans/6.0.5/2ab5549926db09a63786c8073a79d686ea15264c/spring-beans-

28
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
expression/6.0.5/7fcdf1cc183667b43583dca92d9345d27e43f040/spring-expression-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework/spring-
core/6.0.5/257932031f676dae20989046630dd5deed6a80cb/spring-core-
6.0.5.jar:/root/.gradle/caches/modules-2/files-2.1/com.vaadin.external.google/android-
json/0.0.20131108.vaadin1/fa26d351fe62a6a17f5cda1287c1c6110dec413f/android-json-
0.0.20131108.vaadin1.jar:/root/.gradle/caches/modules-2/files-
2.1/com.mchange/c3p0/0.9.5.5/37dfc3021e5589d65ff2ae0becf811510b87ab01/c3p0-
0.9.5.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.core/jersey-
client/3.1.1/5b9598393a461e16ad517a4379650be33410c07f/jersey-client-
3.1.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.inject/jersey-
hk2/3.1.1/9a9c91a894d5be3fc6d83f50c2d1158cc7fb9277/jersey-hk2-
3.1.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.core/jersey-
common/3.1.1/8e35d8da05e68c355732acd0a655e94aed703709/jersey-common-
3.1.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/spring-
bridge/3.0.3/6e8419afa484fa51a3e9ae2a4304dbd18591e1e6/spring-bridge-
3.0.3.jar:/root/.gradle/caches/modules-2/files-
2.1/org.glassfish.hk2/hk2/3.0.3/bea52296bcc6bf99f658746070ad63aefd338c1a/hk2-
3.0.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/hk2-
core/3.0.3/d88b6b430be7cb54c48693c7155fe4dbafb53a76/hk2-core-
3.0.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/hk2-
runlevel/3.0.3/2b3cf01d5e62d54109867bad9f36292a45d93a33/hk2-runlevel-
3.0.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/hk2-
locator/3.0.3/3b28d5d5675410d251ddf75629b685f2378266f1/hk2-locator-
3.0.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/hk2-
api/3.0.3/40f2906b0da70efdf1d73d13d927b769f5724ae1/hk2-api-
3.0.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/hk2-
utils/3.0.3/7a4ea0d480e81e819635a9e79c2fc0ee9b5be46b/hk2-utils-
3.0.3.jar:/root/.gradle/caches/modules-2/files-2.1/jakarta.inject/jakarta.inject-
api/2.0.1/4c28afe1991a941d7702fe1362c365f0a8641d1e/jakarta.inject-api-
2.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-resolver-
provider/3.6.3/115240b65c1d0e9745cb2012b977afc3d1795f94/maven-resolver-provider-
3.6.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-
resolver-connector-basic/1.6.3/d1c8f8e30c2aae85330e21329d42d7e7f12a7cc3/maven-
resolver-connector-basic-1.6.3.jar:/root/.gradle/caches/modules-2/files-
2.1/org.apache.maven.resolver/maven-resolver-
impl/1.6.3/2714ffe60bd71259a41b3e4816122504b5f2db93/maven-resolver-impl-
1.6.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-
resolver-transport-http/1.6.3/f931c197612dcd8c54561cedfdccf9baf4218357/maven-resolver-
transport-http-1.6.3.jar:/root/.gradle/caches/modules-2/files-
2.1/org.apache.maven.resolver/maven-resolver-
spi/1.6.3/176425f73fe768bf9cdb8b5a742e7a00c1d8d178/maven-resolver-spi-
1.6.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-
resolver-util/1.6.3/7d5a6879037b34c61c2f527dfcfb59084e86ed0/maven-resolver-util-
1.6.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.maven.resolver/maven-
resolver-api/1.6.3/5ee235aa5ac5994b5dc847f8e78ffe9d77dd55d7/maven-resolver-api-
1.6.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.opensaml/opensaml-storage-
api/4.0.1/4e46a7f965ac9f91976b0f298fd4d4e69e9056db/opensaml-storage-api-
4.0.1.jar:/root/.gradle/caches/modules-2/files-2.1/net.shibboleth.utilities/java-
support/8.0.0/298f946e93922d789b6231599a446cea9dbbe80e/java-support-
8.0.0.jar:/root/.gradle/caches/modules-2/files-

29
2.1/org.apache.santuario/xmlsec/2.1.4/cb43326f02e3e77526c24269c8b5d3cc3f7f6653/xmlsec-
2.1.4.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.cloud/google-cloud-
monitoring/3.11.0/c6f32f739fe337a68f4141e6cb3fac47022c0b95/google-cloud-monitoring-
3.11.0.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.auth/google-auth-
library-oauth2-http/1.15.0/a25419e2e1132dc1c7f9194e683da6f9230d5648/google-auth-
library-oauth2-http-1.15.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.google.http-client/google-http-client-
gson/1.42.3/3251b36ee9e9c3effe3293f8d7094aa3841cad55/google-http-client-gson-
1.42.3.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.http-client/google-
http-client/1.42.3/e0feb1bd93ad9fb1e064706cff96e32b41a57b9c/google-http-client-
1.42.3.jar:/root/.gradle/caches/modules-2/files-
2.1/org.apache.httpcomponents/httpclient/4.5.14/1194890e6f56ec29177673f2f12d0b8e627dec
98/httpclient-4.5.14.jar:/root/.gradle/caches/modules-2/files-2.1/commons-
codec/commons-codec/1.15/49d94806b6e3dc933dacbd8acb0fdbab8ebd1e5d/commons-codec-
1.15.jar:/root/.gradle/caches/modules-2/files-2.1/com.github.spotbugs/spotbugs-
annotations/3.1.12/ba2c77a05091820668987292f245f3b089387bfa/spotbugs-annotations-
3.1.12.jar:/root/.gradle/caches/modules-2/files-2.1/io.opencensus/opencensus-contrib-
http-util/0.31.1/3c13fc5715231fadb16a9b74a44d9d59c460cfa8/opencensus-contrib-http-
util-0.31.1.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/31.1-
jre/60458f877d055d0c9114d9e1a2efb737b4bc282c/guava-31.1-
jre.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.api.grpc/proto-google-
cloud-monitoring-v3/3.11.0/8a16fbe0c4a8345f4987b0c7c59fe5cef03218cf/proto-google-
cloud-monitoring-v3-3.11.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.google.code.findbugs/jsr305/3.0.2/25ea2e8b0c338a877313bd4672d3fe056ea78f0d/jsr
305-3.0.2.jar:/root/.gradle/caches/modules-2/files-2.1/io.dropwizard.metrics/metrics-
graphite/4.2.16/7c74f33ac74a78dfd71b80c76090c2b6b1deec5a/metrics-graphite-
4.2.16.jar:/root/.gradle/caches/modules-2/files-2.1/io.dropwizard.metrics/metrics-
core/4.2.16/c88d20f76900e31ea4516cd61a403f9fd6e66ed/metrics-core-
4.2.16.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.velocity/velocity-
engine-core/2.2/68d899cb70cd27d495562fa808feb2da4926d38f/velocity-engine-core-
2.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.activemq/artemis-core-
client/2.28.0/5bc376dd775935dcce787cdec3df13c3643626f5/artemis-core-client-
2.28.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.activemq/artemis-
selector/2.28.0/2874be9236a71657ce56bbda8e5998037a0cd3cf/artemis-selector-
2.28.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.activemq/artemis-
journal/2.28.0/4e4a45f62a51c0cf3a35404df9a34bfab5f35e22/artemis-journal-
2.28.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.activemq/artemis-
commons/2.28.0/bbdff789347a62864b61fd468f3e7f7e5ffc2b85/artemis-commons-
2.28.0.jar:/root/.gradle/caches/modules-2/files-2.1/com.zaxxer/HikariCP-
java7/2.4.13/3e441eddedb374d4de8e3abbb0c90997f51cc97b/HikariCP-java7-
2.4.13.jar:/root/.gradle/caches/modules-2/files-2.1/com.rabbitmq/amqp-
client/5.16.0/c70c66a8e5a92e41adf618efa7d8025db29cdf3/amqp-client-
5.16.0.jar:/root/.gradle/caches/modules-2/files-2.1/com.graphql-java/graphql-
java/19.3/f1e408ce01c0a1d5649a767fdb3d1176043dc82c/graphql-java-
19.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-
http/11.0.13/ffe7fa06593b65756d0fc861ff2201473268fc01/jetty-http-
11.0.13.jar:/root/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-
io/11.0.13/e3a318e7241a786a309a82d8cbee7a172a2e6956/jetty-io-
11.0.13.jar:/root/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-
xml/11.0.13/e5bf987107bb6f0537e4a2b76fc05a8b4dfcc93/jetty-xml-
11.0.13.jar:/root/.gradle/caches/modules-2/files-2.1/com.netflix.spectator/spectator-

30
reg-atlas/1.5.3/528a883db54fa54f4ad36d7ac3526d4a0551365f/spectator-reg-atlas-
1.5.3.jar:/root/.gradle/caches/modules-2/files-2.1/com.signalfx.public/signalfx-
java/1.0.28/7b7bf4634bc48323c134955e31607a1b49ad985d/signalfx-java-
1.0.28.jar:/root/.gradle/caches/modules-2/files-2.1/com.graphql-java/java-
dataloader/3.2.0/f45c53595cab4c23e35526cc122e2bd159a50516/java-dataloader-
3.2.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-
util/11.0.13/3611d0f3eea3210df3c54ec9b8b4316dd3fb9e46/jetty-util-
11.0.13.jar:/root/.gradle/caches/modules-2/files-2.1/com.netflix.spectator/spectator-
ext-ipc/1.5.3/aad5c2f588ca63630bf773a2c2fabab1d052450/spectator-ext-ipc-
1.5.3.jar:/root/.gradle/caches/modules-2/files-2.1/com.netflix.spectator/spectator-
api/1.5.3/2e79816d1a74340f47d913233c7fb790b8bec8cc/spectator-api-
1.5.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-
api/2.0.6/88c40d8b4f33326f19a7d3c0aaf2c7e8721d4953/slf4j-api-
2.0.6.jar:/root/.gradle/caches/modules-2/files-
2.1/org.apache.httpcomponents/httpcore/4.4.16/51cf043c87253c9f58b539c9f7e44c8894223850
/httpcore-4.4.16.jar:/root/.gradle/caches/modules-2/files-
2.1/org.apache.activemq/artemis-quorum-
api/2.28.0/ef85a7a32f6e0c8e9610ee3c979f2e0d9cd2e3f2/artemis-quorum-api-
2.28.0.jar:/root/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-
buddy/1.14.0/93753506038396c37c029de1b54374b1f50a1eba/byte-buddy-
1.14.0.jar:/root/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-
agent/1.14.0/4970ca464b1f70226b1b06a05c262026b51f5dea/byte-buddy-agent-
1.14.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.fasterxml/classmate/1.5.1/3fe0bed568c62df5e89f4f174c101eab25345b6c/classmate-
1.5.1.jar:/root/.gradle/caches/modules-2/files-
2.1/com.opencsv/opencsv/5.7.1/d707c095bc8c7c22fb3e377de774458a76229da4/opencsv-
5.7.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-model-
builder/3.6.3/4ef1d56f53d3e0a9003b7cc82c89af9878321e82/maven-model-builder-
3.6.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-
artifact/3.6.3/f8ff8032903882376e8d000c51e3e16d20fc7df7/maven-artifact-
3.6.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-
text/1.10.0/3363381aef8cef2dbc1023b3e3a9433b08b64e01/commons-text-
1.10.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-
configuration2/2.8.0/6a76acbe14d2c01d4758a57171f3f6a150dbd462/commons-configuration2-
2.8.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-
lang3/3.12.0/c6842c86792ff03b9f1d1fe2aab8dc23aa6c6f0e/commons-lang3-
3.12.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-
pool2/2.11.1/8970fd110c965f285ed4c6e40be7630c62db6f68/commons-pool2-
2.11.1.jar:/root/.gradle/caches/modules-2/files-2.1/com.couchbase.client/java-
client/3.4.2/2e55dabbcc58c842d9edb85d90f75f06d5488dcc/java-client-
3.4.2.jar:/root/.gradle/caches/modules-2/files-
2.1/com.google.code.gson/gson/2.10.1/b3add478d4382b78ea20b1671390a858002feb6c/gson-
2.10.1.jar:/root/.gradle/caches/modules-2/files-
2.1/com.h2database/h2/2.1.214/d5c2005c9e3279201e12d4776c948578b16bf8b2/h2-
2.1.214.jar:/root/.gradle/caches/modules-2/files-
2.1/org.apache.httpcomponents/httpasyncclient/4.1.5/cd18227f1eb8e9a263286c1d7362ceb24f
6f9b32/httpasyncclient-4.1.5.jar:/root/.gradle/caches/modules-2/files-
2.1/org.apache.httpcomponents/httpcore-
nio/4.4.16/cd21c80a9956be48c4c1cfd2f594ba02857d0927/httpcore-nio-
4.4.16.jar:/root/.gradle/caches/modules-2/files-2.1/org.eclipse.angus/angus-
activation/2.0.0/72369f4e2314d38de2dcbb277141ef0226f73151/angus-activation-

31
2.0.0.jar:/root/.gradle/caches/modules-2/files-2.1/jakarta.mail/jakarta.mail-
api/2.1.1/a1b95c040177e108616b239b892b178edc9c3955/jakarta.mail-api-
2.1.1.jar:/root/.gradle/caches/modules-2/files-
2.1/jakarta.activation/jakarta.activation-
api/2.1.1/88c774ab863a21fb2fc4219af95379fafe499a31/jakarta.activation-api-
2.1.1.jar:/root/.gradle/caches/modules-2/files-
2.1/jakarta.annotation/jakarta.annotation-
api/2.1.1/48b9bda22b091b1f48b13af03fe36db3be6e1ae3/jakarta.annotation-api-
2.1.1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.eclipse.parsson/parsson/1.0.0/2a3b84d40ad99500d8032312bb6b03c35018dcca/parsson
-1.0.0.jar:/root/.gradle/caches/modules-2/files-2.1/jakarta.json/jakarta.json
-api/2.1.1/9fb92ec0ea12d3ef92d5eeca351b946cdb06317e/jakarta.json-api
-2.1.1.jar:/root/.gradle/caches/modules-2/files
-2.1/jakarta.validation/jakarta.validation
-api/3.0.2/92b6631659ba35ca09e44874d3eb936edfeee532/jakarta.validation-api
-3.0.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.jersey.ext/jersey
-entity-filtering/3.1.1/6f493db13f53e26bd1c5b075d5c4c10193afdae5/jersey-entity
-filtering-3.1.1.jar:/root/.gradle/caches/modules-2/files
-2.1/jakarta.ws.rs/jakarta.ws.rs
-api/3.1.0/15ce10d249a38865b58fc39521f10f29ab0e3363/jakarta.ws.rs-api
-3.1.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.jboss.xnio/xnio
-nio/3.8.8.Final/a5d2faf8d02e0a0bb9e9eabca8e38173cb640331/xnio-nio
-3.8.8.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.jboss.xnio/xnio
-api/3.8.8.Final/1ba9c8b9a8dea1c6cd656155943e6d4c2c631fa7/xnio-api
-3.8.8.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.wildfly.client/wildfly
-client-config/1.0.1.Final/2a803b23c40a0de0f03a90d1fd3755747bc05f4b/wildfly-client
-config-1.0.1.Final.jar:/root/.gradle/caches/modules-2/files
-2.1/org.jboss.threads/jboss
-threads/3.5.0.Final/dd23d4788b3eafe9597ef3fe028e46ceb293ba8d/jboss-threads
-3.5.0.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.jboss.logging/jboss
-logging/3.5.0.Final/c19307cc11f28f5e2679347e633a3294d865334d/jboss-logging
-3.5.0.Final.jar:/root/.gradle/caches/modules-2/files-2.1/net.minidev/json
-smart/2.4.8/7c62f5f72ab05eb54d40e2abf0360a2fe9ea477f/json-smart
-2.4.8.jar:/root/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback
-core/1.4.5/e9bb2ea70f84401314da4300343b0a246c8954da/logback-core
-1.4.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.mongodb/mongodb-driver
-core/4.9.0/cb0bcb358fd42b350c68581cac5bb5421ef0cf/mongodb-driver-core
-4.9.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.mongodb/bson-record
-codec/4.9.0/efb834957f9dac5b77ee35fc2a6fddd0b33c33a6/bson-record-codec
-4.9.0.jar:/root/.gradle/caches/modules-2/files
-2.1/org.mongodb/bson/4.9.0/d0f5324745513edd06fa20981f33be53f589d1ef/bson
-4.9.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.projectreactor.addons/reactor
-pool/1.0.0/833d7df5dd0ebca34650e66195d944d3884cd2d2/reactor-pool
-1.0.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.projectreactor.netty/reactor
-netty-core/1.1.3/cefb39ec59fcf9dec2b465219ada90424ee2a928/reactor-netty-core
-1.1.3.jar:/root/.gradle/caches/modules-2/files-2.1/com.couchbase.client/core
-io/2.4.2/46b78709c77b6e722682db97d1067d3ba74135b0/core-io
-2.4.2.jar:/root/.gradle/caches/modules-2/files-2.1/io.projectreactor/reactor
-core/3.5.3/dd102ecdb21ff78a486074dbad55331f8847eb5d/reactor-core
-3.5.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.reactivestreams/reactive
-streams/1.0.4/3864a1320d97d7b045f729a326e1e077661f31b7/reactive-streams

32
-1.0.4.jar:/root/.gradle/caches/modules-2/files-2.1/org.springframework.retry/spring
-retry/2.0.0/6a7a653901b58eb741692417f33b5bebedbd01f7/spring-retry
-2.0.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.tomcat/tomcat
-annotations-api/10.1.5/dd9d81b20578e84f49044a4ad0bea8d44bcf05be/tomcat-annotations
-api-10.1.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven
-model/3.6.3/61c7848dce2fbf7f7ab0fdc8e8a7cc9da5dd7827/maven-model
-3.6.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-repository
-metadata/3.6.3/14d28071c85e76b656c46c465db91d394d6f48f0/maven-repository-metadata
-3.6.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus
-utils/3.2.1/13b015768e0d04849d2794e4c47eb02d01a0de32/plexus-utils
-3.2.1.jar:/root/.gradle/caches/modules-2/files
-2.1/com.google.guava/failureaccess/1.0.1/1dcf1de382a0bf95a3d8b0849546c88bac1292c9/fai
lureaccess-1.0.1.jar:/root/.gradle/caches/modules-2/files-
2.1/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-
guava/b421526c5f297295adef1c886e5246c39d4ac629/listenablefuture-9999.0-empty-to-avoid-
conflict-with-guava.jar:/root/.gradle/caches/modules-2/files-
2.1/org.checkerframework/checker-
qual/3.31.0/eeefd4af42e2f4221d145c1791582f91868f99ab/checker-qual-
3.31.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.google.errorprone/error_prone_annotations/2.18.0/89b684257096f548fa39a7df9fdaa
409d4d4df91/error_prone_annotations-2.18.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.google.j2objc/j2objc-
annotations/1.3/ba035118bc8bac37d7eff77700720999acd9986d/j2objc-annotations-
1.3.jar:/root/.gradle/caches/modules-2/files-
2.1/org.cryptacular/cryptacular/1.2.4/4994c015d87886212683245d13e87f6fb903a760/cryptac
ular-1.2.4.jar:/root/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcpkix-
jdk15on/1.64/3dac163e20110817d850d17e0444852a6d7d0bd7/bcpkix-jdk15on-
1.64.jar:/root/.gradle/caches/modules-2/files-2.1/org.bouncycastle/bcprov-
jdk15on/1.64/1467dac1b787b5ad2a18201c0c281df69882259e/bcprov-jdk15on-
1.64.jar:/root/.gradle/caches/modules-2/files-2.1/com.fasterxml.woodstox/woodstox-
core/6.5.0/cafa8aac5ddf104d28f172f19294d88d5e8c24c0/woodstox-core-
6.5.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.zipkin.reporter2/zipkin-sender-
okhttp3/2.16.3/c98cff5bc2fa32914e613efc3cc95dde9906c01b/zipkin-sender-okhttp3-
2.16.3.jar:/root/.gradle/caches/modules-2/files-2.1/io.zipkin.aws/brave-propagation-
aws/0.23.4/ec6d25d2fe5a2fcd3ad9345b3cce20d79694996f/brave-propagation-aws-
0.23.4.jar:/root/.gradle/caches/modules-2/files-2.1/io.zipkin.brave/brave-context-
slf4j/5.15.0/296f4e06e77c840418a42e903944af7b5947e957/brave-context-slf4j-
5.15.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.zipkin.brave/brave-
instrumentation-http/5.15.0/6ed6e30a75d98e3237981f88fb8b15c5969f2329/brave-
instrumentation-http-5.15.0.jar:/root/.gradle/caches/modules-2/files-
2.1/io.zipkin.brave/brave/5.15.0/854b80216aedbb93678381d4abbe956b2bb282b6/brave-
5.15.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.zipkin.reporter2/zipkin-
reporter-brave/2.16.3/4d5017d71e4de139b6a31612cfd837b7c71d288c/zipkin-reporter-brave-
2.16.3.jar:/root/.gradle/caches/modules-2/files-2.1/io.zipkin.reporter2/zipkin-
reporter/2.16.3/7e43d8be3376d305c355d969e8b9f3a62221380/zipkin-reporter-
2.16.3.jar:/root/.gradle/caches/modules-2/files-
2.1/io.zipkin.zipkin2/zipkin/2.23.2/1c2c7f2e91a3749311f7f75d0535d14ba2e2f6/zipkin-
2.23.2.jar:/root/.gradle/caches/modules-2/files-2.1/com.datastax.oss/native-
protocol/1.5.1/97e812373a5fe7667384e7ad67819d2c71878bf8/native-protocol-
1.5.1.jar:/root/.gradle/caches/modules-2/files-2.1/com.datastax.oss/java-driver-
shaded-guava/25.1-jre-graal-sub-1/522771d14d6b7dba67056a39db33f205ffbed6a4/java-

33
driver-shaded-guava-25.1-jre-graal-sub-1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.glassfish.jaxb/txw2/4.0.2/24e167be69c29ebb7ee0a3b1f9b546f1dfd111fc/txw2-
4.0.2.jar:/root/.gradle/caches/modules-2/files-2.1/com.sun.istack/istack-commons-
runtime/4.1.1/9b3769c76235bc283b060da4fae2318c6d53f07e/istack-commons-runtime-
4.1.1.jar:/root/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/logging-
interceptor/4.10.0/ae7524eec42d4ab0c3a7cb93da010cf9bcc5007c/logging-interceptor-
4.10.0.jar:/root/.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/converter-
moshi/2.9.0/db0979801926e6d39bc2478736145f9761c3e034/converter-moshi-
2.9.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.squareup.retrofit2/retrofit/2.9.0/d8fdfbd5da952141a665a403348b74538efc05ff/ret
rofit-2.9.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.squareup.okhttp3/okhttp/4.10.0/cd63657ac15770ed1420647154c9f44645533bef/okhttp
-4.10.0.jar:/root/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio
-jvm/3.0.0/ab5a73fa2ccb4a36b0b5c69fe10b16d0255bcf8/okio-jvm
-3.0.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib
-jdk8/1.8.10/7c002ac41f547a82e81dfebd2a20577a738dbf3f/kotlin-stdlib-jdk8
-1.8.10.jar:/root/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin
-stdlib-jdk7/1.8.10/cb726a23c808a850a43e7d6b9d1ba91b02fe9f05/kotlin-stdlib-jdk7
-1.8.10.jar:/root/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin
-stdlib/1.8.10/6d5560a229477df9406943d5feda5618e98eb64c/kotlin-stdlib
-1.8.10.jar:/root/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin
-stdlib-common/1.8.10/a61b182458550492c12aee66157d7b524a63a5ec/kotlin-stdlib-common
-1.8.10.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/micrometer
-commons/1.11.0-M1/738e45aec810e3a2f367610b11d6b853c84c8a01/micrometer-commons-1.11.0
-M1.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec
-http2/4.1.89.Final/f524760814dcea13dd40c566bd845e3286cbdbac/netty-codec-http2
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty-handler
-proxy/4.1.89.Final/561cba12be44f90ba3e5110cefecdb785fa199cc/netty-handler-proxy
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec
-http/4.1.89.Final/75c46974dce9c730b999e83bbcdab2fc25e85aae/netty-codec-http
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty-resolver-dns
-native-macos/4.1.89.Final/26ceb1a7e46c2d788cfc67108c28e2ce86561ce8/netty-resolver-dns
-native-macos-4.1.89.Final-osx-x86_64.jar:/root/.gradle/caches/modules-2/files
-2.1/io.netty/netty-resolver-dns-classes
-macos/4.1.89.Final/e025471ae349967739477ec2ca644b81da9325f/netty-resolver-dns-classes
-macos-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty
-resolver-dns/4.1.89.Final/60bfbaed490d8adb6c69d7e83854acb5e57fb75d/netty-resolver-dns
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty
-handler/4.1.89.Final/ced584e9eba5a6b7aad7c6a28a60c13375459f1a/netty-handler
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport
-native-epoll/4.1.89.Final/c653e5326eb3e55e423f346889d866a7a19f835e/netty-transport
-native-epoll-4.1.89.Final-linux-aarch_64.jar:/root/.gradle/caches/modules-2/files
-2.1/io.netty/netty-transport-native
-epoll/4.1.89.Final/f5619abb188be61100451d3e03858072006a8117/netty-transport-native
-epoll-4.1.89.Final-linux-x86_64.jar:/root/.gradle/caches/modules-2/files
-2.1/io.netty/netty-transport-native
-kqueue/4.1.89.Final/50bd5dc0c5971564608ec5f1a1b57a936d3bfb51/netty-transport-native
-kqueue-4.1.89.Final-osx-x86_64.jar:/root/.gradle/caches/modules-2/files
-2.1/io.netty/netty-codec
-socks/4.1.89.Final/17aabd2ec883e5fbd6c3ecd990cb78fc036e015a/netty-codec-socks
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec

34
-dns/4.1.89.Final/caf56f3ad373a6c724d0bc602a6fd4aff8d97639/netty-codec-dns
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty
-codec/4.1.89.Final/f03a649ffa405ca4c802a8bfcc2abfe70ae485ca/netty-codec
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport
-classes-epoll/4.1.89.Final/e22beed74809aa5bc5c19370ac92eee4b437ae20/netty-transport
-classes-epoll-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files
-2.1/io.netty/netty-transport-classes
-kqueue/4.1.89.Final/8dc89b65fafb3efbadd86d4d185012b2d53c2804/netty-transport-classes
-kqueue-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty
-transport-native-unix
-common/4.1.89.Final/a7717ed61393d5aad202a92bb02f661ed525bf86/netty-transport-native
-unix-common-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty
-transport/4.1.89.Final/e7ff320310eafe302c0dfb9690ae7201ab61ead2/netty-transport
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty
-buffer/4.1.89.Final/b1d3dbf69a75eaa8793c7e00cff2851dac9fd725/netty-buffer
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty
-resolver/4.1.89.Final/686b21bf3488747bc834ee9e60a863f37b71f35e/netty-resolver
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty
-common/4.1.89.Final/c0c80bfe45cc85da5030ea8fc64071e28d0f6f5f/netty-common
-4.1.89.Final.jar:/root/.gradle/caches/modules-2/files-2.1/io.netty/netty-tcnative
-classes/2.0.56.Final/df828615a3a4b4b44d7f41aa3d22b744fe7170d/netty-tcnative-classes
-2.0.56.Final.jar:/root/.gradle/caches/modules-2/files
-2.1/io.opentelemetry.instrumentation/opentelemetry-instrumentation-api-semconv/1.21.0
-alpha/ac17f07ef52569f0d745c8a9c1294f5c5eb6a1d3/opentelemetry-instrumentation-api
-semconv-1.21.0-alpha.jar:/root/.gradle/caches/modules-2/files
-2.1/io.opentelemetry/opentelemetry
-sdk/1.19.0/a21c5b15550287f9d4782b18d82d944504fbe47e/opentelemetry-sdk
-1.19.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.opentelemetry/opentelemetry
-sdk-trace/1.19.0/3683370ef425efe9cf794f3d57016f687e7ca5df/opentelemetry-sdk-trace
-1.19.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.opentelemetry/opentelemetry
-sdk-logs/1.19.0-alpha/95e901fa9a6beb67ff83e353843556f490fec719/opentelemetry-sdk-logs
-1.19.0-alpha.jar:/root/.gradle/caches/modules-2/files
-2.1/io.opentelemetry/opentelemetry-sdk
-metrics/1.19.0/7a588f89f003fdf19e2a50bfd977c2a9075d4c98/opentelemetry-sdk-metrics
-1.19.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.opentelemetry/opentelemetry
-sdk-common/1.19.0/72b3793dd29065e43a7b426f9b34ed6d23483f52/opentelemetry-sdk-common
-1.19.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.opentelemetry/opentelemetry
-semconv/1.21.0-alpha/1c89d57f157d4da3a2306b23bf6366d036a70f05/opentelemetry-semconv
-1.21.0-alpha.jar:/root/.gradle/caches/modules-2/files
-2.1/io.opentelemetry/opentelemetry-extension
-aws/1.19.0/671dd51db8fe155366a288f7f04190d0dfbbfac7/opentelemetry-extension-aws
-1.19.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.opentelemetry/opentelemetry
-extension-trace
-propagators/1.19.0/ef9cd2988219f5d1874510d9f766810df4cee552/opentelemetry-extension
-trace-propagators-1.19.0.jar:/root/.gradle/caches/modules-2/files
-2.1/io.opentelemetry/opentelemetry-exporter
-common/1.19.0/868d4bbf56a7b7acc2a2f9bbd7de57872103d9d0/opentelemetry-exporter-common
-1.19.0.jar:/root/.gradle/caches/modules-2/files
-2.1/io.opentelemetry.instrumentation/opentelemetry-instrumentation
-api/1.21.0/77061ec727bb47bb5a9274e7ff6de92cb96f0a9a/opentelemetry-instrumentation-api
-1.21.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.opentelemetry/opentelemetry

35
-api-logs/1.19.0-alpha/ed7f8c511cca3fe6e50d77f9cf740dd02483faef/opentelemetry-api-logs
-1.19.0-alpha.jar:/root/.gradle/caches/modules-2/files
-2.1/io.opentelemetry/opentelemetry
-api/1.19.0/95233814c9eb16486525e8e895a6ed326f3cb5f4/opentelemetry-api
-1.19.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.opentelemetry/opentelemetry
-context/1.19.0/ae42d505048d264b08a3ad1bfa2aff532f244f54/opentelemetry-context
-1.19.0.jar:/root/.gradle/caches/modules-2/files
-2.1/io.prometheus/simpleclient_common/0.16.0/a09a8c790a20309b942a9fdbfe77da22407096e6
/simpleclient_common-0.16.0.jar:/root/.gradle/caches/modules-2/files-
2.1/io.prometheus/simpleclient/0.16.0/28b0eaf7c500c506976da8d0fc9cad6c278e8d87/simplec
lient-0.16.0.jar:/root/.gradle/caches/modules-2/files-
2.1/io.prometheus/simpleclient_tracer_otel/0.16.0/cc3d2b7b7cb6f077e3b1ee1d3e99eb54fddf
a151/simpleclient_tracer_otel-0.16.0.jar:/root/.gradle/caches/modules-2/files-
2.1/io.prometheus/simpleclient_tracer_otel_agent/0.16.0/9d724771e339ff7ec6cd7c0cc170d3
470904c5/simpleclient_tracer_otel_agent-0.16.0.jar:/root/.gradle/caches/modules-
2/files-
2.1/io.prometheus/simpleclient_tracer_common/0.16.0/dec00ef7c6155c4ca1109ec8248f7ff58d
8f6cd3/simpleclient_tracer_common-0.16.0.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework/spring-
jcl/6.0.5/69b78d3e84b8f66d679447225322fac3b8137ff0/spring-jcl-
6.0.5.jar:/root/.gradle/caches/modules-2/files-
2.1/org.springframework.security/spring-security-crypto/6.1.0-
M1/fd084abd90218f25bf034b2515f673ce569c6dab/spring-security-crypto-6.1.0-
M1.jar:/root/.gradle/caches/modules-2/files-
2.1/com.typesafe/config/1.4.1/19058a07624a87f90d129af7cd9c68bee94535a9/config-
1.4.1.jar:/root/.gradle/caches/modules-2/files-2.1/com.github.jnr/jnr-
posix/3.1.15/f7d6737adcbd5925d625b8f99166de2cbf13caac/jnr-posix-
3.1.15.jar:/root/.gradle/caches/modules-2/files-
2.1/org.hdrhistogram/HdrHistogram/2.1.12/6eb7552156e0d517ae80cc2247be1427c8d90452/HdrH
istogram-2.1.12.jar:/root/.gradle/caches/modules-2/files-2.1/com.nimbusds/nimbus-jose-
jwt/9.24.4/29a1f6a00a4daa3e1873f6bf4f16ddf4d6fd6d37/nimbus-jose-jwt-
9.24.4.jar:/root/.gradle/caches/modules-2/files-2.1/com.github.stephenc.jcip/jcip-
annotations/1.0-1/ef31541dd28ae2cefdd17c7ebf352d93e9058c63/jcip-annotations-1.0-
1.jar:/root/.gradle/caches/modules-2/files-2.1/org.hibernate.common/hibernate-commons-
annotations/6.0.6.Final/77a5f94b56d49508e0ee334751db5b78e5ccd50c/hibernate-commons-
annotations-6.0.6.Final.jar:/root/.gradle/caches/modules-2/files-
2.1/org.jboss/jandex/2.4.2.Final/1e1c385990b258ff1a24c801e84aebbacf70eb39/jandex-
2.4.2.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.antlr/antlr4-
runtime/4.10.1/10839f875928f59c622d675091d51a43ea0dc5f7/antlr4-runtime-
4.10.1.jar:/root/.gradle/caches/modules-2/files-2.1/org.msgpack/msgpack-
core/0.9.3/219f6fe7e9d4413a56bb1e819d4545282c85d700/msgpack-core-
0.9.3.jar:/root/.gradle/caches/modules-2/files-
2.1/org.json/json/20220320/6df2c050972619466f6dcef7654ef9bcc01dfd0/json-
20220320.jar:/root/.gradle/caches/modules-2/files-2.1/com.github.luben/zstd-jni/1.5.2-
1/fad786abc1d1b81570e8d9a2fc8a1ef479bc27b6/zstd-jni-1.5.2-
1.jar:/root/.gradle/caches/modules-2/files-2.1/org.lz4/lz4-
java/1.8.0/4b986a99445e49ea5fbf5d149c4b63f6ed6c6780/lz4-java-
1.8.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.xerial.snappy/snappy-
java/1.1.8.4/66f0d56454509f6e36175f2331572e250e04a6cc/snappy-java-
1.1.8.4.jar:/root/.gradle/caches/modules-2/files-
2.1/org.rocksdb/rocksdbjni/7.1.2/ffe87d1c5d5b3a46d065cc4cf5311f18d8233a6b/rocksdbjni-

36
7.1.2.jar:/root/.gradle/caches/modules-2/files-2.1/com.mchange/mchange-commons-
java/0.2.19/7a4bee38ea02bd7dee776869b19fb3f6861d6acf/mchange-commons-java-
0.2.19.jar:/root/.gradle/caches/modules-2/files-2.1/io.micrometer/context-
propagation/1.1.0-M2/857d83df87fae8b0bddd08e67d72a453dcc0557a/context-propagation-
1.1.0-M2.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.tomcat/tomcat-
juli/10.1.5/624bc5ab453b971308bd4cdf3c9331505f491fa7/tomcat-juli-
10.1.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-
interpolation/1.25/3b37b3335e6a97e11e690bbdc22ade1a5deb74d6/plexus-interpolation-
1.25.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-builder-
support/3.6.3/e9a37af390009a525d8faa6b18bd682123f85f9e/maven-builder-support-
3.6.3.jar:/root/.gradle/caches/modules-2/files-
2.1/org.eclipse.sisu/org.eclipse.sisu.inject/0.3.4/fc3be144183f54dc6f5c55e34462c1c2d89
d7d96/org.eclipse.sisu.inject-0.3.4.jar:/root/.gradle/caches/modules-2/files-
2.1/org.codehaus.woodstox/stax2-
api/4.2.1/a3f7325c52240418c2ba257b103c3c550e140c83/stax2-api-
4.2.1.jar:/root/.gradle/caches/modules-2/files-
2.1/org.latencyutils/LatencyUtils/2.0.3/769c0b82cb2421c8256300e907298a9410a2a3d3/Laten
cyUtils-2.0.3.jar:/root/.gradle/caches/modules-2/files-
2.1/com.dynatrace.metric.util/dynatrace-metric-utils-
java/1.6.0/a988736aab51d86ab60ca834edf549597cc7ffb5/dynatrace-metric-utils-java-
1.6.0.jar:/root/.gradle/caches/modules-2/files-
2.1/info.ganglia.gmetric4j/gmetric4j/1.0.10/3d62003123b586adb86cb028cc0f8a8c3a701d81/g
metric4j-1.0.10.jar:/root/.gradle/caches/modules-2/files-
2.1/io.opentelemetry.proto/opentelemetry-proto/0.19.0-
alpha/940f1716e4ff81ee6cd797ec60c6f35ac3e5ccee/opentelemetry-proto-0.19.0-
alpha.jar:/root/.gradle/caches/modules-2/files-
2.1/aopalliance/aopalliance/1.0/235ba8b489512805ac13a8f9ea77a1ca5ebe3e8/aopalliance-
1.0.jar:/root/.gradle/caches/modules-2/files-
2.1/org.objenesis/objenesis/3.3/1049c09f1de4331e8193e579448d0916d75b7631/objenesis-
3.3.jar:/root/.gradle/caches/modules-2/files-
2.1/com.thoughtworks.qdox/qdox/2.0.2/eca053f9bf905a5cc767395e252fa7044b077476/qdox-
2.0.2.jar:/root/.gradle/caches/modules-2/files-
2.1/org.jgroups/jgroups/5.2.0.Final/853b99ca3fce2e46a2d8872c1fa0418b99e6d68/jgroups-
5.2.0.Final.jar:/root/.gradle/caches/modules-2/files-2.1/commons-beanutils/commons-
beanutils/1.9.4/d52b9abcd97f38c81342bb7e7ae1eee9b73cba51/commons-beanutils-
1.9.4.jar:/root/.gradle/caches/modules-2/files-2.1/com.github.jnr/jnr-
ffi/2.2.11/bcf004ce358c87fc4cd2853b658d336348d0370f/jnr-ffi-
2.2.11.jar:/root/.gradle/caches/modules-2/files-2.1/com.github.jnr/jnr-
constants/0.10.3/af19ec7359dd72cbc7869c00bf7cdfa4c308e985/jnr-constants-
0.10.3.jar:/root/.gradle/caches/modules-2/files-
2.1/com.squareup.moshi/moshi/1.8.0/752e7b187599d3ccb174d00ba7235e29add736be/moshi-
1.8.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-
collections4/4.4/62ebe7544cb7164d87e0637a2a6a2bdc981395e8/commons-collections4-
4.4.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
api/1.52.1/250130924e11e3a0dfb5f508130940a1729d497c/grpc-api-
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.opencensus/opencensus-
api/0.31.1/66a60c7201c2b8b20ce495f0295b32bb0ccbbc57/opencensus-api-
0.31.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
context/1.52.1/4da95b74359b2dfdd5d85eee3b4682a3e720261c/grpc-context-
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
stub/1.52.1/16726293bd4430fab8deb37b1ea2ddf8e69b85de/grpc-stub-

37
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
protobuf/1.52.1/8cd9550516c6eabdfa5fcb4fbe7a8ec38394f73d/grpc-protobuf-
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-protobuf-
lite/1.52.1/e50372c825b3b60a9c1c83895a8ac2209578260b/grpc-protobuf-lite-
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.api/api-
common/2.6.0/5e89d21ff03f9c2ea896c1551c582b8955e54bdf/api-common-
2.6.0.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.auto.value/auto-value-
annotations/1.10.1/9e5162c15f6033c524134cba05a5e93dc1d37c4b/auto-value-annotations-
1.10.1.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.auto.value/auto-
value/1.10.1/e0184c26c3a20257c6fb46eaea16fdd3d7b6d357/auto-value-
1.10.1.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-
java/3.21.12/5589e79a33cb6509f7e681d7cf4fc59d47c51c71/protobuf-java-
3.21.12.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.api.grpc/proto-google-
common-protos/2.14.0/32bb8bbe3d3a51a728c8d78b0ef3e2d2957ca5f8/proto-google-common-
protos-2.14.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.google.api/gax/2.23.0/f8b1506446d495839e9e7d34f22d121535e42db7/gax-
2.23.0.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.auth/google-auth-
library-credentials/1.15.0/cc0851cdf3860498dbfb16fc62fe48e85d793dee/google-auth-
library-credentials-1.15.0.jar:/root/.gradle/caches/modules-2/files-
2.1/com.google.api/gax-grpc/2.23.0/7dd728e5f2de2bfd4d01fe9227b879078c4e4e3f/gax-grpc-
2.23.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
alts/1.52.1/4868723ec618625acf1d28fae8fc1fcff4ada350/grpc-alts-
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
grpclb/1.52.1/b3aaf450d1231a18e7d97ecdf10f01a448d0565f/grpc-grpclb-
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protobuf-java-
util/3.21.12/1a800bf7976d939217c8d91ed9a17d7a78bf2187/protobuf-java-util-
3.21.12.jar:/root/.gradle/caches/modules-2/files-2.1/org.conscrypt/conscrypt-openjdk-
uber/2.5.2/d858f142ea189c62771c505a6548d8606ac098fe/conscrypt-openjdk-uber-
2.5.2.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
auth/1.52.1/3a80aa5c8b98b9376f3c35f8ad6a0d8a434c69aa/grpc-auth-
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-netty-
shaded/1.52.1/bed9bd84cac8fac6c9c6f944a53101cbc7e9f091/grpc-netty-shaded-
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.perfmark/perfmark-
api/0.26.0/ef65452adaf20bf7d12ef55913aba24037b82738/perfmark-api-
0.26.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
core/1.52.1/c80b4701b0bef206b7208f4d3d941b21b527a311/grpc-core-
1.52.1.jar:/root/.gradle/caches/modules-2/files-
2.1/com.google.android/annotations/4.1.1.4/a1678ba907bf92691d879fef34e1a187038f9259/an
notations-4.1.1.4.jar:/root/.gradle/caches/modules-2/files-
2.1/org.codehaus.mojo/animal-sniffer-
annotations/1.22/911f763493163e03d750b369cc162085db09b46b/animal-sniffer-annotations-
1.22.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
googleapis/1.52.1/b7e010550035d6f582683ccb74ecf520692f7585/grpc-googleapis-
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
xds/1.52.1/e7d31c2a092c7049a8bba6a03019fb706301778b/grpc-xds-
1.52.1.jar:/root/.gradle/caches/modules-2/files-2.1/io.opencensus/opencensus-
proto/0.2.0/c05b6b32b69d5d9144087ea0ebc6fab183fb9151/opencensus-proto-
0.2.0.jar:/root/.gradle/caches/modules-2/files-2.1/io.grpc/grpc-
services/1.52.1/b3cb5a68ac3eb6590806ef248eddd4cba04aa6ca/grpc-services-
1.52.1.jar:/root/.gradle/caches/modules-2/files-
2.1/com.google.re2j/re2j/1.6/a13e879fd7971738d06020fefeb108cc14e14169/re2j-

38
1.6.jar:/root/.gradle/caches/modules-2/files-
2.1/org.threeten/threetenbp/1.6.5/9c83a035274df46c998b3bcb0710489ad7788abd/threetenbp-
1.6.5.jar:/root/.gradle/caches/modules-2/files-2.1/org.wildfly.common/wildfly-
common/1.5.4.Final/735ceee5616d5143bac1bc740e444697073c002f/wildfly-common-
1.5.4.Final.jar:/root/.gradle/caches/modules-2/files-2.1/org.apache.activemq/activemq-
artemis-native/2.0.0/a1bdd3cea7822f3b90063456b0c9928702076bd1/activemq-artemis-native-
2.0.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.jctools/jctools-
core/2.1.2/8ec46a6a26e7c1c7e57e2590a043238ffc462144/jctools-core-
2.1.2.jar:/root/.gradle/caches/modules-2/files-2.1/net.minidev/accessors-
smart/2.4.8/6e1bee5a530caba91893604d6ab41d0edcecca9a/accessors-smart-
2.4.8.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/osgi-resource-
locator/1.0.3/de3b21279df7e755e38275137539be5e2c80dd58/osgi-resource-locator-
1.0.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.glassfish.hk2/class-
model/3.0.3/aa6ba787e9a37b0534fd0b008840df8f8253449a/class-model-
3.0.3.jar:/root/.gradle/caches/modules-2/files-2.1/org.javassist/javassist/3.29.0-
GA/d3959fa7e00bf04dbe519228a23213d2afb625d8/javassist-3.29.0-
GA.jar:/root/.gradle/caches/modules-2/files-
2.1/org.opentest4j/opentest4j/1.2.0/28c11eb91f9b6d8e200631d46e20a7f407f2a046/opentest4
j-1.2.0.jar:/root/.gradle/caches/modules-2/files-2.1/org.acplt.remotetea/remotetea-
oncrpc/1.1.2/705c490ad22ff4627389853439f9decf5ee69be/remotetea-oncrpc-
1.1.2.jar:/root/.gradle/caches/modules-2/files-2.1/com.tdunning/t-
digest/3.2/2ab94758b0276a8a26102adf8d528cf6d0567b9a/t-digest-
3.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.atteo/evo-
inflector/1.3/4cf8b5f363c60e63f8b7688ac053590460f2768e/evo-inflector-
1.3.jar:/root/.gradle/caches/modules-2/files-2.1/commons-collections/commons-
collections/3.2.2/8ad72fe39fa8c91eaaf12aadb21e0c3661fe26d5/commons-collections-
3.2.2.jar:/root/.gradle/caches/modules-2/files-
2.1/com.github.jnr/jffi/1.3.9/b776ea131fa693af2c943368b52acf94131cbd7/jffi-
1.3.9.jar:/root/.gradle/caches/modules-2/files-
2.1/com.github.jnr/jffi/1.3.9/163d683f80c06911f3e770c723d6e399e4c59448/jffi-1.3.9-
native.jar:/root/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-
commons/9.2/f4d7f0fc9054386f2893b602454d48e07d4fbead/asm-commons-
9.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-
util/9.2/fbc178fc5ba3dab50fd7e8a5317b8b647c8e8946/asm-util-
9.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-
analysis/9.2/7487dd756daf96cab9986e44b9d7bcb796a61c10/asm-analysis-
9.2.jar:/root/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-
tree/9.2/d96c99a30f5e1a19b0e609dbb19a44d8518ac01e/asm-tree-
9.2.jar:/root/.gradle/caches/modules-2/files-
2.1/org.ow2.asm/asm/9.2/81a03f76019c67362299c40e0ba13405f5467bff/asm-
9.2.jar:/root/.gradle/caches/modules-2/files-2.1/com.github.jnr/jnr-
a64asm/1.0.0/a1cb8dbe71b5a6a0288043c3ba3ca64545be165/jnr-a64asm-
1.0.0.jar:/root/.gradle/caches/modules-2/files-2.1/com.github.jnr/jnr-
x86asm/1.0.2/6936bbd6c5b235665d87bd450f5e13b52d4b48/jnr-x86asm-
1.0.2.jar:/root/.gradle/caches/modules-2/files-
2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotation
s-13.0.jar:/root/.gradle/caches/modules-2/files-
2.1/org.glassfish.hk2.external/aopalliance-
repackaged/3.0.3/69376d08ac7931645d4692dfe2af577007a57625/aopalliance-repackaged-
3.0.3.jar"
  },

39
  "java.vm.vendor" : {
  "value" : "BellSoft"
  }
  }
  }, {
  "name" : "systemEnvironment",
  "properties" : {
  "JAVA_HOME" : {
  "value" : "/opt/openjdk",
  "origin" : "System Environment Property \"JAVA_HOME\""
  }
  }
  }, {
  "name" : "Config resource 'class path resource [application.properties]' via
location 'classpath:/'",
  "properties" : {
  "com.example.cache.max-size" : {
  "value" : "1000",
  "origin" : "class path resource [application.properties] - 1:29"
  }
  }
  } ]
}

7.1.1. Response Structure

The response contains details of the application’s Environment. The following table describes the
structure of the response:

Path Type Description


activeProfiles Array Names of the active profiles, if any.
propertySources Array Property sources in order of precedence.
propertySources.[].name String Name of the property source.
propertySources.[].properties Object Properties in the property source keyed
by property name.
propertySources.[].properties.*.value String Value of the property.
propertySources.[].properties.*.origin String Origin of the property, if any.

7.2. Retrieving a Single Property


To retrieve a single property, make a GET request to /actuator/env/{property.name}, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/env/com.example.cache.max-size' -i -X GET

40
The preceding example retrieves information about the property named com.example.cache.max-
size. The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Disposition: inline;filename=f.txt
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 455

{"property":{"source":"Config resource 'class path resource [application.properties]'


via location
'classpath:/'","value":"1000"},"activeProfiles":[],"propertySources":[{"name":"servlet
ContextInitParams"},{"name":"systemProperties"},{"name":"systemEnvironment"},{"name":"
Config resource 'class path resource [application.properties]' via location
'classpath:/'","property":{"value":"1000","origin":"class path resource
[application.properties] - 1:29"}}]}

7.2.1. Response Structure

The response contains details of the requested property. The following table describes the structure
of the response:

Path Type Description


property Object Property from the environment, if found.
property.source String Name of the source of the property.
property.value String Value of the property.
activeProfiles Array Names of the active profiles, if any.
propertySources Array Property sources in order of precedence.
propertySources.[].name String Name of the property source.
propertySources.[].property Object Property in the property source, if any.
propertySources.[].property.value Varies Value of the property.
propertySources.[].property.origin String Origin of the property, if any.

41
Chapter 8. Flyway (flyway)
The flyway endpoint provides information about database migrations performed by Flyway.

8.1. Retrieving the Migrations


To retrieve the migrations, make a GET request to /actuator/flyway, as shown in the following curl-
based example:

$ curl 'http://localhost:8080/actuator/flyway' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 515

{
  "contexts" : {
  "application" : {
  "flywayBeans" : {
  "flyway" : {
  "migrations" : [ {
  "type" : "SQL",
  "checksum" : -156244537,
  "version" : "1",
  "description" : "init",
  "script" : "V1__init.sql",
  "state" : "SUCCESS",
  "installedBy" : "SA",
  "installedOn" : "2023-02-24T17:23:36.031Z",
  "installedRank" : 1,
  "executionTime" : 3
  } ]
  }
  }
  }
  }
}

8.1.1. Response Structure

The response contains details of the application’s Flyway migrations. The following table describes
the structure of the response:

42
Path Type Description
contexts Object Application contexts keyed by id
contexts.*.flywayBeans.*.migra Array Migrations performed by the Flyway instance,
tions keyed by Flyway bean name.
contexts.*.flywayBeans.*.migra Number Checksum of the migration, if any.
tions.[].checksum
contexts.*.flywayBeans.*.migra String Description of the migration, if any.
tions.[].description
contexts.*.flywayBeans.*.migra Number Execution time in milliseconds of an applied
tions.[].executionTime migration.
contexts.*.flywayBeans.*.migra String User that installed the applied migration, if any.
tions.[].installedBy
contexts.*.flywayBeans.*.migra String Timestamp of when the applied migration was
tions.[].installedOn installed, if any.
contexts.*.flywayBeans.*.migra Number Rank of the applied migration, if any. Later
tions.[].installedRank migrations have higher ranks.
contexts.*.flywayBeans.*.migra String Name of the script used to execute the
tions.[].script migration, if any.
contexts.*.flywayBeans.*.migra String State of the migration. (PENDING, ABOVE_TARGET,
tions.[].state BELOW_BASELINE, BASELINE_IGNORED, BASELINE,
IGNORED, MISSING_SUCCESS, MISSING_FAILED,
SUCCESS, UNDONE, AVAILABLE, FAILED, OUT_OF_ORDER,
FUTURE_SUCCESS, FUTURE_FAILED, OUTDATED,
SUPERSEDED, DELETED)
contexts.*.flywayBeans.*.migra String Type of the migration.
tions.[].type
contexts.*.flywayBeans.*.migra String Version of the database after applying the
tions.[].version migration, if any.
contexts.*.parentId String Id of the parent application context, if any.

43
Chapter 9. Health (health)
The health endpoint provides detailed information about the health of the application.

9.1. Retrieving the Health of the Application


To retrieve the health of the application, make a GET request to /actuator/health, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/health' -i -X GET \


  -H 'Accept: application/json'

The resulting response is similar to the following:

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

{
  "status" : "UP",
  "components" : {
  "broker" : {
  "status" : "UP",
  "components" : {
  "us1" : {
  "status" : "UP",
  "details" : {
  "version" : "1.0.2"
  }
  },
  "us2" : {
  "status" : "UP",
  "details" : {
  "version" : "1.0.4"
  }
  }
  }
  },
  "db" : {
  "status" : "UP",
  "details" : {
  "database" : "H2",
  "validationQuery" : "isValid()"
  }
  },
  "diskSpace" : {
  "status" : "UP",
  "details" : {
  "total" : 325426569216,
  "free" : 192336031744,
  "threshold" : 10485760,
  "path" : "/tmp/build/6da1d659/git-repo/spring-boot-project/spring-boot-
actuator-autoconfigure/.",
  "exists" : true
  }
  }
  }
}

9.1.1. Response Structure

The response contains details of the health of the application. The following table describes the
structure of the response:

45
Path Type Description
status String Overall status of the application.
components Object The components that make up the health.
components.*.status String Status of a specific part of the application.
components.*.components Object The nested components that make up the health.
components.*.details Object Details of the health of a specific part of the
application. Presence is controlled by
management.endpoint.health.show-details.

The response fields above are for the V3 API. If you need to return V2 JSON you
 should use an accept header or application/vnd.spring-boot.actuator.v2+json

9.2. Retrieving the Health of a Component


To retrieve the health of a particular component of the application’s health, make a GET request to
/actuator/health/{component}, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/health/db' -i -X GET \


  -H 'Accept: application/json'

The resulting response is similar to the following:

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

{
  "status" : "UP",
  "details" : {
  "database" : "H2",
  "validationQuery" : "isValid()"
  }
}

9.2.1. Response Structure

The response contains details of the health of a particular component of the application’s health.
The following table describes the structure of the response:

Path Type Description


status String Status of a specific part of the application
details Object Details of the health of a specific part of the
application.

46
9.3. Retrieving the Health of a Nested Component
If a particular component contains other nested components (as the broker indicator in the example
above), the health of such a nested component can be retrieved by issuing a GET request to
/actuator/health/{component}/{subcomponent}, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/health/broker/us1' -i -X GET \


  -H 'Accept: application/json'

The resulting response is similar to the following:

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

{
  "status" : "UP",
  "details" : {
  "version" : "1.0.2"
  }
}

Components of an application’s health may be nested arbitrarily deep depending on the


application’s health indicators and how they have been grouped. The health endpoint supports any
number of /{component} identifiers in the URL to allow the health of a component at any depth to be
retrieved.

9.3.1. Response Structure

The response contains details of the health of an instance of a particular component of the
application. The following table describes the structure of the response:

Path Type Description


status String Status of a specific part of the application
details Object Details of the health of a specific part of the
application.

47
Chapter 10. Heap Dump (heapdump)
The heapdump endpoint provides a heap dump from the application’s JVM.

10.1. Retrieving the Heap Dump


To retrieve the heap dump, make a GET request to /actuator/heapdump. The response is binary data
and can be large. Its format depends upon the JVM on which the application is running. When
running on a HotSpot JVM the format is HPROF and on OpenJ9 it is PHD. Typically, you should save
the response to disk for subsequent analysis. When using curl, this can be achieved by using the -O
option, as shown in the following example:

$ curl 'http://localhost:8080/actuator/heapdump' -O

The preceding example results in a file named heapdump being written to the current working
directory.

48
Chapter 11. HTTP Exchanges (httpexchanges)
The httpexchanges endpoint provides information about HTTP request-response exchanges.

11.1. Retrieving the HTTP Exchanges


To retrieve the HTTP exchanges, make a GET request to /actuator/httpexchanges, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/httpexchanges' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 511

{
  "exchanges" : [ {
  "timestamp" : "2022-12-22T13:43:41Z",
  "request" : {
  "uri" : "https://api.example.com",
  "method" : "GET",
  "headers" : {
  "Accept" : [ "application/json" ]
  }
  },
  "response" : {
  "status" : 200,
  "headers" : {
  "Content-Type" : [ "application/json" ]
  }
  },
  "principal" : {
  "name" : "alice"
  },
  "session" : {
  "id" : "3a779a42-3987-43bf-bc54-f5f3dccdaa8e"
  },
  "timeTaken" : "PT0.023S"
  } ]
}

11.1.1. Response Structure

The response contains details of the traced HTTP request-response exchanges. The following table
describes the structure of the response:

49
Path Type Description
exchanges Array An array of HTTP request-response exchanges.
exchanges.[].timestamp String Timestamp of when the exchange occurred.
exchanges.[].principal Object Principal of the exchange, if any.
exchanges.[].principal.name String Name of the principal.
exchanges.[].request.method String HTTP method of the request.
exchanges.[].request.remoteAdd String Remote address from which the request was
ress received, if known.
exchanges.[].request.uri String URI of the request.
exchanges.[].request.headers Object Headers of the request, keyed by header name.
exchanges.[].request.headers.* Array Values of the header
.[]
exchanges.[].response.status Number Status of the response
exchanges.[].response.headers Object Headers of the response, keyed by header name.
exchanges.[].response.headers. Array Values of the header
*.[]
exchanges.[].session Object Session associated with the exchange, if any.
exchanges.[].session.id String ID of the session.
exchanges.[].timeTaken String Time taken to handle the exchange.

50
Chapter 12. Info (info)
The info endpoint provides general information about the application.

12.1. Retrieving the Info


To retrieve the information about the application, make a GET request to /actuator/info, as shown
in the following curl-based example:

$ curl 'http://localhost:8080/actuator/info' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 231

{
  "git" : {
  "branch" : "main",
  "commit" : {
  "id" : "df027cf",
  "time" : "2023-02-24T17:23:37Z"
  }
  },
  "build" : {
  "artifact" : "application",
  "version" : "1.0.3",
  "group" : "com.example"
  }
}

12.1.1. Response Structure

The response contains general information about the application. Each section of the response is
contributed by an InfoContributor. Spring Boot provides several contributors that are described
below.

Build Response Structure

The following table describe the structure of the build section of the response:

Path Type Description


artifact String Artifact ID of the application, if any.
group String Group ID of the application, if any.

51
Path Type Description
name String Name of the application, if any.
version String Version of the application, if any.
time Varies Timestamp of when the application was built, if
any.

Git Response Structure

The following table describes the structure of the git section of the response:

Path Type Description


branch String Name of the Git branch, if any.
commit Object Details of the Git commit, if any.
commit.time Varies Timestamp of the commit, if any.
commit.id String ID of the commit, if any.

This is the "simple" output. The contributor can also be configured to output all
 available data.

52
Chapter 13. Spring Integration graph
(integrationgraph)
The integrationgraph endpoint exposes a graph containing all Spring Integration components.

13.1. Retrieving the Spring Integration Graph


To retrieve the information about the application, make a GET request to
/actuator/integrationgraph, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/integrationgraph' -i -X GET

The resulting response is similar to the following:

53
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 1036

{
  "contentDescriptor" : {
  "providerVersion" : "6.1.0-M1",
  "providerFormatVersion" : 1.2,
  "provider" : "spring-integration"
  },
  "nodes" : [ {
  "nodeId" : 1,
  "componentType" : "null-channel",
  "integrationPatternType" : "null_channel",
  "integrationPatternCategory" : "messaging_channel",
  "properties" : { },
  "observed" : false,
  "name" : "nullChannel"
  }, {
  "nodeId" : 2,
  "componentType" : "publish-subscribe-channel",
  "integrationPatternType" : "publish_subscribe_channel",
  "integrationPatternCategory" : "messaging_channel",
  "properties" : { },
  "observed" : false,
  "name" : "errorChannel"
  }, {
  "nodeId" : 3,
  "componentType" : "logging-channel-adapter",
  "integrationPatternType" : "outbound_channel_adapter",
  "integrationPatternCategory" : "messaging_endpoint",
  "properties" : { },
  "observed" : false,
  "input" : "errorChannel",
  "name" : "errorLogger"
  } ],
  "links" : [ {
  "from" : 2,
  "to" : 3,
  "type" : "input"
  } ]
}

13.1.1. Response Structure

The response contains all Spring Integration components used within the application, as well as the
links between them. More information about the structure can be found in the reference
documentation.

54
13.2. Rebuilding the Spring Integration Graph
To rebuild the exposed graph, make a POST request to /actuator/integrationgraph, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/integrationgraph' -i -X POST

This will result in a 204 - No Content response:

HTTP/1.1 204 No Content

55
Chapter 14. Liquibase (liquibase)
The liquibase endpoint provides information about database change sets applied by Liquibase.

14.1. Retrieving the Changes


To retrieve the changes, make a GET request to /actuator/liquibase, as shown in the following curl-
based example:

$ curl 'http://localhost:8080/actuator/liquibase' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 677

{
  "contexts" : {
  "application" : {
  "liquibaseBeans" : {
  "liquibase" : {
  "changeSets" : [ {
  "author" : "marceloverdijk",
  "changeLog" : "db/changelog/db.changelog-master.yaml",
  "comments" : "",
  "contexts" : [ ],
  "dateExecuted" : "2023-02-24T17:23:38.894Z",
  "deploymentId" : "7259418842",
  "description" : "createTable tableName=customer",
  "execType" : "EXECUTED",
  "id" : "1",
  "labels" : [ ],
  "checksum" : "8:46debf252cce6d7b25e28ddeb9fc4bf6",
  "orderExecuted" : 1
  } ]
  }
  }
  }
  }
}

14.1.1. Response Structure

The response contains details of the application’s Liquibase change sets. The following table
describes the structure of the response:

56
Path Type Description
contexts Object Application contexts keyed by id
contexts.*.liquibaseBeans.*.ch Array Change sets made by the Liquibase beans, keyed
angeSets by bean name.
contexts.*.liquibaseBeans.*.ch String Author of the change set.
angeSets[].author
contexts.*.liquibaseBeans.*.ch String Change log that contains the change set.
angeSets[].changeLog
contexts.*.liquibaseBeans.*.ch String Comments on the change set.
angeSets[].comments
contexts.*.liquibaseBeans.*.ch Array Contexts of the change set.
angeSets[].contexts
contexts.*.liquibaseBeans.*.ch String Timestamp of when the change set was
angeSets[].dateExecuted executed.
contexts.*.liquibaseBeans.*.ch String ID of the deployment that ran the change set.
angeSets[].deploymentId
contexts.*.liquibaseBeans.*.ch String Description of the change set.
angeSets[].description
contexts.*.liquibaseBeans.*.ch String Execution type of the change set (EXECUTED,
angeSets[].execType FAILED, SKIPPED, RERAN, MARK_RAN).
contexts.*.liquibaseBeans.*.ch String ID of the change set.
angeSets[].id
contexts.*.liquibaseBeans.*.ch Array Labels associated with the change set.
angeSets[].labels
contexts.*.liquibaseBeans.*.ch String Checksum of the change set.
angeSets[].checksum
contexts.*.liquibaseBeans.*.ch Number Order of the execution of the change set.
angeSets[].orderExecuted
contexts.*.liquibaseBeans.*.ch String Tag associated with the change set, if any.
angeSets[].tag
contexts.*.parentId String Id of the parent application context, if any.

57
Chapter 15. Log File (logfile)
The logfile endpoint provides access to the contents of the application’s log file.

15.1. Retrieving the Log File


To retrieve the log file, make a GET request to /actuator/logfile, as shown in the following curl-
based example:

$ curl 'http://localhost:8080/actuator/logfile' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Type: text/plain;charset=UTF-8
Content-Length: 4715

  . ____ _ __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::

2017-08-08 17:12:30.910 INFO 19866 --- [ main]


s.f.SampleWebFreeMarkerApplication : Starting SampleWebFreeMarkerApplication
with PID 19866
2017-08-08 17:12:30.913 INFO 19866 --- [ main]
s.f.SampleWebFreeMarkerApplication : No active profile set, falling back to
default profiles: default
2017-08-08 17:12:30.952 INFO 19866 --- [ main]
ConfigServletWebServerApplicationContext : Refreshing
org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicati
onContext@76b10754: startup date [Tue Aug 08 17:12:30 BST 2017]; root of context
hierarchy
2017-08-08 17:12:31.878 INFO 19866 --- [ main]
o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080
(http)
2017-08-08 17:12:31.889 INFO 19866 --- [ main]
o.apache.catalina.core.StandardService : Starting service [Tomcat]
2017-08-08 17:12:31.890 INFO 19866 --- [ main]
org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache
Tomcat/8.5.16
2017-08-08 17:12:31.978 INFO 19866 --- [ost-startStop-1]
o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded
WebApplicationContext

58
2017-08-08 17:12:31.978 INFO 19866 --- [ost-startStop-1]
o.s.web.context.ContextLoader : Root WebApplicationContext: initialization
completed in 1028 ms
2017-08-08 17:12:32.080 INFO 19866 --- [ost-startStop-1]
o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2017-08-08 17:12:32.084 INFO 19866 --- [ost-startStop-1]
o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter'
to: [/*]
2017-08-08 17:12:32.084 INFO 19866 --- [ost-startStop-1]
o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter'
to: [/*]
2017-08-08 17:12:32.084 INFO 19866 --- [ost-startStop-1]
o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter'
to: [/*]
2017-08-08 17:12:32.084 INFO 19866 --- [ost-startStop-1]
o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to:
[/*]
2017-08-08 17:12:32.349 INFO 19866 --- [ main]
s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice:
org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicati
onContext@76b10754: startup date [Tue Aug 08 17:12:30 BST 2017]; root of context
hierarchy
2017-08-08 17:12:32.420 INFO 19866 --- [ main]
s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public
org.springframework.http.ResponseEntity<java.util.Map<java.lang.String,
java.lang.Object>>
org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(ja
karta.servlet.http.HttpServletRequest)
2017-08-08 17:12:32.421 INFO 19866 --- [ main]
s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}"
onto public org.springframework.web.servlet.ModelAndView
org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtm
l(jakarta.servlet.http.HttpServletRequest,jakarta.servlet.http.HttpServletResponse)
2017-08-08 17:12:32.444 INFO 19866 --- [ main]
o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler
of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-08-08 17:12:32.444 INFO 19866 --- [ main]
o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type
[class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-08-08 17:12:32.471 INFO 19866 --- [ main]
o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto
handler of type [class
org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-08-08 17:12:32.600 INFO 19866 --- [ main]
o.s.w.s.v.f.FreeMarkerConfigurer : ClassTemplateLoader for Spring macros added
to FreeMarker configuration
2017-08-08 17:12:32.681 INFO 19866 --- [ main]
o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on
startup
2017-08-08 17:12:32.744 INFO 19866 --- [ main]
o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http)

59
2017-08-08 17:12:32.750 INFO 19866 --- [ main]
s.f.SampleWebFreeMarkerApplication : Started SampleWebFreeMarkerApplication in
2.172 seconds (JVM running for 2.479)

15.2. Retrieving Part of the Log File

 Retrieving part of the log file is not supported when using Jersey.

To retrieve part of the log file, make a GET request to /actuator/logfile by using the Range header, as
shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/logfile' -i -X GET \


  -H 'Range: bytes=0-1023'

The preceding example retrieves the first 1024 bytes of the log file. The resulting response is similar
to the following:

HTTP/1.1 206 Partial Content


Accept-Ranges: bytes
Content-Type: text/plain;charset=UTF-8
Content-Range: bytes 0-1023/4715
Content-Length: 1024

  . ____ _ __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::

2017-08-08 17:12:30.910 INFO 19866 --- [ main]


s.f.SampleWebFreeMarkerApplication : Starting SampleWebFreeMarkerApplication
with PID 19866
2017-08-08 17:12:30.913 INFO 19866 --- [ main]
s.f.SampleWebFreeMarkerApplication : No active profile set, falling back to
default profiles: default
2017-08-08 17:12:30.952 INFO 19866 --- [ main]
ConfigServletWebServerApplicationContext : Refreshing
org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicati
onContext@76b10754: startup date [Tue Aug 08 17:12:30 BST 2017]; root of context
hierarchy
2017-08-08 17:12:31.878 INFO 19866 --- [ main]
o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http

60
Chapter 16. Loggers (loggers)
The loggers endpoint provides access to the application’s loggers and the configuration of their
levels.

16.1. Retrieving All Loggers


To retrieve the application’s loggers, make a GET request to /actuator/loggers, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/loggers' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 791

{
  "levels" : [ "OFF", "FATAL", "ERROR", "WARN", "INFO", "DEBUG", "TRACE" ],
  "loggers" : {
  "ROOT" : {
  "configuredLevel" : "INFO",
  "effectiveLevel" : "INFO"
  },
  "com.example" : {
  "configuredLevel" : "DEBUG",
  "effectiveLevel" : "DEBUG"
  }
  },
  "groups" : {
  "test" : {
  "configuredLevel" : "INFO",
  "members" : [ "test.member1", "test.member2" ]
  },
  "web" : {
  "members" : [ "org.springframework.core.codec", "org.springframework.http",
"org.springframework.web", "org.springframework.boot.actuate.endpoint.web",
"org.springframework.boot.web.servlet.ServletContextInitializerBeans" ]
  },
  "sql" : {
  "members" : [ "org.springframework.jdbc.core", "org.hibernate.SQL",
"org.jooq.tools.LoggerListener" ]
  }
  }
}

61
16.1.1. Response Structure

The response contains details of the application’s loggers. The following table describes the
structure of the response:

Path Type Description


levels Array Levels support by the logging system.
loggers Object Loggers keyed by name.
groups Object Logger groups keyed by name
loggers.*.configuredLevel String Configured level of the logger, if any.
loggers.*.effectiveLevel String Effective level of the logger.
groups.*.configuredLevel String Configured level of the logger group, if
any.
groups.*.members Array Loggers that are part of this group

16.2. Retrieving a Single Logger


To retrieve a single logger, make a GET request to /actuator/loggers/{logger.name}, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/loggers/com.example' -i -X GET

The preceding example retrieves information about the logger named com.example. The resulting
response is similar to the following:

HTTP/1.1 200 OK
Content-Disposition: inline;filename=f.txt
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 61

{
  "configuredLevel" : "INFO",
  "effectiveLevel" : "INFO"
}

16.2.1. Response Structure

The response contains details of the requested logger. The following table describes the structure of
the response:

Path Type Description


configuredLevel String Configured level of the logger, if any.

62
Path Type Description
effectiveLevel String Effective level of the logger.

16.3. Retrieving a Single Group


To retrieve a single group, make a GET request to /actuator/loggers/{group.name}, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/loggers/test' -i -X GET

The preceding example retrieves information about the logger group named test. The resulting
response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 82

{
  "configuredLevel" : "INFO",
  "members" : [ "test.member1", "test.member2" ]
}

16.3.1. Response Structure

The response contains details of the requested group. The following table describes the structure of
the response:

Path Type Description


configuredLevel String Configured level of the logger group, if
any.
members Array Loggers that are part of this group

16.4. Setting a Log Level


To set the level of a logger, make a POST request to /actuator/loggers/{logger.name} with a JSON
body that specifies the configured level for the logger, as shown in the following curl-based
example:

$ curl 'http://localhost:8080/actuator/loggers/com.example' -i -X POST \


  -H 'Content-Type: application/json' \
  -d '{"configuredLevel":"debug"}'

The preceding example sets the configuredLevel of the com.example logger to DEBUG.

63
16.4.1. Request Structure

The request specifies the desired level of the logger. The following table describes the structure of
the request:

Path Type Description


configuredLevel String Level for the logger. May be omitted to
clear the level.

16.5. Setting a Log Level for a Group


To set the level of a logger, make a POST request to /actuator/loggers/{group.name} with a JSON body
that specifies the configured level for the logger group, as shown in the following curl-based
example:

$ curl 'http://localhost:8080/actuator/loggers/test' -i -X POST \


  -H 'Content-Type: application/json' \
  -d '{"configuredLevel":"debug"}'

The preceding example sets the configuredLevel of the test logger group to DEBUG.

16.5.1. Request Structure

The request specifies the desired level of the logger group. The following table describes the
structure of the request:

Path Type Description


configuredLevel String Level for the logger. May be omitted to
clear the level.

16.6. Clearing a Log Level


To clear the level of a logger, make a POST request to /actuator/loggers/{logger.name} with a JSON
body containing an empty object, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/loggers/com.example' -i -X POST \


  -H 'Content-Type: application/json' \
  -d '{}'

The preceding example clears the configured level of the com.example logger.

64
Chapter 17. Mappings (mappings)
The mappings endpoint provides information about the application’s request mappings.

17.1. Retrieving the Mappings


To retrieve the mappings, make a GET request to /actuator/mappings, as shown in the following curl-
based example:

$ curl 'http://localhost:38767/actuator/mappings' -i -X GET \


  -H 'accept-encoding: gzip' \
  -H 'user-agent: ReactorNetty/1.1.3' \
  -H 'accept: */*'

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Transfer-Encoding: chunked
Date: Fri, 24 Feb 2023 17:23:40 GMT
Content-Length: 5342

{
  "contexts" : {
  "application" : {
  "mappings" : {
  "dispatcherServlets" : {
  "dispatcherServlet" : [ {
  "handler" : "Actuator root web endpoint",
  "predicate" : "{GET [/actuator], produces [application/vnd.spring-
boot.actuator.v3+json || application/vnd.spring-boot.actuator.v2+json ||
application/json]}",
  "details" : {
  "handlerMethod" : {
  "className" :
"org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping.We
bMvcLinksHandler",
  "name" : "links",
  "descriptor" :
"(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)
Ljava/util/Map;"
  },
  "requestMappingConditions" : {
  "consumes" : [ ],
  "headers" : [ ],
  "methods" : [ "GET" ],
  "params" : [ ],
  "patterns" : [ "/actuator" ],

65
  "produces" : [ {
  "mediaType" : "application/vnd.spring-boot.actuator.v3+json",
  "negated" : false
  }, {
  "mediaType" : "application/vnd.spring-boot.actuator.v2+json",
  "negated" : false
  }, {
  "mediaType" : "application/json",
  "negated" : false
  } ]
  }
  }
  }, {
  "handler" : "Actuator web endpoint 'mappings'",
  "predicate" : "{GET [/actuator/mappings], produces
[application/vnd.spring-boot.actuator.v3+json || application/vnd.spring-
boot.actuator.v2+json || application/json]}",
  "details" : {
  "handlerMethod" : {
  "className" :
"org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMa
pping.OperationHandler",
  "name" : "handle",
  "descriptor" :
"(Ljakarta/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
  },
  "requestMappingConditions" : {
  "consumes" : [ ],
  "headers" : [ ],
  "methods" : [ "GET" ],
  "params" : [ ],
  "patterns" : [ "/actuator/mappings" ],
  "produces" : [ {
  "mediaType" : "application/vnd.spring-boot.actuator.v3+json",
  "negated" : false
  }, {
  "mediaType" : "application/vnd.spring-boot.actuator.v2+json",
  "negated" : false
  }, {
  "mediaType" : "application/json",
  "negated" : false
  } ]
  }
  }
  }, {
  "handler" :
"org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.MappingsEnd
pointServletDocumentationTests$ExampleController#example()",
  "predicate" : "{POST [/], params [a!=alpha], headers [X-Custom=Foo],
consumes [application/json || !application/xml], produces [text/plain]}",
  "details" : {

66
  "handlerMethod" : {
  "className" :
"org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.MappingsEnd
pointServletDocumentationTests.ExampleController",
  "name" : "example",
  "descriptor" : "()Ljava/lang/String;"
  },
  "requestMappingConditions" : {
  "consumes" : [ {
  "mediaType" : "application/json",
  "negated" : false
  }, {
  "mediaType" : "application/xml",
  "negated" : true
  } ],
  "headers" : [ {
  "name" : "X-Custom",
  "value" : "Foo",
  "negated" : false
  } ],
  "methods" : [ "POST" ],
  "params" : [ {
  "name" : "a",
  "value" : "alpha",
  "negated" : true
  } ],
  "patterns" : [ "/" ],
  "produces" : [ {
  "mediaType" : "text/plain",
  "negated" : false
  } ]
  }
  }
  }, {
  "handler" : "ResourceHttpRequestHandler [classpath [META-
INF/resources/webjars/]]",
  "predicate" : "/webjars/**"
  }, {
  "handler" : "ResourceHttpRequestHandler [classpath [META-INF/resources/],
classpath [resources/], classpath [static/], classpath [public/], ServletContext
[/]]",
  "predicate" : "/**"
  } ]
  },
  "servletFilters" : [ {
  "servletNameMappings" : [ ],
  "urlPatternMappings" : [ "/*" ],
  "name" : "requestContextFilter",
  "className" :
"org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter"
  }, {

67
  "servletNameMappings" : [ ],
  "urlPatternMappings" : [ "/*" ],
  "name" : "formContentFilter",
  "className" :
"org.springframework.boot.web.servlet.filter.OrderedFormContentFilter"
  } ],
  "servlets" : [ {
  "mappings" : [ "/" ],
  "name" : "dispatcherServlet",
  "className" : "org.springframework.web.servlet.DispatcherServlet"
  } ]
  }
  }
  }
}

17.1.1. Response Structure

The response contains details of the application’s mappings. The items found in the response
depend on the type of web application (reactive or Servlet-based). The following table describes the
structure of the common elements of the response:

Path Type Description


contexts Object Application contexts keyed by id.
contexts.*.mappings Object Mappings in the context, keyed by mapping type.
contexts.*.mappings.dispatcher Object Dispatcher servlet mappings, if any.
Servlets
contexts.*.mappings.servletFil Array Servlet filter mappings, if any.
ters
contexts.*.mappings.servlets Array Servlet mappings, if any.
contexts.*.mappings.dispatcher Object Dispatcher handler mappings, if any.
Handlers
contexts.*.parentId String Id of the parent application context, if any.

The entries that may be found in contexts.*.mappings are described in the following sections.

17.1.2. Dispatcher Servlets Response Structure

When using Spring MVC, the response contains details of any DispatcherServlet request mappings
beneath contexts.*.mappings.dispatcherServlets. The following table describes the structure of this
section of the response:

68
Path Type Description
* Array Dispatcher servlet
mappings, if any, keyed by
dispatcher servlet bean
name.
*.[].details Object Additional
implementation-specific
details about the mapping.
Optional.
*.[].handler String Handler for the mapping.
*.[].predicate String Predicate for the mapping.
*.[].details.handlerMethod Object Details of the method, if
any, that will handle
requests to this mapping.
*.[].details.handlerMethod.className Varies Fully qualified name of the
class of the method.
*.[].details.handlerMethod.name Varies Name of the method.
*.[].details.handlerMethod.descriptor Varies Descriptor of the method
as specified in the Java
Language Specification.
*.[].details.requestMappingConditions Object Details of the request
mapping conditions.
*.[].details.requestMappingConditions.consumes Varies Details of the consumes
condition
*.[].details.requestMappingConditions.consumes.[].med Varies Consumed media type.
iaType
*.[].details.requestMappingConditions.consumes.[].neg Varies Whether the media type is
ated negated.
*.[].details.requestMappingConditions.headers Varies Details of the headers
condition.
*.[].details.requestMappingConditions.headers.[].name Varies Name of the header.
*.[].details.requestMappingConditions.headers.[].valu Varies Required value of the
e header, if any.
*.[].details.requestMappingConditions.headers.[].nega Varies Whether the value is
ted negated.
*.[].details.requestMappingConditions.methods Varies HTTP methods that are
handled.
*.[].details.requestMappingConditions.params Varies Details of the params
condition.
*.[].details.requestMappingConditions.params.[].name Varies Name of the parameter.

69
Path Type Description
*.[].details.requestMappingConditions.params.[].value Varies Required value of the
parameter, if any.
*.[].details.requestMappingConditions.params.[].negat Varies Whether the value is
ed negated.
*.[].details.requestMappingConditions.patterns Varies Patterns identifying the
paths handled by the
mapping.
*.[].details.requestMappingConditions.produces Varies Details of the produces
condition.
*.[].details.requestMappingConditions.produces.[].med Varies Produced media type.
iaType
*.[].details.requestMappingConditions.produces.[].neg Varies Whether the media type is
ated negated.

17.1.3. Servlets Response Structure

When using the Servlet stack, the response contains details of any Servlet mappings beneath
contexts.*.mappings.servlets. The following table describes the structure of this section of the
response:

Path Type Description


[].mappings Array Mappings of the servlet.
[].name String Name of the servlet.
[].className String Class name of the servlet

17.1.4. Servlet Filters Response Structure

When using the Servlet stack, the response contains details of any Filter mappings beneath
contexts.*.mappings.servletFilters. The following table describes the structure of this section of
the response:

Path Type Description


[].servletNameMappings Array Names of the servlets to which the filter is
mapped.
[].urlPatternMappings Array URL pattern to which the filter is mapped.
[].name String Name of the filter.
[].className String Class name of the filter

17.1.5. Dispatcher Handlers Response Structure

When using Spring WebFlux, the response contains details of any DispatcherHandler request
mappings beneath contexts.*.mappings.dispatcherHandlers. The following table describes the

70
structure of this section of the response:

Path Type Description


* Array Dispatcher handler
mappings, if any, keyed by
dispatcher handler bean
name.
*.[].details Object Additional
implementation-specific
details about the mapping.
Optional.
*.[].handler String Handler for the mapping.
*.[].predicate String Predicate for the mapping.
*.[].details.requestMappingConditions Object Details of the request
mapping conditions.
*.[].details.requestMappingConditions.consumes Varies Details of the consumes
condition
*.[].details.requestMappingConditions.consumes.[].med Varies Consumed media type.
iaType
*.[].details.requestMappingConditions.consumes.[].neg Varies Whether the media type is
ated negated.
*.[].details.requestMappingConditions.headers Varies Details of the headers
condition.
*.[].details.requestMappingConditions.headers.[].name Varies Name of the header.
*.[].details.requestMappingConditions.headers.[].valu Varies Required value of the
e header, if any.
*.[].details.requestMappingConditions.headers.[].nega Varies Whether the value is
ted negated.
*.[].details.requestMappingConditions.methods Varies HTTP methods that are
handled.
*.[].details.requestMappingConditions.params Varies Details of the params
condition.
*.[].details.requestMappingConditions.params.[].name Varies Name of the parameter.
*.[].details.requestMappingConditions.params.[].value Varies Required value of the
parameter, if any.
*.[].details.requestMappingConditions.params.[].negat Varies Whether the value is
ed negated.
*.[].details.requestMappingConditions.patterns Varies Patterns identifying the
paths handled by the
mapping.

71
Path Type Description
*.[].details.requestMappingConditions.produces Varies Details of the produces
condition.
*.[].details.requestMappingConditions.produces.[].med Varies Produced media type.
iaType
*.[].details.requestMappingConditions.produces.[].neg Varies Whether the media type is
ated negated.
*.[].details.handlerMethod Object Details of the method, if
any, that will handle
requests to this mapping.
*.[].details.handlerMethod.className String Fully qualified name of the
class of the method.
*.[].details.handlerMethod.name String Name of the method.
*.[].details.handlerMethod.descriptor String Descriptor of the method
as specified in the Java
Language Specification.
*.[].details.handlerFunction Object Details of the function, if
any, that will handle
requests to this mapping.
*.[].details.handlerFunction.className String Fully qualified name of the
class of the function.

72
Chapter 18. Metrics (metrics)
The metrics endpoint provides access to application metrics.

18.1. Retrieving Metric Names


To retrieve the names of the available metrics, make a GET request to /actuator/metrics, as shown in
the following curl-based example:

$ curl 'http://localhost:8080/actuator/metrics' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 154

{
  "names" : [ "jvm.buffer.count", "jvm.buffer.memory.used",
"jvm.buffer.total.capacity", "jvm.memory.committed", "jvm.memory.max",
"jvm.memory.used" ]
}

18.1.1. Response Structure

The response contains details of the metric names. The following table describes the structure of
the response:

Path Type Description


names Array Names of the known metrics.

18.2. Retrieving a Metric


To retrieve a metric, make a GET request to /actuator/metrics/{metric.name}, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/metrics/jvm.memory.max' -i -X GET

The preceding example retrieves information about the metric named jvm.memory.max. The resulting
response is similar to the following:

73
HTTP/1.1 200 OK
Content-Disposition: inline;filename=f.txt
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 555

{
  "name" : "jvm.memory.max",
  "description" : "The maximum amount of memory in bytes that can be used for memory
management",
  "baseUnit" : "bytes",
  "measurements" : [ {
  "statistic" : "VALUE",
  "value" : 2.399141885E9
  } ],
  "availableTags" : [ {
  "tag" : "area",
  "values" : [ "heap", "nonheap" ]
  }, {
  "tag" : "id",
  "values" : [ "CodeHeap 'profiled nmethods'", "G1 Old Gen", "CodeHeap 'non-profiled
nmethods'", "G1 Survivor Space", "Compressed Class Space", "Metaspace", "G1 Eden
Space", "CodeHeap 'non-nmethods'" ]
  } ]
}

18.2.1. Query Parameters

The endpoint uses query parameters to drill down into a metric by using its tags. The following
table shows the single supported query parameter:

Parameter Description
tag A tag to use for drill-down in the form name:value.

18.2.2. Response structure

The response contains details of the metric. The following table describes the structure of the
response:

Path Type Description


name String Name of the metric
description String Description of the metric
baseUnit String Base unit of the metric
measurements Array Measurements of the metric

74
Path Type Description
measurements[].statistic String Statistic of the measurement.
(TOTAL, TOTAL_TIME, COUNT, MAX,
VALUE, UNKNOWN, ACTIVE_TASKS,
DURATION).
measurements[].value Number Value of the measurement.
availableTags Array Tags that are available for drill-
down.
availableTags[].tag String Name of the tag.
availableTags[].values Array Possible values of the tag.

18.3. Drilling Down


To drill down into a metric, make a GET request to /actuator/metrics/{metric.name} using the tag
query parameter, as shown in the following curl-based example:

$ curl
'http://localhost:8080/actuator/metrics/jvm.memory.max?tag=area%3Anonheap&tag=id%3ACom
pressed+Class+Space' -i -X GET

The preceding example retrieves the jvm.memory.max metric, where the area tag has a value of
nonheap and the id attribute has a value of Compressed Class Space. The resulting response is similar
to the following:

HTTP/1.1 200 OK
Content-Disposition: inline;filename=f.txt
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 263

{
  "name" : "jvm.memory.max",
  "description" : "The maximum amount of memory in bytes that can be used for memory
management",
  "baseUnit" : "bytes",
  "measurements" : [ {
  "statistic" : "VALUE",
  "value" : 1.073741824E9
  } ],
  "availableTags" : [ ]
}

75
Chapter 19. Prometheus (prometheus)
The prometheus endpoint provides Spring Boot application’s metrics in the format required for
scraping by a Prometheus server.

19.1. Retrieving All Metrics


To retrieve all metrics, make a GET request to /actuator/prometheus, as shown in the following curl-
based example:

$ curl 'http://localhost:8080/actuator/prometheus' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: text/plain;version=0.0.4;charset=utf-8
Content-Length: 3139

# HELP jvm_buffer_total_capacity_bytes An estimate of the total capacity of the


buffers in this pool
# TYPE jvm_buffer_total_capacity_bytes gauge
jvm_buffer_total_capacity_bytes{id="mapped - 'non-volatile memory'",} 0.0
jvm_buffer_total_capacity_bytes{id="mapped",} 0.0
jvm_buffer_total_capacity_bytes{id="direct",} 4.2406102E7
# HELP jvm_buffer_memory_used_bytes An estimate of the memory that the Java virtual
machine is using for this buffer pool
# TYPE jvm_buffer_memory_used_bytes gauge
jvm_buffer_memory_used_bytes{id="mapped - 'non-volatile memory'",} 0.0
jvm_buffer_memory_used_bytes{id="mapped",} 0.0
jvm_buffer_memory_used_bytes{id="direct",} 4.2406103E7
# HELP jvm_buffer_count_buffers An estimate of the number of buffers in the pool
# TYPE jvm_buffer_count_buffers gauge
jvm_buffer_count_buffers{id="mapped - 'non-volatile memory'",} 0.0
jvm_buffer_count_buffers{id="mapped",} 0.0
jvm_buffer_count_buffers{id="direct",} 27.0
# HELP jvm_memory_max_bytes The maximum amount of memory in bytes that can be used for
memory management
# TYPE jvm_memory_max_bytes gauge
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'",} 1.22908672E8
jvm_memory_max_bytes{area="heap",id="G1 Survivor Space",} -1.0
jvm_memory_max_bytes{area="heap",id="G1 Old Gen",} 1.073741824E9
jvm_memory_max_bytes{area="nonheap",id="Metaspace",} -1.0
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'non-nmethods'",} 5840896.0
jvm_memory_max_bytes{area="heap",id="G1 Eden Space",} -1.0
jvm_memory_max_bytes{area="nonheap",id="Compressed Class Space",} 1.073741824E9
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'",}
1.22908672E8
# HELP jvm_memory_used_bytes The amount of used memory

76
# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'",} 2.4763904E7
jvm_memory_used_bytes{area="heap",id="G1 Survivor Space",} 1.0223424E7
jvm_memory_used_bytes{area="heap",id="G1 Old Gen",} 9.827584E7
jvm_memory_used_bytes{area="nonheap",id="Metaspace",} 1.31845696E8
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-nmethods'",} 1530624.0
jvm_memory_used_bytes{area="heap",id="G1 Eden Space",} 9.5420416E7
jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space",} 1.7839696E7
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'",}
1.0495104E7
# HELP jvm_memory_committed_bytes The amount of memory in bytes that is committed for
the Java virtual machine to use
# TYPE jvm_memory_committed_bytes gauge
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'",}
2.4772608E7
jvm_memory_committed_bytes{area="heap",id="G1 Survivor Space",} 1.048576E7
jvm_memory_committed_bytes{area="heap",id="G1 Old Gen",} 1.59383552E8
jvm_memory_committed_bytes{area="nonheap",id="Metaspace",} 1.32841472E8
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-nmethods'",} 2555904.0
jvm_memory_committed_bytes{area="heap",id="G1 Eden Space",} 1.6252928E8
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space",} 1.835008E7
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'",}
1.0616832E7

The default response content type is text/plain;version=0.0.4. The endpoint can also produce
application/openmetrics-text;version=1.0.0 when called with an appropriate Accept header, as
shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/prometheus' -i -X GET \


  -H 'Accept: application/openmetrics-text; version=1.0.0; charset=utf-8'

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/openmetrics-text;version=1.0.0;charset=utf-8
Content-Length: 3110

# TYPE jvm_buffer_total_capacity_bytes gauge


# HELP jvm_buffer_total_capacity_bytes An estimate of the total capacity of the
buffers in this pool
jvm_buffer_total_capacity_bytes{id="mapped - 'non-volatile memory'"} 0.0
jvm_buffer_total_capacity_bytes{id="mapped"} 0.0
jvm_buffer_total_capacity_bytes{id="direct"} 4.2406102E7
# TYPE jvm_buffer_memory_used_bytes gauge
# HELP jvm_buffer_memory_used_bytes An estimate of the memory that the Java virtual
machine is using for this buffer pool
jvm_buffer_memory_used_bytes{id="mapped - 'non-volatile memory'"} 0.0
jvm_buffer_memory_used_bytes{id="mapped"} 0.0
jvm_buffer_memory_used_bytes{id="direct"} 4.2406103E7

77
# TYPE jvm_buffer_count_buffers gauge
# HELP jvm_buffer_count_buffers An estimate of the number of buffers in the pool
jvm_buffer_count_buffers{id="mapped - 'non-volatile memory'"} 0.0
jvm_buffer_count_buffers{id="mapped"} 0.0
jvm_buffer_count_buffers{id="direct"} 27.0
# TYPE jvm_memory_max_bytes gauge
# HELP jvm_memory_max_bytes The maximum amount of memory in bytes that can be used for
memory management
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 1.22908672E8
jvm_memory_max_bytes{area="heap",id="G1 Survivor Space"} -1.0
jvm_memory_max_bytes{area="heap",id="G1 Old Gen"} 1.073741824E9
jvm_memory_max_bytes{area="nonheap",id="Metaspace"} -1.0
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 5840896.0
jvm_memory_max_bytes{area="heap",id="G1 Eden Space"} -1.0
jvm_memory_max_bytes{area="nonheap",id="Compressed Class Space"} 1.073741824E9
jvm_memory_max_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"}
1.22908672E8
# TYPE jvm_memory_used_bytes gauge
# HELP jvm_memory_used_bytes The amount of used memory
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"} 2.474432E7
jvm_memory_used_bytes{area="heap",id="G1 Survivor Space"} 1.0223424E7
jvm_memory_used_bytes{area="heap",id="G1 Old Gen"} 9.827584E7
jvm_memory_used_bytes{area="nonheap",id="Metaspace"} 1.31833944E8
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 1530624.0
jvm_memory_used_bytes{area="heap",id="G1 Eden Space"} 9.437184E7
jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space"} 1.7837432E7
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"}
1.0493312E7
# TYPE jvm_memory_committed_bytes gauge
# HELP jvm_memory_committed_bytes The amount of memory in bytes that is committed for
the Java virtual machine to use
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'"}
2.4772608E7
jvm_memory_committed_bytes{area="heap",id="G1 Survivor Space"} 1.048576E7
jvm_memory_committed_bytes{area="heap",id="G1 Old Gen"} 1.59383552E8
jvm_memory_committed_bytes{area="nonheap",id="Metaspace"} 1.32841472E8
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-nmethods'"} 2555904.0
jvm_memory_committed_bytes{area="heap",id="G1 Eden Space"} 1.6252928E8
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space"} 1.835008E7
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'"}
1.0616832E7
# EOF

19.1.1. Query Parameters

The endpoint uses query parameters to limit the samples that it returns. The following table shows
the supported query parameters:

78
Parameter Description
includedNames Restricts the samples to those that match the names. Optional.

19.2. Retrieving Filtered Metrics


To retrieve metrics matching specific names, make a GET request to /actuator/prometheus with the
includedNames query parameter, as shown in the following curl-based example:

$ curl
'http://localhost:8080/actuator/prometheus?includedNames=jvm_memory_used_bytes%2Cjvm_m
emory_committed_bytes' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: text/plain;version=0.0.4;charset=utf-8
Content-Length: 1484

# HELP jvm_memory_used_bytes The amount of used memory


# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'",} 2.4765184E7
jvm_memory_used_bytes{area="heap",id="G1 Survivor Space",} 1.0223424E7
jvm_memory_used_bytes{area="heap",id="G1 Old Gen",} 9.827584E7
jvm_memory_used_bytes{area="nonheap",id="Metaspace",} 1.3185976E8
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-nmethods'",} 1530624.0
jvm_memory_used_bytes{area="heap",id="G1 Eden Space",} 9.5420416E7
jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space",} 1.7841432E7
jvm_memory_used_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'",}
1.050816E7
# HELP jvm_memory_committed_bytes The amount of memory in bytes that is committed for
the Java virtual machine to use
# TYPE jvm_memory_committed_bytes gauge
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'profiled nmethods'",}
2.4772608E7
jvm_memory_committed_bytes{area="heap",id="G1 Survivor Space",} 1.048576E7
jvm_memory_committed_bytes{area="heap",id="G1 Old Gen",} 1.59383552E8
jvm_memory_committed_bytes{area="nonheap",id="Metaspace",} 1.32841472E8
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-nmethods'",} 2555904.0
jvm_memory_committed_bytes{area="heap",id="G1 Eden Space",} 1.6252928E8
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space",} 1.835008E7
jvm_memory_committed_bytes{area="nonheap",id="CodeHeap 'non-profiled nmethods'",}
1.0616832E7

79
Chapter 20. Quartz (quartz)
The quartz endpoint provides information about jobs and triggers that are managed by the Quartz
Scheduler.

20.1. Retrieving Registered Groups


Jobs and triggers are managed in groups. To retrieve the list of registered job and trigger groups,
make a GET request to /actuator/quartz, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/quartz' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 120

{
  "jobs" : {
  "groups" : [ "samples", "tests" ]
  },
  "triggers" : {
  "groups" : [ "samples", "DEFAULT" ]
  }
}

20.1.1. Response Structure

The response contains the groups names for registered jobs and triggers. The following table
describes the structure of the response:

Path Type Description


jobs.groups Array An array of job group names.
triggers.groups Array An array of trigger group names.

20.2. Retrieving Registered Job Names


To retrieve the list of registered job names, make a GET request to /actuator/quartz/jobs, as shown
in the following curl-based example:

$ curl 'http://localhost:8080/actuator/quartz/jobs' -i -X GET

The resulting response is similar to the following:

80
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 137

{
  "groups" : {
  "samples" : {
  "jobs" : [ "jobOne", "jobTwo" ]
  },
  "tests" : {
  "jobs" : [ "jobThree" ]
  }
  }
}

20.2.1. Response Structure

The response contains the registered job names for each group. The following table describes the
structure of the response:

Path Type Description


groups Object Job groups keyed by name.
groups.*.jobs Array An array of job names.

20.3. Retrieving Registered Trigger Names


To retrieve the list of registered trigger names, make a GET request to /actuator/quartz/triggers, as
shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/quartz/triggers' -i -X GET

The resulting response is similar to the following:

81
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 229

{
  "groups" : {
  "samples" : {
  "paused" : false,
  "triggers" : [ "3am-weekdays", "every-day", "once-a-week" ]
  },
  "DEFAULT" : {
  "paused" : false,
  "triggers" : [ "every-hour-tue-thu" ]
  }
  }
}

20.3.1. Response Structure

The response contains the registered trigger names for each group. The following table describes
the structure of the response:

Path Type Description


groups Object Trigger groups keyed by name.
groups.*.paused Boolean Whether this trigger group is paused.
groups.*.triggers Array An array of trigger names.

20.4. Retrieving Overview of a Job Group


To retrieve an overview of the jobs in a particular group, make a GET request to
/actuator/quartz/jobs/{groupName}, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/quartz/jobs/samples' -i -X GET

The preceding example retrieves the summary for jobs in the samples group. The resulting response
is similar to the following:

82
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 201

{
  "group" : "samples",
  "jobs" : {
  "jobOne" : {
  "className" : "org.springframework.scheduling.quartz.DelegatingJob"
  },
  "jobTwo" : {
  "className" : "org.quartz.Job"
  }
  }
}

20.4.1. Response Structure

The response contains an overview of jobs in a particular group. The following table describes the
structure of the response:

Path Type Description


group String Name of the group.
jobs Object Job details keyed by name.
jobs.*.className String Fully qualified name of the job
implementation.

20.5. Retrieving Overview of a Trigger Group


To retrieve an overview of the triggers in a particular group, make a GET request to
/actuator/quartz/triggers/{groupName}, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/quartz/triggers/tests' -i -X GET

The preceding example retrieves the summary for triggers in the tests group. The resulting
response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 1268

{
  "group" : "tests",
  "paused" : false,
  "triggers" : {

83
  "cron" : {
  "3am-week" : {
  "previousFireTime" : "2020-12-04T03:00:00.000+00:00",
  "nextFireTime" : "2020-12-07T03:00:00.000+00:00",
  "priority" : 3,
  "expression" : "0 0 3 ? * 1,2,3,4,5",
  "timeZone" : "Europe/Paris"
  }
  },
  "simple" : {
  "every-day" : {
  "nextFireTime" : "2020-12-04T12:00:00.000+00:00",
  "priority" : 7,
  "interval" : 86400000
  }
  },
  "dailyTimeInterval" : {
  "tue-thu" : {
  "priority" : 5,
  "interval" : 3600000,
  "daysOfWeek" : [ 3, 5 ],
  "startTimeOfDay" : "09:00:00",
  "endTimeOfDay" : "18:00:00"
  }
  },
  "calendarInterval" : {
  "once-a-week" : {
  "previousFireTime" : "2020-12-02T14:00:00.000+00:00",
  "nextFireTime" : "2020-12-08T14:00:00.000+00:00",
  "priority" : 5,
  "interval" : 604800000,
  "timeZone" : "Etc/UTC"
  }
  },
  "custom" : {
  "once-a-year-custom" : {
  "previousFireTime" : "2020-07-14T16:00:00.000+00:00",
  "nextFireTime" : "2021-07-14T16:00:00.000+00:00",
  "priority" : 10,
  "trigger" : "com.example.CustomTrigger@fdsfsd"
  }
  }
  }
}

20.5.1. Response Structure

The response contains an overview of triggers in a particular group. Trigger implementation


specific details are available. The following table describes the structure of the response:

84
Path Type Description
group String Name of the group.
paused Boolean Whether the group is paused.
triggers.cron Object Cron triggers keyed by name, if any.
triggers.simple Object Simple triggers keyed by name, if any.
triggers.dailyTimeInterval Object Daily time interval triggers keyed by
name, if any.
triggers.calendarInterval Object Calendar interval triggers keyed by
name, if any.
triggers.custom Object Any other triggers keyed by name, if any.
triggers.cron.*.previousFireTime String Last time the trigger fired, if any.
triggers.cron.*.nextFireTime String Next time at which the Trigger is
scheduled to fire, if any.
triggers.cron.*.priority Number Priority to use if two triggers have the
same scheduled fire time.
triggers.cron.*.expression String Cron expression to use.
triggers.cron.*.timeZone String Time zone for which the expression will
be resolved, if any.
triggers.simple.*.previousFireTime String Last time the trigger fired, if any.
triggers.simple.*.nextFireTime String Next time at which the Trigger is
scheduled to fire, if any.
triggers.simple.*.priority Number Priority to use if two triggers have the
same scheduled fire time.
triggers.simple.*.interval Number Interval, in milliseconds, between two
executions.
triggers.dailyTimeInterval.*.previousFi String Last time the trigger fired, if any.
reTime
triggers.dailyTimeInterval.*.nextFireTi String Next time at which the Trigger is
me scheduled to fire, if any.
triggers.dailyTimeInterval.*.priority Number Priority to use if two triggers have the
same scheduled fire time.
triggers.dailyTimeInterval.*.interval Number Interval, in milliseconds, added to the
fire time in order to calculate the time of
the next trigger repeat.
triggers.dailyTimeInterval.*.daysOfWeek Array An array of days of the week upon which
to fire.
triggers.dailyTimeInterval.*.startTimeO String Time of day to start firing at the given
fDay interval, if any.

85
Path Type Description
triggers.dailyTimeInterval.*.endTimeOfD String Time of day to complete firing at the
ay given interval, if any.
triggers.calendarInterval.*.previousFir String Last time the trigger fired, if any.
eTime
triggers.calendarInterval.*.nextFireTim String Next time at which the Trigger is
e scheduled to fire, if any.
triggers.calendarInterval.*.priority Number Priority to use if two triggers have the
same scheduled fire time.
triggers.calendarInterval.*.interval Number Interval, in milliseconds, added to the
fire time in order to calculate the time of
the next trigger repeat.
triggers.calendarInterval.*.timeZone String Time zone within which time
calculations will be performed, if any.
triggers.custom.*.previousFireTime String Last time the trigger fired, if any.
triggers.custom.*.nextFireTime String Next time at which the Trigger is
scheduled to fire, if any.
triggers.custom.*.priority Number Priority to use if two triggers have the
same scheduled fire time.
triggers.custom.*.trigger String A toString representation of the custom
trigger instance.

20.6. Retrieving Details of a Job


To retrieve the details about a particular job, make a GET request to
/actuator/quartz/jobs/{groupName}/{jobName}, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/quartz/jobs/samples/jobOne' -i -X GET

The preceding example retrieves the details of the job identified by the samples group and jobOne
name. The resulting response is similar to the following:

86
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 609

{
  "group" : "samples",
  "name" : "jobOne",
  "description" : "A sample job",
  "className" : "org.springframework.scheduling.quartz.DelegatingJob",
  "durable" : false,
  "requestRecovery" : false,
  "data" : {
  "password" : "secret",
  "user" : "admin"
  },
  "triggers" : [ {
  "group" : "samples",
  "name" : "every-day",
  "previousFireTime" : "2020-12-04T03:00:00.000+00:00",
  "nextFireTime" : "2020-12-04T12:00:00.000+00:00",
  "priority" : 7
  }, {
  "group" : "samples",
  "name" : "3am-weekdays",
  "nextFireTime" : "2020-12-07T03:00:00.000+00:00",
  "priority" : 3
  } ]
}

If a key in the data map is identified as sensitive, its value is sanitized.

20.6.1. Response Structure

The response contains the full details of a job including a summary of the triggers associated with
it, if any. The triggers are sorted by next fire time and priority. The following table describes the
structure of the response:

Path Type Description


group String Name of the group.
name String Name of the job.
description String Description of the job, if any.
className String Fully qualified name of the job implementation.
durable Boolean Whether the job should remain stored after it is
orphaned.
requestRecovery Boolean Whether the job should be re-executed if a
'recovery' or 'fail-over' situation is encountered.

87
Path Type Description
data.* String Job data map as key/value pairs, if any.
triggers Array An array of triggers associated to the job, if any.
triggers.[].group String Name of the trigger group.
triggers.[].name String Name of the trigger.
triggers.[].previousFireTime String Last time the trigger fired, if any.
triggers.[].nextFireTime String Next time at which the Trigger is scheduled to
fire, if any.
triggers.[].priority Number Priority to use if two triggers have the same
scheduled fire time.

20.7. Retrieving Details of a Trigger


To retrieve the details about a particular trigger, make a GET request to
/actuator/quartz/triggers/{groupName}/{triggerName}, as shown in the following curl-based
example:

$ curl 'http://localhost:8080/actuator/quartz/triggers/samples/example' -i -X GET

The preceding example retrieves the details of trigger identified by the samples group and example
name.

20.7.1. Common Response Structure

The response has a common structure and an additional object that is specific to the trigger’s type.
There are five supported types:

• cron for CronTrigger

• simple for SimpleTrigger

• dailyTimeInterval for DailyTimeIntervalTrigger

• calendarInterval for CalendarIntervalTrigger

• custom for any other trigger implementations

The following table describes the structure of the common elements of the response:

Path Type Description


group String Name of the group.
name String Name of the trigger.
description String Description of the trigger, if any.
state String State of the trigger (NONE, NORMAL, PAUSED, COMPLETE,
ERROR, BLOCKED).

88
Path Type Description
type String Type of the trigger (calendarInterval, cron,
custom, dailyTimeInterval, simple). Determines
the key of the object containing type-specific
details.
calendarName String Name of the Calendar associated with this
Trigger, if any.
startTime String Time at which the Trigger should take effect, if
any.
endTime String Time at which the Trigger should quit repeating,
regardless of any remaining repeats, if any.
previousFireTime String Last time the trigger fired, if any.
nextFireTime String Next time at which the Trigger is scheduled to
fire, if any.
priority Number Priority to use if two triggers have the same
scheduled fire time.
finalFireTime String Last time at which the Trigger will fire, if any.
data Object Job data map keyed by name, if any.
calendarInterval Object Calendar time interval trigger details, if any.
Present when type is calendarInterval.
custom Object Custom trigger details, if any. Present when type
is custom.
cron Object Cron trigger details, if any. Present when type is
cron.
dailyTimeInterval Object Daily time interval trigger details, if any. Present
when type is dailyTimeInterval.
simple Object Simple trigger details, if any. Present when type
is simple.

20.7.2. Cron Trigger Response Structure

A cron trigger defines the cron expression that is used to determine when it has to fire. The
resulting response for such a trigger implementation is similar to the following:

89
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 490

{
  "group" : "samples",
  "name" : "example",
  "description" : "Example trigger",
  "state" : "NORMAL",
  "type" : "cron",
  "calendarName" : "bankHolidays",
  "startTime" : "2020-11-30T17:00:00.000+00:00",
  "endTime" : "2020-12-30T03:00:00.000+00:00",
  "previousFireTime" : "2020-12-04T03:00:00.000+00:00",
  "nextFireTime" : "2020-12-07T03:00:00.000+00:00",
  "priority" : 3,
  "data" : { },
  "cron" : {
  "expression" : "0 0 3 ? * 1,2,3,4,5",
  "timeZone" : "Europe/Paris"
  }
}

Much of the response is common to all trigger types. The structure of the common elements of the
response was described previously. The following table describes the structure of the parts of the
response that are specific to cron triggers:

Path Type Description


cron Object Cron trigger specific details.
cron.expression String Cron expression to use.
cron.timeZone String Time zone for which the expression will be
resolved, if any.

20.7.3. Simple Trigger Response Structure

A simple trigger is used to fire a Job at a given moment in time, and optionally repeated at a
specified interval. The resulting response for such a trigger implementation is similar to the
following:

90
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 549

{
  "group" : "samples",
  "name" : "example",
  "description" : "Example trigger",
  "state" : "NORMAL",
  "type" : "simple",
  "calendarName" : "bankHolidays",
  "startTime" : "2020-11-30T17:00:00.000+00:00",
  "endTime" : "2020-12-30T03:00:00.000+00:00",
  "previousFireTime" : "2020-12-04T03:00:00.000+00:00",
  "nextFireTime" : "2020-12-07T03:00:00.000+00:00",
  "priority" : 7,
  "finalFireTime" : "2020-12-29T17:00:00.000+00:00",
  "data" : { },
  "simple" : {
  "interval" : 86400000,
  "repeatCount" : -1,
  "timesTriggered" : 0
  }
}

Much of the response is common to all trigger types. The structure of the common elements of the
response was described previously. The following table describes the structure of the parts of the
response that are specific to simple triggers:

Path Type Description


simple Object Simple trigger specific details.
simple.interval Number Interval, in milliseconds, between two
executions.
simple.repeatCount Number Number of times the trigger should repeat, or -1
to repeat indefinitely.
simple.timesTriggered Number Number of times the trigger has already fired.

20.7.4. Daily Time Interval Trigger Response Structure

A daily time interval trigger is used to fire a Job based upon daily repeating time intervals. The
resulting response for such a trigger implementation is similar to the following:

91
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 667

{
  "group" : "samples",
  "name" : "example",
  "description" : "Example trigger",
  "state" : "PAUSED",
  "type" : "dailyTimeInterval",
  "calendarName" : "bankHolidays",
  "startTime" : "2020-11-30T17:00:00.000+00:00",
  "endTime" : "2020-12-30T03:00:00.000+00:00",
  "previousFireTime" : "2020-12-04T03:00:00.000+00:00",
  "nextFireTime" : "2020-12-07T03:00:00.000+00:00",
  "priority" : 5,
  "finalFireTime" : "2020-12-30T18:00:00.000+00:00",
  "data" : { },
  "dailyTimeInterval" : {
  "interval" : 3600000,
  "daysOfWeek" : [ 3, 5 ],
  "startTimeOfDay" : "09:00:00",
  "endTimeOfDay" : "18:00:00",
  "repeatCount" : -1,
  "timesTriggered" : 0
  }
}

Much of the response is common to all trigger types. The structure of the common elements of the
response was described previously. The following table describes the structure of the parts of the
response that are specific to daily time interval triggers:

Path Type Description


dailyTimeInterval Object Daily time interval trigger specific details.
dailyTimeInterval.interval Number Interval, in milliseconds, added to the fire time
in order to calculate the time of the next trigger
repeat.
dailyTimeInterval.daysOfWeek Array An array of days of the week upon which to fire.
dailyTimeInterval.startTimeOfD String Time of day to start firing at the given interval, if
ay any.
dailyTimeInterval.endTimeOfDay String Time of day to complete firing at the given
interval, if any.
dailyTimeInterval.repeatCount Number Number of times the trigger should repeat, or -1
to repeat indefinitely.
dailyTimeInterval.timesTrigger Number Number of times the trigger has already fired.
ed

92
20.7.5. Calendar Interval Trigger Response Structure

A calendar interval trigger is used to fire a Job based upon repeating calendar time intervals. The
resulting response for such a trigger implementation is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 669

{
  "group" : "samples",
  "name" : "example",
  "description" : "Example trigger",
  "state" : "NORMAL",
  "type" : "calendarInterval",
  "calendarName" : "bankHolidays",
  "startTime" : "2020-11-30T17:00:00.000+00:00",
  "endTime" : "2020-12-30T03:00:00.000+00:00",
  "previousFireTime" : "2020-12-04T03:00:00.000+00:00",
  "nextFireTime" : "2020-12-07T03:00:00.000+00:00",
  "priority" : 5,
  "finalFireTime" : "2020-12-28T17:00:00.000+00:00",
  "data" : { },
  "calendarInterval" : {
  "interval" : 604800000,
  "timeZone" : "Etc/UTC",
  "timesTriggered" : 0,
  "preserveHourOfDayAcrossDaylightSavings" : false,
  "skipDayIfHourDoesNotExist" : false
  }
}

Much of the response is common to all trigger types. The structure of the common elements of the
response was described previously. The following table describes the structure of the parts of the
response that are specific to calendar interval triggers:

Path Type Description


calendarInterval Object Calendar interval trigger specific details.
calendarInterval.interval Number Interval, in milliseconds, added to the fire time
in order to calculate the time of the next trigger
repeat.
calendarInterval.timeZone String Time zone within which time calculations will
be performed, if any.
calendarInterval.timesTriggere Number Number of times the trigger has already fired.
d

93
Path Type Description
calendarInterval.preserveHourO Boolean Whether to fire the trigger at the same time of
fDayAcrossDaylightSavings day, regardless of daylight saving time
transitions.
calendarInterval.skipDayIfHour Boolean Whether to skip if the hour of the day does not
DoesNotExist exist on a given day.

20.7.6. Custom Trigger Response Structure

A custom trigger is any other implementation. The resulting response for such a trigger
implementation is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 457

{
  "group" : "samples",
  "name" : "example",
  "description" : "Example trigger.",
  "state" : "NORMAL",
  "type" : "custom",
  "calendarName" : "bankHolidays",
  "startTime" : "2020-11-30T17:00:00.000+00:00",
  "endTime" : "2020-12-30T03:00:00.000+00:00",
  "previousFireTime" : "2020-12-04T03:00:00.000+00:00",
  "nextFireTime" : "2020-12-07T03:00:00.000+00:00",
  "priority" : 10,
  "custom" : {
  "trigger" : "com.example.CustomTrigger@fdsfsd"
  }
}

Much of the response is common to all trigger types. The structure of the common elements of the
response was described previously. The following table describes the structure of the parts of the
response that are specific to custom triggers:

Path Type Description


custom Object Custom trigger specific details.
custom.trigger String A toString representation of the custom trigger
instance.

94
Chapter 21. Scheduled Tasks (scheduledtasks)
The scheduledtasks endpoint provides information about the application’s scheduled tasks.

21.1. Retrieving the Scheduled Tasks


To retrieve the scheduled tasks, make a GET request to /actuator/scheduledtasks, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/scheduledtasks' -i -X GET

The resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 629

{
  "cron" : [ {
  "runnable" : {
  "target" : "com.example.Processor.processOrders"
  },
  "expression" : "0 0 0/3 1/1 * ?"
  } ],
  "fixedDelay" : [ {
  "runnable" : {
  "target" : "com.example.Processor.purge"
  },
  "initialDelay" : 5000,
  "interval" : 5000
  } ],
  "fixedRate" : [ {
  "runnable" : {
  "target" : "com.example.Processor.retrieveIssues"
  },
  "initialDelay" : 10000,
  "interval" : 3000
  } ],
  "custom" : [ {
  "runnable" : {
  "target" : "com.example.Processor$CustomTriggeredRunnable"
  },
  "trigger" : "com.example.Processor$CustomTrigger@7b4bd0c0"
  } ]
}

95
21.1.1. Response Structure

The response contains details of the application’s scheduled tasks. The following table describes the
structure of the response:

Path Type Description


cron Array Cron tasks, if any.
cron.[].runnable.target String Target that will be executed.
cron.[].expression String Cron expression.
fixedDelay Array Fixed delay tasks, if any.
fixedDelay.[].runnable.target String Target that will be executed.
fixedDelay.[].initialDelay Number Delay, in milliseconds, before first execution.
fixedDelay.[].interval Number Interval, in milliseconds, between the end of the
last execution and the start of the next.
fixedRate Array Fixed rate tasks, if any.
fixedRate.[].runnable.target String Target that will be executed.
fixedRate.[].interval Number Interval, in milliseconds, between the start of
each execution.
fixedRate.[].initialDelay Number Delay, in milliseconds, before first execution.
custom Array Tasks with custom triggers, if any.
custom.[].runnable.target String Target that will be executed.
custom.[].trigger String Trigger for the task.

96
Chapter 22. Sessions (sessions)
The sessions endpoint provides information about the application’s HTTP sessions that are
managed by Spring Session.

22.1. Retrieving Sessions


To retrieve the sessions, make a GET request to /actuator/sessions, as shown in the following curl-
based example:

$ curl 'http://localhost:8080/actuator/sessions?username=alice' -i -X GET

The preceding examples retrieves all of the sessions for the user whose username is alice. The
resulting response is similar to the following:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 789

{
  "sessions" : [ {
  "id" : "4beb47c0-36e2-494c-861d-219ac028d352",
  "attributeNames" : [ ],
  "creationTime" : "2023-02-24T05:23:41.956783889Z",
  "lastAccessedTime" : "2023-02-24T17:22:56.956801401Z",
  "maxInactiveInterval" : 1800,
  "expired" : false
  }, {
  "id" : "f516bc79-f3b2-4a93-a755-761f8971f033",
  "attributeNames" : [ ],
  "creationTime" : "2023-02-24T15:23:41.957125162Z",
  "lastAccessedTime" : "2023-02-24T17:23:29.957125731Z",
  "maxInactiveInterval" : 1800,
  "expired" : false
  }, {
  "id" : "4db5efcc-99cb-4d05-a52c-b49acfbb7ea9",
  "attributeNames" : [ ],
  "creationTime" : "2023-02-24T12:23:41.957121384Z",
  "lastAccessedTime" : "2023-02-24T17:23:04.957122995Z",
  "maxInactiveInterval" : 1800,
  "expired" : false
  } ]
}

97
22.1.1. Query Parameters

The endpoint uses query parameters to limit the sessions that it returns. The following table shows
the single required query parameter:

Parameter Description
username Name of the user.

22.1.2. Response Structure

The response contains details of the matching sessions. The following table describes the structure
of the response:

Path Type Description


sessions Array Sessions for the given username.
sessions.[].id String ID of the session.
sessions.[].attributeNames Array Names of the attributes stored in the
session.
sessions.[].creationTime String Timestamp of when the session was
created.
sessions.[].lastAccessedTime String Timestamp of when the session was last
accessed.
sessions.[].maxInactiveInterval Number Maximum permitted period of inactivity,
in seconds, before the session will expire.
sessions.[].expired Boolean Whether the session has expired.

22.2. Retrieving a Single Session


To retrieve a single session, make a GET request to /actuator/sessions/{id}, as shown in the
following curl-based example:

$ curl 'http://localhost:8080/actuator/sessions/4db5efcc-99cb-4d05-a52c-b49acfbb7ea9'
-i -X GET

The preceding example retrieves the session with the id of 4db5efcc-99cb-4d05-a52c-b49acfbb7ea9.


The resulting response is similar to the following:

98
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 240

{
  "id" : "4db5efcc-99cb-4d05-a52c-b49acfbb7ea9",
  "attributeNames" : [ ],
  "creationTime" : "2023-02-24T12:23:41.957121384Z",
  "lastAccessedTime" : "2023-02-24T17:23:04.957122995Z",
  "maxInactiveInterval" : 1800,
  "expired" : false
}

22.2.1. Response Structure

The response contains details of the requested session. The following table describes the structure
of the response:

Path Type Description


id String ID of the session.
attributeNames Array Names of the attributes stored in the
session.
creationTime String Timestamp of when the session was
created.
lastAccessedTime String Timestamp of when the session was last
accessed.
maxInactiveInterval Number Maximum permitted period of inactivity,
in seconds, before the session will expire.
expired Boolean Whether the session has expired.

22.3. Deleting a Session


To delete a session, make a DELETE request to /actuator/sessions/{id}, as shown in the following
curl-based example:

$ curl 'http://localhost:8080/actuator/sessions/4db5efcc-99cb-4d05-a52c-b49acfbb7ea9'
-i -X DELETE

The preceding example deletes the session with the id of 4db5efcc-99cb-4d05-a52c-b49acfbb7ea9.

99
Chapter 23. Shutdown (shutdown)
The shutdown endpoint is used to shut down the application.

23.1. Shutting Down the Application


To shut down the application, make a POST request to /actuator/shutdown, as shown in the following
curl-based example:

$ curl 'http://localhost:8080/actuator/shutdown' -i -X POST

A response similar to the following is produced:

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 41

{
  "message" : "Shutting down, bye..."
}

23.1.1. Response Structure

The response contains details of the result of the shutdown request. The following table describes
the structure of the response:

Path Type Description


message String Message describing the result of the
request.

100
Chapter 24. Application Startup (startup)
The startup endpoint provides information about the application’s startup sequence.

24.1. Retrieving the Application Startup Steps


The application startup steps can either be retrieved as a snapshot (GET) or drained from the buffer
(POST).

24.1.1. Retrieving a snapshot of the Application Startup Steps

To retrieve the steps recorded so far during the application startup phase, make a GET request to
/actuator/startup, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/startup' -i -X GET

The resulting response is similar to the following:

101
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 897

{
  "springBootVersion" : "3.1.0-SNAPSHOT",
  "timeline" : {
  "startTime" : "2023-02-24T17:23:42.379597834Z",
  "events" : [ {
  "endTime" : "2023-02-24T17:23:42.502724055Z",
  "duration" : "PT0.00000622S",
  "startupStep" : {
  "name" : "spring.beans.instantiate",
  "id" : 3,
  "tags" : [ {
  "key" : "beanName",
  "value" : "homeController"
  } ],
  "parentId" : 2
  },
  "startTime" : "2023-02-24T17:23:42.502717835Z"
  }, {
  "endTime" : "2023-02-24T17:23:42.502733306Z",
  "duration" : "PT0.000026512S",
  "startupStep" : {
  "name" : "spring.boot.application.starting",
  "id" : 2,
  "tags" : [ {
  "key" : "mainApplicationClass",
  "value" : "com.example.startup.StartupApplication"
  } ]
  },
  "startTime" : "2023-02-24T17:23:42.502706794Z"
  } ]
  }
}

24.1.2. Draining the Application Startup Steps

To drain and return the steps recorded so far during the application startup phase, make a POST
request to /actuator/startup, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/startup' -i -X POST

The resulting response is similar to the following:

102
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Content-Length: 898

{
  "springBootVersion" : "3.1.0-SNAPSHOT",
  "timeline" : {
  "startTime" : "2023-02-24T17:23:42.379597834Z",
  "events" : [ {
  "endTime" : "2023-02-24T17:23:42.470801860Z",
  "duration" : "PT0.000224053S",
  "startupStep" : {
  "name" : "spring.beans.instantiate",
  "id" : 1,
  "tags" : [ {
  "key" : "beanName",
  "value" : "homeController"
  } ],
  "parentId" : 0
  },
  "startTime" : "2023-02-24T17:23:42.470577807Z"
  }, {
  "endTime" : "2023-02-24T17:23:42.470870520Z",
  "duration" : "PT0.001281401S",
  "startupStep" : {
  "name" : "spring.boot.application.starting",
  "id" : 0,
  "tags" : [ {
  "key" : "mainApplicationClass",
  "value" : "com.example.startup.StartupApplication"
  } ]
  },
  "startTime" : "2023-02-24T17:23:42.469589119Z"
  } ]
  }
}

24.1.3. Response Structure

The response contains details of the application startup steps. The following table describes the
structure of the response:

Path Type Description


springBootVersion String Spring Boot version for this application.
timeline.startTime String Start time of the application.
timeline.events Array An array of steps collected during application
startup so far.

103
Path Type Description
timeline.events.[].startTime String The timestamp of the start of this event.
timeline.events.[].endTime String The timestamp of the end of this event.
timeline.events.[].duration String The precise duration of this event.
timeline.events.[].startupStep String The name of the StartupStep.
.name
timeline.events.[].startupStep Number The id of this StartupStep.
.id
timeline.events.[].startupStep Number The parent id for this StartupStep.
.parentId
timeline.events.[].startupStep Array An array of key/value pairs with additional step
.tags info.
timeline.events.[].startupStep String The key of the StartupStep Tag.
.tags[].key
timeline.events.[].startupStep String The value of the StartupStep Tag.
.tags[].value

104
Chapter 25. Thread Dump (threaddump)
The threaddump endpoint provides a thread dump from the application’s JVM.

25.1. Retrieving the Thread Dump as JSON


To retrieve the thread dump as JSON, make a GET request to /actuator/threaddump with an
appropriate Accept header, as shown in the following curl-based example:

$ curl 'http://localhost:8080/actuator/threaddump' -i -X GET \


  -H 'Accept: application/json'

The resulting response is similar to the following:

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

{
  "threads" : [ {
  "threadName" : "Test worker",
  "threadId" : 1,
  "blockedTime" : -1,
  "blockedCount" : 52,
  "waitedTime" : -1,
  "waitedCount" : 295,
  "lockOwnerId" : -1,
  "daemon" : false,
  "inNative" : false,
  "suspended" : false,
  "threadState" : "RUNNABLE",
  "priority" : 5,
  "stackTrace" : [ {
  "moduleName" : "java.management",
  "moduleVersion" : "17.0.6",
  "methodName" : "dumpThreads0",
  "fileName" : "ThreadImpl.java",
  "lineNumber" : -2,
  "nativeMethod" : true,
  "className" : "sun.management.ThreadImpl"
  }, {
  "moduleName" : "java.management",
  "moduleVersion" : "17.0.6",
  "methodName" : "dumpAllThreads",
  "fileName" : "ThreadImpl.java",
  "lineNumber" : 521,
  "nativeMethod" : false,
  "className" : "sun.management.ThreadImpl"

105
  }, {
  "moduleName" : "java.management",
  "moduleVersion" : "17.0.6",
  "methodName" : "dumpAllThreads",
  "fileName" : "ThreadImpl.java",
  "lineNumber" : 509,
  "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.6",
  "methodName" : "invoke0",
  "fileName" : "NativeMethodAccessorImpl.java",
  "lineNumber" : -2,
  "nativeMethod" : true,
  "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "NativeMethodAccessorImpl.java",
  "lineNumber" : 77,
  "nativeMethod" : false,
  "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "DelegatingMethodAccessorImpl.java",
  "lineNumber" : 43,
  "nativeMethod" : false,
  "className" : "jdk.internal.reflect.DelegatingMethodAccessorImpl"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "Method.java",

106
  "lineNumber" : 568,
  "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" : 321,
  "nativeMethod" : false,
  "className" :
"org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMa
pping$ServletWebOperationAdapter"
  }, {
  "classLoaderName" : "app",
  "methodName" : "handle",
  "fileName" : "AbstractWebMvcEndpointHandlerMapping.java",
  "lineNumber" : 428,
  "nativeMethod" : false,
  "className" :
"org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMa
pping$OperationHandler"
  }, {
  "methodName" : "invoke",
  "lineNumber" : -1,
  "nativeMethod" : false,
  "className" : "jdk.internal.reflect.GeneratedMethodAccessor159"
  }, {
  "moduleName" : "java.base",

107
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "DelegatingMethodAccessorImpl.java",
  "lineNumber" : 43,
  "nativeMethod" : false,
  "className" : "jdk.internal.reflect.DelegatingMethodAccessorImpl"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "Method.java",
  "lineNumber" : 568,
  "nativeMethod" : false,
  "className" : "java.lang.reflect.Method"
  }, {
  "classLoaderName" : "app",
  "methodName" : "doInvoke",
  "fileName" : "InvocableHandlerMethod.java",
  "lineNumber" : 207,
  "nativeMethod" : false,
  "className" : "org.springframework.web.method.support.InvocableHandlerMethod"
  }, {
  "classLoaderName" : "app",
  "methodName" : "invokeForRequest",
  "fileName" : "InvocableHandlerMethod.java",
  "lineNumber" : 152,
  "nativeMethod" : false,
  "className" : "org.springframework.web.method.support.InvocableHandlerMethod"
  }, {
  "classLoaderName" : "app",
  "methodName" : "invokeAndHandle",
  "fileName" : "ServletInvocableHandlerMethod.java",
  "lineNumber" : 117,
  "nativeMethod" : false,
  "className" :
"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod"
  }, {
  "classLoaderName" : "app",
  "methodName" : "invokeHandlerMethod",
  "fileName" : "RequestMappingHandlerAdapter.java",
  "lineNumber" : 884,
  "nativeMethod" : false,
  "className" :
"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"
  }, {
  "classLoaderName" : "app",
  "methodName" : "handleInternal",
  "fileName" : "RequestMappingHandlerAdapter.java",
  "lineNumber" : 797,
  "nativeMethod" : false,
  "className" :

108
"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" : 1081,
  "nativeMethod" : false,
  "className" : "org.springframework.web.servlet.DispatcherServlet"
  }, {
  "classLoaderName" : "app",
  "methodName" : "doService",
  "fileName" : "DispatcherServlet.java",
  "lineNumber" : 974,
  "nativeMethod" : false,
  "className" : "org.springframework.web.servlet.DispatcherServlet"
  }, {
  "classLoaderName" : "app",
  "methodName" : "processRequest",
  "fileName" : "FrameworkServlet.java",
  "lineNumber" : 1011,
  "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"

109
  }, {
  "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" : "jsonThreadDump",
  "fileName" : "ThreadDumpEndpointDocumentationTests.java",
  "lineNumber" : 66,
  "nativeMethod" : false,
  "className" :
"org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.ThreadDumpE
ndpointDocumentationTests"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke0",
  "fileName" : "NativeMethodAccessorImpl.java",
  "lineNumber" : -2,
  "nativeMethod" : true,

110
  "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "NativeMethodAccessorImpl.java",
  "lineNumber" : 77,
  "nativeMethod" : false,
  "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "DelegatingMethodAccessorImpl.java",
  "lineNumber" : 43,
  "nativeMethod" : false,
  "className" : "jdk.internal.reflect.DelegatingMethodAccessorImpl"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "Method.java",
  "lineNumber" : 568,
  "nativeMethod" : false,
  "className" : "java.lang.reflect.Method"
  }, {
  "classLoaderName" : "app",
  "methodName" : "invokeMethod",
  "fileName" : "ReflectionUtils.java",
  "lineNumber" : 727,
  "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",

111
  "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$206/0x0000000800
e13a28"
  }, {
  "classLoaderName" : "app",
  "methodName" : "lambda$ofVoidMethod$0",
  "fileName" : "InterceptingExecutableInvoker.java",
  "lineNumber" : 103,
  "nativeMethod" : false,
  "className" :
"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveIntercepto
rCall"
  }, {
  "classLoaderName" : "app",
  "methodName" : "apply",
  "lineNumber" : -1,
  "nativeMethod" : false,
  "className" :
"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveIntercepto
rCall$$Lambda$207/0x0000000800e16000"
  }, {
  "classLoaderName" : "app",
  "methodName" : "lambda$invoke$0",
  "fileName" : "InterceptingExecutableInvoker.java",
  "lineNumber" : 93,
  "nativeMethod" : false,
  "className" : "org.junit.jupiter.engine.execution.InterceptingExecutableInvoker"
  }, {
  "classLoaderName" : "app",

112
  "methodName" : "apply",
  "lineNumber" : -1,
  "nativeMethod" : false,
  "className" :
"org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$$Lambda$371/0x000000
0800e3f138"
  }, {
  "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",

113
  "methodName" : "lambda$invokeTestMethod$7",
  "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$417/0x0000000800
e70f18"
  }, {
  "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",

114
  "methodName" : "execute",
  "lineNumber" : -1,
  "nativeMethod" : false,
  "className" :
"org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$302/0x0000000800e
31598"
  }, {
  "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$301/0x0000000800e
31370"
  }, {
  "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$300/0x0000000800e
30f48"

115
  }, {
  "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.SameThreadHierarchicalTestExecutorServ
ice$$Lambda$306/0x0000000800e320b0"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "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.SameThreadHierarchicalTestExecutorServ
ice"
  }, {
  "classLoaderName" : "app",
  "methodName" : "lambda$executeRecursively$6",
  "fileName" : "NodeTestTask.java",

116
  "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$302/0x0000000800e
31598"
  }, {
  "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$301/0x0000000800e
31370"
  }, {
  "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",

117
  "lineNumber" : -1,
  "nativeMethod" : false,
  "className" :
"org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$300/0x0000000800e
30f48"
  }, {
  "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.SameThreadHierarchicalTestExecutorServ
ice$$Lambda$306/0x0000000800e320b0"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "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.SameThreadHierarchicalTestExecutorServ

118
ice"
  }, {
  "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$302/0x0000000800e
31598"
  }, {
  "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$301/0x0000000800e
31370"
  }, {
  "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,

119
  "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$300/0x0000000800e
30f48"
  }, {
  "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.SameThreadHierarchicalTestExecutorServ
ice"
  }, {
  "classLoaderName" : "app",
  "methodName" : "execute",
  "fileName" : "HierarchicalTestExecutor.java",
  "lineNumber" : 57,
  "nativeMethod" : false,
  "className" :
"org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor"
  }, {
  "classLoaderName" : "app",

120
  "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" : 147,
  "nativeMethod" : false,
  "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
  }, {
  "classLoaderName" : "app",
  "methodName" : "execute",
  "fileName" : "EngineExecutionOrchestrator.java",
  "lineNumber" : 127,
  "nativeMethod" : false,
  "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
  }, {
  "classLoaderName" : "app",
  "methodName" : "execute",
  "fileName" : "EngineExecutionOrchestrator.java",
  "lineNumber" : 90,
  "nativeMethod" : false,
  "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
  }, {
  "classLoaderName" : "app",
  "methodName" : "lambda$execute$0",
  "fileName" : "EngineExecutionOrchestrator.java",
  "lineNumber" : 55,
  "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$254/0x0000000800
e1dd20"
  }, {
  "classLoaderName" : "app",
  "methodName" : "withInterceptedStreams",
  "fileName" : "EngineExecutionOrchestrator.java",
  "lineNumber" : 102,
  "nativeMethod" : false,
  "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
  }, {
  "classLoaderName" : "app",

121
  "methodName" : "execute",
  "fileName" : "EngineExecutionOrchestrator.java",
  "lineNumber" : 54,
  "nativeMethod" : false,
  "className" : "org.junit.platform.launcher.core.EngineExecutionOrchestrator"
  }, {
  "classLoaderName" : "app",
  "methodName" : "execute",
  "fileName" : "DefaultLauncher.java",
  "lineNumber" : 114,
  "nativeMethod" : false,
  "className" : "org.junit.platform.launcher.core.DefaultLauncher"
  }, {
  "classLoaderName" : "app",
  "methodName" : "execute",
  "fileName" : "DefaultLauncher.java",
  "lineNumber" : 86,
  "nativeMethod" : false,
  "className" : "org.junit.platform.launcher.core.DefaultLauncher"
  }, {
  "classLoaderName" : "app",
  "methodName" : "execute",
  "fileName" : "DefaultLauncherSession.java",
  "lineNumber" : 86,
  "nativeMethod" : false,
  "className" :
"org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher"
  }, {
  "classLoaderName" : "app",
  "methodName" : "execute",
  "fileName" : "SessionPerRequestLauncher.java",
  "lineNumber" : 53,
  "nativeMethod" : false,
  "className" : "org.junit.platform.launcher.core.SessionPerRequestLauncher"
  }, {
  "methodName" : "processAllTestClasses",
  "fileName" : "JUnitPlatformTestClassProcessor.java",
  "lineNumber" : 99,
  "nativeMethod" : false,
  "className" :
"org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$C
ollectAllTestClassesExecutor"
  }, {
  "methodName" : "access$000",
  "fileName" : "JUnitPlatformTestClassProcessor.java",
  "lineNumber" : 79,
  "nativeMethod" : false,
  "className" :
"org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$C
ollectAllTestClassesExecutor"
  }, {

122
  "methodName" : "stop",
  "fileName" : "JUnitPlatformTestClassProcessor.java",
  "lineNumber" : 75,
  "nativeMethod" : false,
  "className" :
"org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor"
  }, {
  "methodName" : "stop",
  "fileName" : "SuiteTestClassProcessor.java",
  "lineNumber" : 62,
  "nativeMethod" : false,
  "className" : "org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke0",
  "fileName" : "NativeMethodAccessorImpl.java",
  "lineNumber" : -2,
  "nativeMethod" : true,
  "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "NativeMethodAccessorImpl.java",
  "lineNumber" : 77,
  "nativeMethod" : false,
  "className" : "jdk.internal.reflect.NativeMethodAccessorImpl"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "DelegatingMethodAccessorImpl.java",
  "lineNumber" : 43,
  "nativeMethod" : false,
  "className" : "jdk.internal.reflect.DelegatingMethodAccessorImpl"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "invoke",
  "fileName" : "Method.java",
  "lineNumber" : 568,
  "nativeMethod" : false,
  "className" : "java.lang.reflect.Method"
  }, {
  "methodName" : "dispatch",
  "fileName" : "ReflectionDispatch.java",
  "lineNumber" : 36,
  "nativeMethod" : false,
  "className" : "org.gradle.internal.dispatch.ReflectionDispatch"
  }, {

123
  "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" : 94,
  "nativeMethod" : false,
  "className" :
"org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler"
  }, {
  "moduleName" : "jdk.proxy1",
  "methodName" : "stop",
  "lineNumber" : -1,
  "nativeMethod" : false,
  "className" : "jdk.proxy1.$Proxy2"
  }, {
  "methodName" : "run",
  "fileName" : "TestWorker.java",
  "lineNumber" : 193,
  "nativeMethod" : false,
  "className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker$3"
  }, {
  "methodName" : "executeAndMaintainThreadName",
  "fileName" : "TestWorker.java",
  "lineNumber" : 129,
  "nativeMethod" : false,
  "className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker"
  }, {
  "methodName" : "execute",
  "fileName" : "TestWorker.java",
  "lineNumber" : 100,
  "nativeMethod" : false,
  "className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker"
  }, {
  "methodName" : "execute",
  "fileName" : "TestWorker.java",
  "lineNumber" : 60,
  "nativeMethod" : false,
  "className" : "org.gradle.api.internal.tasks.testing.worker.TestWorker"
  }, {
  "methodName" : "execute",
  "fileName" : "ActionExecutionWorker.java",

124
  "lineNumber" : 56,
  "nativeMethod" : false,
  "className" : "org.gradle.process.internal.worker.child.ActionExecutionWorker"
  }, {
  "methodName" : "call",
  "fileName" : "SystemApplicationClassLoaderWorker.java",
  "lineNumber" : 113,
  "nativeMethod" : false,
  "className" :
"org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker"
  }, {
  "methodName" : "call",
  "fileName" : "SystemApplicationClassLoaderWorker.java",
  "lineNumber" : 65,
  "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.6",
  "methodName" : "waitForReferencePendingList",

125
  "fileName" : "Reference.java",
  "lineNumber" : -2,
  "nativeMethod" : true,
  "className" : "java.lang.ref.Reference"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "processPendingReferences",
  "fileName" : "Reference.java",
  "lineNumber" : 253,
  "nativeMethod" : false,
  "className" : "java.lang.ref.Reference"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "run",
  "fileName" : "Reference.java",
  "lineNumber" : 215,
  "nativeMethod" : false,
  "className" : "java.lang.ref.Reference$ReferenceHandler"
  } ],
  "lockedMonitors" : [ ],
  "lockedSynchronizers" : [ ]
  }, {
  "threadName" : "Finalizer",
  "threadId" : 3,
  "blockedTime" : -1,
  "blockedCount" : 10,
  "waitedTime" : -1,
  "waitedCount" : 11,
  "lockName" : "java.lang.ref.ReferenceQueue$Lock@32e6636",
  "lockOwnerId" : -1,
  "daemon" : true,
  "inNative" : false,
  "suspended" : false,
  "threadState" : "WAITING",
  "priority" : 8,
  "stackTrace" : [ {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "wait",
  "fileName" : "Object.java",
  "lineNumber" : -2,
  "nativeMethod" : true,
  "className" : "java.lang.Object"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "remove",
  "fileName" : "ReferenceQueue.java",
  "lineNumber" : 155,

126
  "nativeMethod" : false,
  "className" : "java.lang.ref.ReferenceQueue"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "methodName" : "remove",
  "fileName" : "ReferenceQueue.java",
  "lineNumber" : 176,
  "nativeMethod" : false,
  "className" : "java.lang.ref.ReferenceQueue"
  }, {
  "moduleName" : "java.base",
  "moduleVersion" : "17.0.6",
  "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" : 53372470
  }
  } ]
}

25.1.1. Response Structure

The response contains details of the JVM’s threads. The following table describes the structure of
the response:

Path Type Description


threads Array JVM’s threads.
threads.[].blockedCount Number Total number of times that the
thread has been blocked.
threads.[].blockedTime Number Time in milliseconds that the
thread has spent blocked. -1 if
thread contention monitoring is
disabled.
threads.[].daemon Boolean Whether the thread is a
daemon thread. Only available
on Java 9 or later.
threads.[].inNative Boolean Whether the thread is executing
native code.

127
Path Type Description
threads.[].lockName String Description of the object on
which the thread is blocked, if
any.
threads.[].lockInfo Object Object for which the thread is
blocked waiting.
threads.[].lockInfo.className String Fully qualified class name of
the lock object.
threads.[].lockInfo.identityHashCode Number Identity hash code of the lock
object.
threads.[].lockedMonitors Array Monitors locked by this thread,
if any
threads.[].lockedMonitors.[].className String Class name of the lock object.
threads.[].lockedMonitors.[].identityHashCode Number Identity hash code of the lock
object.
threads.[].lockedMonitors.[].lockedStackDepth Number Stack depth where the monitor
was locked.
threads.[].lockedMonitors.[].lockedStackFrame Object Stack frame that locked the
monitor.
threads.[].lockedSynchronizers Array Synchronizers locked by this
thread.
threads.[].lockedSynchronizers.[].className String Class name of the locked
synchronizer.
threads.[].lockedSynchronizers.[].identityHash Number Identity hash code of the locked
Code synchronizer.
threads.[].lockOwnerId Number ID of the thread that owns the
object on which the thread is
blocked. -1 if the thread is not
blocked.
threads.[].lockOwnerName String Name of the thread that owns
the object on which the thread
is blocked, if any.
threads.[].priority Number Priority of the thread. Only
available on Java 9 or later.
threads.[].stackTrace Array Stack trace of the thread.
threads.[].stackTrace.[].classLoaderName String Name of the class loader of the
class that contains the
execution point identified by
this entry, if any. Only available
on Java 9 or later.

128
Path Type Description
threads.[].stackTrace.[].className String Name of the class that contains
the execution point identified
by this entry.
threads.[].stackTrace.[].fileName String Name of the source file that
contains the execution point
identified by this entry, if any.
threads.[].stackTrace.[].lineNumber Number Line number of the execution
point identified by this entry.
Negative if unknown.
threads.[].stackTrace.[].methodName String Name of the method.
threads.[].stackTrace.[].moduleName String Name of the module that
contains the execution point
identified by this entry, if any.
Only available on Java 9 or
later.
threads.[].stackTrace.[].moduleVersion String Version of the module that
contains the execution point
identified by this entry, if any.
Only available on Java 9 or
later.
threads.[].stackTrace.[].nativeMethod Boolean Whether the execution point is
a native method.
threads.[].suspended Boolean Whether the thread is
suspended.
threads.[].threadId Number ID of the thread.
threads.[].threadName String Name of the thread.
threads.[].threadState String State of the thread (NEW,
RUNNABLE, BLOCKED, WAITING,
TIMED_WAITING, TERMINATED).
threads.[].waitedCount Number Total number of times that the
thread has waited for
notification.
threads.[].waitedTime Number Time in milliseconds that the
thread has spent waiting. -1 if
thread contention monitoring is
disabled

25.2. Retrieving the Thread Dump as Text


To retrieve the thread dump as text, make a GET request to /actuator/threaddump that accepts
text/plain, as shown in the following curl-based example:

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

The resulting response is similar to the following:

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

2023-02-24 17:23:42
Full thread dump OpenJDK 64-Bit Server VM (17.0.6+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:521)
  at
[email protected]/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:509)
  at
app//org.springframework.boot.actuate.management.ThreadDumpEndpoint.getFormattedThread
Dump(ThreadDumpEndpoint.java:52)
  at
app//org.springframework.boot.actuate.management.ThreadDumpEndpoint.textThreadDump(Thr
eadDumpEndpoint.java:48)
  at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
  at
[email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
ssorImpl.java:77)
  at
[email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
thodAccessorImpl.java:43)
  at [email protected]/java.lang.reflect.Method.invoke(Method.java:568)
  at
app//org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:281)
  at
app//org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvok
er.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.AbstractWebMvcEndpointHandl
erMapping$ServletWebOperationAdapter.handle(AbstractWebMvcEndpointHandlerMapping.java:
321)
  at
app//org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandl
erMapping$OperationHandler.handle(AbstractWebMvcEndpointHandlerMapping.java:428)

130
  at jdk.internal.reflect.GeneratedMethodAccessor159.invoke(Unknown Source)
  at
[email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
thodAccessorImpl.java:43)
  at [email protected]/java.lang.reflect.Method.invoke(Method.java:568)
  at
app//org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableH
andlerMethod.java:207)
  at
app//org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(In
vocableHandlerMethod.java:152)
  at
app//org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMeth
od.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
  at
app//org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapte
r.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
  at
app//org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapte
r.handleInternal(RequestMappingHandlerAdapter.java:797)
  at
app//org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(Ab
stractHandlerMethodAdapter.java:87)
  at
app//org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.ja
va:1081)
  at
app//org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.jav
a:974)
  at
app//org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.
java:1011)
  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:88
5)
  at
app//org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcher
Servlet.java:72)
  at app//jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
  at
app//org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilt
erChain.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.boot.actuate.autoconfigure.endpoint.web.documentation.ThreadD
umpEndpointDocumentationTests.textThreadDump(ThreadDumpEndpointDocumentationTests.java

131
:182)
  at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
  at
[email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
ssorImpl.java:77)
  at
[email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
thodAccessorImpl.java:43)
  at [email protected]/java.lang.reflect.Method.invoke(Method.java:568)
  at
app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java
:727)
  at
app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java
:60)
  at
app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocatio
n.proceed(InvocationInterceptorChain.java:131)
  at
app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.ja
va:156)
  at
app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(Timeo
utExtension.java:147)
  at
app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutEx
tension.java:86)
  at
app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda$206/0x000000
0800e13a28.apply(Unknown Source)
  at
app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterc
eptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
  at
app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterc
eptorCall$$Lambda$207/0x0000000800e16000.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$371/0x00
00000800e3f138.apply(Unknown Source)
  at
app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocati
on.proceed(InvocationInterceptorChain.java:106)
  at
app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationI
nterceptorChain.java:64)
  at
app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(Invo

132
cationInterceptorChain.java:45)
  at
app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationIn
terceptorChain.java:37)
  at
app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(Intercept
ingExecutableInvoker.java:92)
  at
app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(Intercept
ingExecutableInvoker.java:86)
  at
app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMet
hod$7(TestMethodTestDescriptor.java:217)
  at
app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor$$Lambda$417/0x000000
0800e70f18.execute(Unknown Source)
  at
app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(Throwab
leCollector.java:73)
  at
app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(Tes
tMethodTestDescriptor.java:213)
  at
app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTe
stDescriptor.java:138)
  at
app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTe
stDescriptor.java:68)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursi
vely$6(NodeTestTask.java:151)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$302/0x0000000
800e31598.execute(Unknown Source)
  at
app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(Throwab
leCollector.java:73)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursi
vely$8(NodeTestTask.java:141)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$301/0x0000000
800e31370.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$executeRecursi
vely$9(NodeTestTask.java:139)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$300/0x0000000
800e30f48.execute(Unknown Source)
  at

133
app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(Throwab
leCollector.java:73)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(No
deTestTask.java:138)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.
java:95)
  at
app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutor
Service$$Lambda$306/0x0000000800e320b0.accept(Unknown Source)
  at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1511)
  at
app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutor
Service.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursi
vely$6(NodeTestTask.java:155)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$302/0x0000000
800e31598.execute(Unknown Source)
  at
app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(Throwab
leCollector.java:73)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursi
vely$8(NodeTestTask.java:141)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$301/0x0000000
800e31370.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$executeRecursi
vely$9(NodeTestTask.java:139)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$300/0x0000000
800e30f48.execute(Unknown Source)
  at
app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(Throwab
leCollector.java:73)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(No
deTestTask.java:138)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.
java:95)
  at
app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutor
Service$$Lambda$306/0x0000000800e320b0.accept(Unknown Source)
  at [email protected]/java.util.ArrayList.forEach(ArrayList.java:1511)
  at

134
app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutor
Service.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursi
vely$6(NodeTestTask.java:155)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$302/0x0000000
800e31598.execute(Unknown Source)
  at
app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(Throwab
leCollector.java:73)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursi
vely$8(NodeTestTask.java:141)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$301/0x0000000
800e31370.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$executeRecursi
vely$9(NodeTestTask.java:139)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask$$Lambda$300/0x0000000
800e30f48.execute(Unknown Source)
  at
app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(Throwab
leCollector.java:73)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(No
deTestTask.java:138)
  at
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.
java:95)
  at
app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutor
Service.submit(SameThreadHierarchicalTestExecutorService.java:35)
  at
app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(H
ierarchicalTestExecutor.java:57)
  at
app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(Hie
rarchicalTestEngine.java:54)
  at
app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecut
ionOrchestrator.java:147)
  at
app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecut
ionOrchestrator.java:127)
  at
app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecut
ionOrchestrator.java:90)

135
  at
app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(Eng
ineExecutionOrchestrator.java:55)
  at
app//org.junit.platform.launcher.core.EngineExecutionOrchestrator$$Lambda$254/0x000000
0800e1dd20.accept(Unknown Source)
  at
app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStrea
ms(EngineExecutionOrchestrator.java:102)
  at
app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecut
ionOrchestrator.java:54)
  at
app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114
)
  at
app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
  at
app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execut
e(DefaultLauncherSession.java:86)
  at
app//org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequ
estLauncher.java:53)
  at
org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$Co
llectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java
:99)
  at
org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$Co
llectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79)
  at
org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.st
op(JUnitPlatformTestClassProcessor.java:75)
  at
org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProce
ssor.java:62)
  at [email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
  at
[email protected]/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
ssorImpl.java:77)
  at
[email protected]/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
thodAccessorImpl.java:43)
  at [email protected]/java.lang.reflect.Method.invoke(Method.java:568)
  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(ContextClassLoaderDis

136
patch.java:33)
  at
org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(
ProxyDispatchAdapter.java:94)
  at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
  at
org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
  at
org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(T
estWorker.java:129)
  at
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
  at
org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
  at
org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecution
Worker.java:56)
  at
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(Syste
mApplicationClassLoaderWorker.java:113)
  at
org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(Syste
mApplicationClassLoaderWorker.java:65)
  at
app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.j
ava: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 <32e6636> (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)

137
  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@12


  java.lang.Thread.State: TIMED_WAITING
  at [email protected]/java.lang.Object.wait(Native Method)
  - waiting on <779dda8c> (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:833)
  at
[email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)

  Locked ownable synchronizers:


  - None

"Notification Thread" - Thread t@13


  java.lang.Thread.State: RUNNABLE

  Locked ownable synchronizers:


  - None

"/127.0.0.1:59612 to /127.0.0.1:45901 workers" - Thread t@15


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <7339a383> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at

138
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(Executo
rPolicy.java:64)
  at
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
  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:833)

  Locked ownable synchronizers:


  - Locked <4470f8a6> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"/127.0.0.1:59612 to /127.0.0.1:45901 workers Thread 2" - Thread t@16


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <560cb6a0> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
org.gradle.internal.remote.internal.hub.queue.EndPointQueue.take(EndPointQueue.java:49
)
  at
org.gradle.internal.remote.internal.hub.MessageHub$ConnectionDispatch.run(MessageHub.j
ava:322)
  at
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(Executo
rPolicy.java:64)
  at
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
  at

139
[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:833)

  Locked ownable synchronizers:


  - Locked <2e55dd0c> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"/127.0.0.1:59612 to /127.0.0.1:45901 workers Thread 3" - Thread t@17


  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 <26636581> (a sun.nio.ch.Util$2)
  - locked <3fb3827b> (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(Socke
tConnection.java:185)
  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:8
8)
  at
org.gradle.internal.remote.internal.hub.InterHubMessageSerializer$MessageReader.read(I
nterHubMessageSerializer.java:64)
  at
org.gradle.internal.remote.internal.hub.InterHubMessageSerializer$MessageReader.read(I
nterHubMessageSerializer.java:52)
  at
org.gradle.internal.remote.internal.inet.SocketConnection.receive(SocketConnection.jav
a:81)
  at
org.gradle.internal.remote.internal.hub.MessageHub$ConnectionReceive.run(MessageHub.ja
va:270)
  at
org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(Executo
rPolicy.java:64)
  at
org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1136)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:635)

140
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - Locked <3738449f> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"boundedElastic-evictor-1" - Thread t@18


  java.lang.Thread.State: TIMED_WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1281bb5> (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:1672)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:1182)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:899)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va: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:833)

  Locked ownable synchronizers:


  - None

"boundedElastic-1" - Thread t@19


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <32220486> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434

141
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:1170)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:899)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va: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:833)

  Locked ownable synchronizers:


  - None

"boundedElastic-2" - Thread t@20


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <fd0202e> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:1170)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:899)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja

142
va: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:833)

  Locked ownable synchronizers:


  - None

"reactor-http-epoll-1" - Thread t@138


  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:209)
  at app//io.netty.channel.epoll.Native.epollWait(Native.java:202)
  at
app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:
306)
  at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:363)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"reactor-http-epoll-2" - Thread t@139


  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:209)
  at app//io.netty.channel.epoll.Native.epollWait(Native.java:202)
  at
app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:
306)
  at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:363)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

143
  Locked ownable synchronizers:
  - None

"reactor-http-epoll-3" - Thread t@140


  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:209)
  at app//io.netty.channel.epoll.Native.epollWait(Native.java:202)
  at
app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:
306)
  at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:363)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"reactor-http-epoll-4" - Thread t@141


  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:209)
  at app//io.netty.channel.epoll.Native.epollWait(Native.java:202)
  at
app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:
306)
  at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:363)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"reactor-http-epoll-5" - Thread t@142


  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:209)
  at app//io.netty.channel.epoll.Native.epollWait(Native.java:202)
  at

144
app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:
306)
  at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:363)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"reactor-http-epoll-6" - Thread t@143


  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:209)
  at app//io.netty.channel.epoll.Native.epollWait(Native.java:202)
  at
app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:
306)
  at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:363)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"reactor-http-epoll-7" - Thread t@144


  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:209)
  at app//io.netty.channel.epoll.Native.epollWait(Native.java:202)
  at
app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:
306)
  at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:363)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.java:997)
  at app//io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
  at
app//io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java

145
:30)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"reactor-http-epoll-8" - Thread t@145


  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:209)
  at app//io.netty.channel.epoll.Native.epollWait(Native.java:202)
  at
app//io.netty.channel.epoll.EpollEventLoop.epollWaitNoTimerChange(EpollEventLoop.java:
306)
  at app//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:363)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"Keep-Alive-Timer" - Thread t@285


  java.lang.Thread.State: TIMED_WAITING
  at [email protected]/java.lang.Thread.sleep(Native Method)
  at [email protected]/sun.net.www.http.KeepAliveCache.run(KeepAliveCache.java:243)
  at [email protected]/java.lang.Thread.run(Thread.java:833)
  at
[email protected]/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)

  Locked ownable synchronizers:


  - None

"BufferPoolPruner-1-thread-1" - Thread t@313


  java.lang.Thread.State: TIMED_WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <2cd3cbf5> (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:1672)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak

146
e(ScheduledThreadPoolExecutor.java:1182)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:899)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va: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:833)

  Locked ownable synchronizers:


  - None

"nioEventLoopGroup-2-1" - Thread t@321


  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 <6de78869> (a io.netty.channel.nio.SelectedSelectionKeySet)
  - locked <4fc3a767> (a sun.nio.ch.EPollSelectorImpl)
  at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
  at
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeyS
etSelector.java:68)
  at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:879)
  at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:526)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"nioEventLoopGroup-2-2" - Thread t@322


  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 <411c3fe1> (a io.netty.channel.nio.SelectedSelectionKeySet)

147
  - locked <7322c854> (a sun.nio.ch.EPollSelectorImpl)
  at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
  at
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeyS
etSelector.java:68)
  at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:879)
  at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:526)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"nioEventLoopGroup-4-1" - Thread t@345


  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 <2257a299> (a io.netty.channel.nio.SelectedSelectionKeySet)
  - locked <707dd12b> (a sun.nio.ch.EPollSelectorImpl)
  at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
  at
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeyS
etSelector.java:68)
  at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:879)
  at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:526)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"nioEventLoopGroup-4-2" - Thread t@346


  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)

148
  - locked <50be0bf2> (a io.netty.channel.nio.SelectedSelectionKeySet)
  - locked <35bb09d9> (a sun.nio.ch.EPollSelectorImpl)
  at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
  at
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeyS
etSelector.java:68)
  at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:879)
  at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:526)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"nioEventLoopGroup-6-1" - Thread t@371


  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 <2ae7269d> (a io.netty.channel.nio.SelectedSelectionKeySet)
  - locked <348d5e63> (a sun.nio.ch.EPollSelectorImpl)
  at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
  at
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeyS
etSelector.java:68)
  at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:879)
  at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:526)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"nioEventLoopGroup-6-2" - Thread t@374


  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)

149
  at [email protected]/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
  - locked <14cc329b> (a io.netty.channel.nio.SelectedSelectionKeySet)
  - locked <79d4041a> (a sun.nio.ch.EPollSelectorImpl)
  at [email protected]/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
  at
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeyS
etSelector.java:68)
  at app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:879)
  at app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:526)
  at
app//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecuto
r.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:833)

  Locked ownable synchronizers:


  - None

"HikariPool-1 housekeeper" - Thread t@462


  java.lang.Thread.State: TIMED_WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <6a140673> (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:1672)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:1182)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:899)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va: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:833)

  Locked ownable synchronizers:


  - None

150
"server" - Thread t@473
  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <34b42314> (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(Abstrac
tQueuedSynchronizer.java:715)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedIn
terruptibly(AbstractQueuedSynchronizer.java:1047)
  at
[email protected]/java.util.concurrent.CountDownLatch.await(CountDownLatch.java:230)
  at
app//reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscri
ber.java:87)
  at app//reactor.core.publisher.Mono.block(Mono.java:1710)
  at
app//org.springframework.boot.web.embedded.netty.NettyWebServer$1.run(NettyWebServer.j
ava:180)

  Locked ownable synchronizers:


  - None

"Catalina-utility-1" - Thread t@475


  java.lang.Thread.State: TIMED_WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <419997f3> (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:1672)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:1182)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:899)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:1062)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1122)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor

151
.java:635)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"container-0" - Thread t@476


  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:562)
  at
app//org.springframework.boot.web.embedded.tomcat.TomcatWebServer$1.run(TomcatWebServe
r.java:197)

  Locked ownable synchronizers:


  - None

"Catalina-utility-2" - Thread t@477


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <419997f3> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:1177)
  at
[email protected]/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:899)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:1062)
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1122)

152
  at
[email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:635)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"http-nio-auto-14-exec-1" - Thread t@478


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1834bf0e> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a: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.ja
va:1176)
  at
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
ava:659)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

153
"http-nio-auto-14-exec-2" - Thread t@479
  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1834bf0e> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a: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.ja
va:1176)
  at
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
ava:659)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"http-nio-auto-14-exec-3" - Thread t@480


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1834bf0e> (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.b

154
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a: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.ja
va:1176)
  at
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
ava:659)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"http-nio-auto-14-exec-4" - Thread t@481


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1834bf0e> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)

155
  at
[email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a: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.ja
va:1176)
  at
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
ava:659)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"http-nio-auto-14-exec-5" - Thread t@482


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1834bf0e> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a: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.ja

156
va:1176)
  at
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
ava:659)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"http-nio-auto-14-exec-6" - Thread t@483


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1834bf0e> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a: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.ja
va:1176)
  at
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
ava:659)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:

157
  - None

"http-nio-auto-14-exec-7" - Thread t@484


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1834bf0e> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a: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.ja
va:1176)
  at
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
ava:659)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"http-nio-auto-14-exec-8" - Thread t@485


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1834bf0e> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
  at
[email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
  at

158
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a: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.ja
va:1176)
  at
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
ava:659)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"http-nio-auto-14-exec-9" - Thread t@486


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1834bf0e> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject

159
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a: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.ja
va:1176)
  at
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
ava:659)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"http-nio-auto-14-exec-10" - Thread t@487


  java.lang.Thread.State: WAITING
  at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
  - parking to wait for <1834bf0e> (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.b
lock(AbstractQueuedSynchronizer.java:506)
  at
[email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:34
63)
  at
[email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434
)
  at
[email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1623)
  at
[email protected]/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a: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

160
app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.ja
va:1176)
  at
app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j
ava:659)
  at
app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61
)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"http-nio-auto-14-Poller" - Thread t@488


  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 <525905e5> (a sun.nio.ch.Util$2)
  - locked <47602039> (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:751)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

"http-nio-auto-14-Acceptor" - Thread t@489


  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.jav
a:391)
  at
app//org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:520)
  at
app//org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:79)
  at app//org.apache.tomcat.util.net.Acceptor.run(Acceptor.java:128)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - Locked <4acb1129> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"pool-14-thread-1" - Thread t@494


  java.lang.Thread.State: RUNNABLE
  at [email protected]/jdk.internal.misc.VM.getNanoTimeAdjustment(Native Method)
  at [email protected]/java.time.Clock.currentInstant(Clock.java:498)

161
  at [email protected]/java.time.Instant.now(Instant.java:275)
  at
app//org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.Schedul
edTasksEndpointDocumentationTests$TestConfiguration$CustomTrigger.nextExecution(Schedu
ledTasksEndpointDocumentationTests.java:122)
  at
app//org.springframework.scheduling.concurrent.ReschedulingRunnable.schedule(Reschedul
ingRunnable.java:78)
  - locked <77ba1bb1> (a java.lang.Object)
  at
app//org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRu
nnable.java:102)
  - locked <77ba1bb1> (a java.lang.Object)
  at
[email protected]/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:53
9)
  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:833)

  Locked ownable synchronizers:


  - Locked <5927f2b1> (a java.util.concurrent.ThreadPoolExecutor$Worker)

"Thread-58" - Thread t@497


  java.lang.Thread.State: TIMED_WAITING
  at [email protected]/java.lang.Thread.sleep(Native Method)
  at
app//org.springframework.boot.actuate.context.ShutdownEndpoint.performShutdown(Shutdow
nEndpoint.java:57)
  at
app//org.springframework.boot.actuate.context.ShutdownEndpoint$$Lambda$3329/0x00000008
01dca868.run(Unknown Source)
  at [email protected]/java.lang.Thread.run(Thread.java:833)

  Locked ownable synchronizers:


  - None

162

You might also like