{"id":2093,"name":"org.jsoup:jsoup","ecosystem":"maven","repository_url":"https://github.com/jhy/jsoup","issues_count":1320,"created_at":"2025-06-06T15:01:57.072Z","updated_at":"2025-06-06T15:01:57.072Z","purl":"pkg:maven/org.jsoup:jsoup","metadata":{"id":4941103,"name":"org.jsoup:jsoup","ecosystem":"maven","description":"jsoup is a Java library that simplifies working with real-world HTML and XML. It offers an easy-to-use API for URL fetching, data parsing, extraction, and manipulation using DOM API methods, CSS, and xpath selectors. jsoup implements the WHATWG HTML5 specification, and parses HTML to the same DOM as modern browsers.","homepage":"https://jsoup.org/","licenses":"The MIT License","normalized_licenses":["MIT"],"repository_url":"https://github.com/jhy/jsoup","keywords_array":[],"namespace":"org.jsoup","versions_count":50,"first_release_published_at":"2010-02-05T13:51:55.000Z","latest_release_published_at":"2025-04-29T05:52:48.000Z","latest_release_number":"1.20.1","last_synced_at":"2025-06-06T15:30:40.455Z","created_at":"2022-07-27T04:25:41.617Z","updated_at":"2025-06-06T15:30:40.456Z","registry_url":"https://central.sonatype.com/artifact/org.jsoup/jsoup/","install_command":null,"documentation_url":"https://appdoc.app/artifact/org.jsoup/jsoup/","metadata":{},"repo_metadata":{"uuid":"442430","full_name":"jhy/jsoup","owner":"jhy","description":"jsoup: the Java HTML parser, built for HTML editing, cleaning, scraping, and XSS safety.","archived":false,"fork":false,"pushed_at":"2023-09-18T23:14:22.000Z","size":4971,"stargazers_count":10326,"open_issues_count":130,"forks_count":2151,"subscribers_count":396,"default_branch":"master","last_synced_at":"2023-09-25T14:55:58.638Z","etag":null,"topics":["css","css-selectors","dom","html","java","java-html-parser","jsoup","parser","xml","xpath"],"latest_commit_sha":null,"homepage":"https://jsoup.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jhy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null}},"created_at":"2009-12-19T01:29:58.000Z","updated_at":"2023-09-28T06:42:16.422Z","dependencies_parsed_at":"2023-07-05T21:32:48.796Z","dependency_job_id":null,"html_url":"https://github.com/jhy/jsoup","commit_stats":{"total_commits":1700,"total_committers":125,"mean_commits":13.6,"dds":"0.18705882352941172","last_synced_commit":"d9544a49ec6859d145b8392cc9fb4a3c86960b42"},"previous_names":[],"tags_count":49,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jhy","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":173339308,"owners_count":9958715,"icon_url":"https://github.com/github.png","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"jhy","name":"Jonathan Hedley","uuid":"76934","kind":"user","description":"Hacker, author of jsoup, principal solution architect in computer vision at AWS. Opinions are my own.","email":"","website":"https://jhy.io/","location":"NSW, Australia","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/76934?u=99dc2877fa4643e6fba8b5c2f17c81fdb1e89b19\u0026v=4","repositories_count":1,"last_synced_at":"2023-03-10T22:10:20.700Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/jhy","created_at":"2022-11-02T19:48:55.816Z","updated_at":"2023-03-10T22:10:20.708Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jhy","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jhy/repositories"},"tags":[{"name":"jsoup-1.16.1","sha":"062ebdb3b77f170a3e4d03c61d6b7290c83ffb44","kind":"tag","published_at":"2023-04-29T04:17:47.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.16.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.16.1/manifests"},{"name":"jsoup-1.15.4","sha":"becdd2e118639ee603be0c12eda216cb0e01fe29","kind":"tag","published_at":"2023-02-18T00:31:55.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.15.4","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.15.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.15.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.15.4/manifests"},{"name":"jsoup-1.15.3","sha":"c5964172763e1495786ad584c368ac3346d0ca8c","kind":"tag","published_at":"2022-08-24T00:10:45.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.15.3","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.15.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.15.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.15.3/manifests"},{"name":"jsoup-1.15.2","sha":"d9566b5340487cd319660b553af11b60f5c8060a","kind":"tag","published_at":"2022-07-04T06:40:35.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.15.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.15.2/manifests"},{"name":"jsoup-1.15.1","sha":"3ffbeebc0959e2ada7ed1b4595338d2f09597e85","kind":"tag","published_at":"2022-05-15T05:34:03.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.15.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.15.1/manifests"},{"name":"jsoup-1.14.3","sha":"00061629b5b91f09afbfea7eae3710bb3253c5b9","kind":"tag","published_at":"2021-09-30T07:08:28.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.14.3","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.14.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.14.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.14.3/manifests"},{"name":"jsoup-1.14.2","sha":"19c77325c9abb6f8b8b65034470e15faad6ce822","kind":"commit","published_at":"2021-08-15T05:39:15.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.14.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.14.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.14.2/manifests"},{"name":"jsoup-1.14.1","sha":"b24f2e463231269e9bc1e9118a70b9fd654f1a2f","kind":"commit","published_at":"2021-07-10T02:14:03.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.14.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.14.1/manifests"},{"name":"jsoup-1.13.1","sha":"dcf3c8ba5a0963260999f463ee80b6a787928bb9","kind":"tag","published_at":"2020-03-01T01:21:19.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.13.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.13.1/manifests"},{"name":"jsoup-1.12.2","sha":"6ef89226deae4683ccc0f2367db048278e94d5b0","kind":"commit","published_at":"2020-02-09T02:09:41.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.12.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.12.2/manifests"},{"name":"1.12.2","sha":"6ef89226deae4683ccc0f2367db048278e94d5b0","kind":"commit","published_at":"2020-02-09T02:09:41.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/1.12.2","html_url":"https://github.com/jhy/jsoup/releases/tag/1.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/1.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/1.12.2/manifests"},{"name":"jsoup-1.12.1","sha":"3f0256953a2938875dba33e58004037989985f7d","kind":"tag","published_at":"2019-05-12T23:53:51.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.12.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.12.1/manifests"},{"name":"jsoup-1.11.3","sha":"2b1ea0633ff5d4cba5db0e202a4ce0fbdccc19db","kind":"tag","published_at":"2018-04-15T22:20:03.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.11.3","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.11.3/manifests"},{"name":"jsoup-1.11.2","sha":"429f2c7db2b60683be76d4a82fb28a561f941909","kind":"tag","published_at":"2017-11-20T04:42:19.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.11.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.11.2/manifests"},{"name":"jsoup-1.11.1","sha":"5dc4937611725462003f5cd87f41e56ee7829b65","kind":"tag","published_at":"2017-11-04T19:09:05.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.11.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.11.1/manifests"},{"name":"jsoup-1.10.3","sha":"2a5f524d57545becc11c92a6a50b80283d22e594","kind":"tag","published_at":"2017-06-11T19:13:37.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.10.3","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.10.3/manifests"},{"name":"jsoup-1.10.2","sha":"d1ade46486a125742a05fa8e245ed5d0f3d572ad","kind":"tag","published_at":"2017-01-02T19:09:53.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.10.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.10.2/manifests"},{"name":"jsoup-1.10.1","sha":"7f8010df0ca535e9edf02985f480fded267df47b","kind":"tag","published_at":"2016-10-23T18:19:26.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.10.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.10.1/manifests"},{"name":"jsoup-1.9.2","sha":"5dc4c487d42705f60ff6e5b95d03c71a3326d6cd","kind":"tag","published_at":"2016-05-18T02:43:57.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.9.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.9.2/manifests"},{"name":"jsoup-1.9.1a","sha":"2a2e8421c2aca89a21c786aa85af215dcbde02d7","kind":"tag","published_at":"2016-04-17T00:35:48.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.9.1a","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.9.1a","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.9.1a","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.9.1a/manifests"},{"name":"jsoup-1.9.1","sha":"d2d06134df6883e8cad29e23beec5db9f6cee4b7","kind":"tag","published_at":"2016-04-16T23:38:55.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.9.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.9.1/manifests"},{"name":"jsoup-1.8.3a","sha":"f51e79822e60653ef1d47e6a28843421b5a677f0","kind":"tag","published_at":"2015-08-02T20:18:20.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.8.3a","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.8.3a","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.8.3a","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.8.3a/manifests"},{"name":"jsoup-1.8.3","sha":"99ef54acdea15d339f3616d1a5aa70dca29e65bb","kind":"tag","published_at":"2015-08-02T19:45:31.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.8.3","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.8.3/manifests"},{"name":"jsoup-1.8.2","sha":"7210a179b036ae224d9e1d4dc5a8a6b4a3b84025","kind":"tag","published_at":"2015-04-14T04:32:26.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.8.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.8.2/manifests"},{"name":"jsoup-1.8.1.a","sha":"14678515d7e479bbf18466a38c04c65c43a0ecae","kind":"tag","published_at":"2014-09-28T04:06:53.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.8.1.a","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.8.1.a","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.8.1.a","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.8.1.a/manifests"},{"name":"jsoup-1.7.3","sha":"d599990c331989230a6e1d0e4fea9e577022cc9c","kind":"tag","published_at":"2013-11-11T05:04:15.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.7.3","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.7.3/manifests"},{"name":"jsoup-1.7.2","sha":"b42fe0d5dfd882c5f544704b3dbe05c4301fe671","kind":"tag","published_at":"2013-01-28T00:29:27.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.7.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.7.2/manifests"},{"name":"jsoup-1.7.1","sha":"2cfb80261e6f61fa5b31627cecf832efc216a787","kind":"tag","published_at":"2012-09-24T02:12:45.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.7.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.7.1/manifests"},{"name":"jsoup-1.6.3","sha":"13d0bee275b1e61ee68dea02530b6e7b0ec9ac3a","kind":"tag","published_at":"2012-05-27T23:50:28.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.6.3","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.6.3/manifests"},{"name":"jsoup-1.6.2","sha":"bfd79c9819df429e03c7646a1faf05ecf408f4b9","kind":"tag","published_at":"2012-03-28T04:05:28.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.6.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.6.2/manifests"},{"name":"jsoup-1.6.1","sha":"f09852ca8a67031082af6489c77c4c7791c72714","kind":"tag","published_at":"2011-07-02T07:05:54.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.6.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.6.1/manifests"},{"name":"jsoup-1.6.0","sha":"ae39076af8cdc4b99835c1f7f86b9331436070c3","kind":"tag","published_at":"2011-06-13T06:48:01.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.6.0","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.6.0/manifests"},{"name":"jsoup-1.5.2","sha":"7c5a3bf33d92059bd95cc983568bedc86a3f1454","kind":"tag","published_at":"2011-02-27T04:16:25.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.5.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.5.2/manifests"},{"name":"jsoup-1.5.1","sha":"da25d1d1329d44da59a552d2de7da0727d738f80","kind":"tag","published_at":"2011-02-19T07:05:10.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.5.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.5.1/manifests"},{"name":"jsoup-1.4.1","sha":"b2229d63f6ff2af8f67b976f90a525f25361f187","kind":"tag","published_at":"2010-11-23T10:10:05.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.4.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.4.1/manifests"},{"name":"jsoup-1.3.3","sha":"88c822e8e4443a3bb42600f861011266a0b4a569","kind":"tag","published_at":"2010-09-19T08:01:52.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.3.3","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.3.3/manifests"},{"name":"jsoup-1.3.2","sha":"eb9f5c9102bdb1571673ff20707d073eb844e006","kind":"tag","published_at":"2010-08-30T06:28:36.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.3.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.3.2/manifests"},{"name":"jsoup-1.3.1","sha":"617a1e5ab88a80fa95718ada7d3782517e41aa16","kind":"tag","published_at":"2010-08-23T09:03:36.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.3.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.3.1/manifests"},{"name":"jsoup-1.2.3","sha":"d27d92e8c149ac21bbd5e7750b91906d03eaae06","kind":"tag","published_at":"2010-08-04T08:27:57.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.2.3","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.2.3/manifests"},{"name":"jsoup-1.2.2","sha":"145d783a19d6d4b33670a5325cc6edf282999d66","kind":"tag","published_at":"2010-07-11T04:15:16.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.2.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.2.2/manifests"},{"name":"jsoup-1.2.1","sha":"9883b56ad296ea7215fa97a13e173c72c6f6dd02","kind":"tag","published_at":"2010-06-21T08:41:16.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.2.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.2.1/manifests"},{"name":"jsoup-1.1.1","sha":"739436d949db10708d4de829e5097ba86a80bbd8","kind":"tag","published_at":"2010-06-08T08:59:34.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-1.1.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-1.1.1/manifests"},{"name":"jsoup-0.3.1","sha":"cd59eed6a8d40e8af950f0f26f0aef9bebe62754","kind":"tag","published_at":"2010-02-20T04:43:14.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-0.3.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.3.1/manifests"},{"name":"jsoup-0.2.2","sha":"c4f5acf7667795b7e5172e020a6fa51c2b820145","kind":"tag","published_at":"2010-02-07T07:08:16.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-0.2.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-0.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.2.2/manifests"},{"name":"jsoup-0.2.1b","sha":"69f7fdb661b1a332d55e97bda13d33af2e57956a","kind":"tag","published_at":"2010-02-05T13:49:30.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-0.2.1b","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-0.2.1b","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.2.1b","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.2.1b/manifests"},{"name":"jsoup-0.2.1a","sha":"7b0469e34effda1ea5e29650a7d882c80e6fbac4","kind":"tag","published_at":"2010-02-05T13:40:44.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-0.2.1a","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-0.2.1a","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.2.1a","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.2.1a/manifests"},{"name":"jsoup-0.2.1","sha":"0747d34c58d14dfa02f358c2b84fcb4af478c3ad","kind":"tag","published_at":"2010-02-05T13:30:33.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-0.2.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.2.1/manifests"},{"name":"jsoup-0.1.2","sha":"81a55ae035e13cfc25c1e0858d1bd41f5fac55e6","kind":"tag","published_at":"2010-02-02T00:19:13.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-0.1.2","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-0.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.1.2/manifests"},{"name":"jsoup-0.1.1","sha":"38c246aae36113c7b35e4dec1ed4cf36c3508cdb","kind":"tag","published_at":"2010-01-31T05:25:05.000Z","download_url":"https://codeload.github.com/jhy/jsoup/tar.gz/jsoup-0.1.1","html_url":"https://github.com/jhy/jsoup/releases/tag/jsoup-0.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhy%2Fjsoup/tags/jsoup-0.1.1/manifests"}]},"repo_metadata_updated_at":"2023-11-27T04:41:34.463Z","dependent_packages_count":2627,"downloads":null,"downloads_period":null,"dependent_repos_count":65058,"rankings":{"downloads":null,"dependent_repos_count":0.017231706339664983,"dependent_packages_count":0.025847559509497475,"stargazers_count":2.8380219604071493,"forks_count":3.3892361945980602,"docker_downloads_count":0.03586599342790735,"average":1.261240682856456},"purl":"pkg:maven/org.jsoup/jsoup","advisories":[{"uuid":"GSA_kwCzR0hTQS1ncDdmLXJ3Y3gtOTM2Oc4AAulI","url":"https://github.com/advisories/GHSA-gp7f-rwcx-9369","title":"jsoup may not sanitize code injection XSS attempts if SafeList.preserveRelativeLinks is enabled","description":"jsoup may incorrectly sanitize HTML including `javascript:` URL expressions, which could allow cross-site scripting (XSS) attacks when a reader subsequently clicks that link. If the non-default `SafeList.preserveRelativeLinks` option is enabled, HTML including `javascript:` URLs that have been crafted with control characters will not be sanitized. If the site that this HTML is published on does not set a Content Security Policy, an XSS attack is then possible.\n\n### Impact\nSites that accept input HTML from users and use jsoup to sanitize that HTML, may be vulnerable to cross-site scripting (XSS) attacks, if they have enabled `SafeList.preserveRelativeLinks` and do not set an appropriate Content Security Policy.\n\n### Patches\nThis issue is patched in jsoup 1.15.3.\n\nUsers should upgrade to this version. Additionally, as the unsanitized input may have been persisted, old content should be cleaned again using the updated version.\n\n### Workarounds\nTo remediate this issue without immediately upgrading:\n\n- disable `SafeList.preserveRelativeLinks`, which will rewrite input URLs as absolute URLs\n- ensure an appropriate [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) is defined. (This should be used regardless of upgrading, as a defence-in-depth best practice.)\n\n### Background and root cause\njsoup includes a [Cleaner](https://jsoup.org/apidocs/org/jsoup/safety/Cleaner.html) component, which is designed to [sanitize input HTML](https://jsoup.org/cookbook/cleaning-html/safelist-sanitizer) against configurable safe-lists of acceptable tags, attributes, and attribute values.\n\nThis includes removing potentially malicious attributes such as `\u003ca href=\"javascript:...\"\u003e`, which may enable XSS attacks. It does this by validating URL attributes against allowed URL protocols (e.g. `http`, `https`).\n\nHowever, an attacker may be able to bypass this check by embedding control characters into the href attribute value. This causes the Java URL class, which is used to resolve relative URLs to absolute URLs before checking the URL's protocol, to treat the URL as a relative URL. It is then resolved into an absolute URL with the configured base URI.\n\nFor example, `java\\tscript:...` would resolve to `https://example.com/java\\tscript:...`.\n\nBy default, when using a safe-list that allows `a` tags, jsoup will rewrite any relative URLs (e.g. `/foo/`) to an absolute URL (e.g. `https://example.com/foo/`). Therefore, this attack attempt would be successfully mitigated. However, if the option [SafeList.preserveRelativeLinks](https://jsoup.org/apidocs/org/jsoup/safety/Safelist.html#preserveRelativeLinks(boolean)) is enabled (which does not rewrite relative links to absolute), the input is left as-is.\n\nWhile Java will treat a path like `java\\tscript:` as a relative path, as it does not match the allowed characters of a URL spec, browsers may normalize out the control characters, and subsequently evaluate it as a `javascript:` spec inline expression. That disparity then leads to an XSS opportunity.\n\nSites defining a Content Security Policy that does not allow javascript expressions in link URLs will not be impacted, as the policy will prevent the script's execution.\n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [jsoup](https://github.com/jhy/jsoup)\n* Email the author of jsoup at [jonathan@hedley.net](mailto:jonathan@hedley.net)\n\n### Credits\nThanks to Jens Häderer, who reported this issue, and contributed to its resolution.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-09-01T22:14:57.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://github.com/jhy/jsoup/security/advisories/GHSA-gp7f-rwcx-9369","https://nvd.nist.gov/vuln/detail/CVE-2022-36033","https://github.com/jhy/jsoup/releases/tag/jsoup-1.15.3","https://jsoup.org/news/release-1.15.3","https://security.netapp.com/advisory/ntap-20221104-0006/","https://github.com/advisories/GHSA-gp7f-rwcx-9369"],"source_kind":"github","identifiers":["GHSA-gp7f-rwcx-9369","CVE-2022-36033"],"repository_url":"https://github.com/jhy/jsoup","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"1.15.3","vulnerable_version_range":"\u003c 1.15.3"}],"ecosystem":"maven","package_name":"org.jsoup:jsoup"}],"created_at":"2022-12-21T16:12:00.191Z","updated_at":"2023-02-02T05:04:14.000Z","epss_percentage":0.00819,"epss_percentile":0.7304},{"uuid":"MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLW03Mm0tbWhxMi05cDZj","url":"https://github.com/advisories/GHSA-m72m-mhq2-9p6c","title":"Uncaught Exception in jsoup","description":"### Impact\n_What kind of vulnerability is it? Who is impacted?_\nThose using jsoup to parse untrusted HTML or XML may be vulnerable to DOS attacks. If the parser is run on user supplied input, an attacker may supply content that causes the parser to get stuck (loop indefinitely until cancelled), to complete more slowly than usual, or to throw an unexpected exception. This effect may support a denial of service attack.\n\n### Patches\n_Has the problem been patched? What versions should users upgrade to?_\nUsers should upgrade to jsoup 1.14.2\n\n### Workarounds\n_Is there a way for users to fix or remediate the vulnerability without upgrading?_\nUsers may rate limit input parsing. Users should limit the size of inputs based on system resources. Users should implement thread watchdogs to cap and timeout parse runtimes.\n","origin":"UNSPECIFIED","severity":"HIGH","published_at":"2021-08-23T19:42:38.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://github.com/jhy/jsoup/security/advisories/GHSA-m72m-mhq2-9p6c","https://nvd.nist.gov/vuln/detail/CVE-2021-37714","https://jsoup.org/news/release-1.14.1","https://jsoup.org/news/release-1.14.2","https://lists.apache.org/thread.html/r685c5235235ad0c26e86d0ee987fb802c9675de6081dbf0516464e0b@%3Cnotifications.james.apache.org%3E","https://lists.apache.org/thread.html/r97404676a5cf591988faedb887d64e278f522adcaa823d89ca69defe@%3Cnotifications.james.apache.org%3E","https://lists.apache.org/thread.html/rc3354080fc67fb50b45b3c2d12dc4ca2a3c1c78dad3d3ba012c038aa@%3Cnotifications.james.apache.org%3E","https://lists.apache.org/thread.html/r50e9c9466c592ca9d707a5dea549524d19e3287da08d8392f643960e@%3Cissues.maven.apache.org%3E","https://lists.apache.org/thread.html/r215009dbf7467a9f6506d0c0024cb36cad30071010e62c9352cfaaf0@%3Cissues.maven.apache.org%3E","https://lists.apache.org/thread.html/r377b93d79817ce649e9e68b3456e6f499747ef1643fa987b342e082e@%3Cissues.maven.apache.org%3E","https://lists.apache.org/thread.html/r3d71f18adb78e50f626dde689161ca63d3b7491bd9718fcddfaecba7@%3Cissues.maven.apache.org%3E","https://www.oracle.com/security-alerts/cpujan2022.html","https://security.netapp.com/advisory/ntap-20220210-0022/","https://www.oracle.com/security-alerts/cpuapr2022.html","https://www.oracle.com/security-alerts/cpujul2022.html","https://github.com/advisories/GHSA-m72m-mhq2-9p6c"],"source_kind":"github","identifiers":["GHSA-m72m-mhq2-9p6c","CVE-2021-37714"],"repository_url":"https://github.com/jhy/jsoup","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"1.14.2","vulnerable_version_range":"\u003c 1.14.2"}],"ecosystem":"maven","package_name":"org.jsoup:jsoup"}],"created_at":"2022-12-21T16:12:52.110Z","updated_at":"2025-05-16T01:15:19.249Z","epss_percentage":0.00367,"epss_percentile":0.57743},{"uuid":"GSA_kwCzR0hTQS00OHJoLXFnanIteGZqNs4AAQtS","url":"https://github.com/advisories/GHSA-48rh-qgjr-xfj6","title":"Improper Neutralization of Input During Web Page Generation in Jsoup","description":"Cross-site scripting (XSS) vulnerability in jsoup before 1.8.3.","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2022-05-13T01:28:44.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":0.0,"cvss_vector":null,"references":["https://nvd.nist.gov/vuln/detail/CVE-2015-6748","https://github.com/jhy/jsoup/pull/582","https://bugzilla.redhat.com/show_bug.cgi?id=1258310","https://hibernate.atlassian.net/browse/HV-1012","https://issues.jboss.org/browse/WFLY-5223?_sscc=t","https://lists.debian.org/debian-lts-announce/2020/01/msg00021.html","http://www.openwall.com/lists/oss-security/2015/08/28/5","https://github.com/advisories/GHSA-48rh-qgjr-xfj6"],"source_kind":"github","identifiers":["GHSA-48rh-qgjr-xfj6","CVE-2015-6748"],"repository_url":"https://github.com/jhy/jsoup","blast_radius":0.0,"packages":[{"versions":[{"first_patched_version":"1.8.3","vulnerable_version_range":"\u003e= 1.6.0, \u003c= 1.8.2"}],"ecosystem":"maven","package_name":"org.jsoup:jsoup"}],"created_at":"2022-12-21T16:12:13.090Z","updated_at":"2024-05-15T02:38:35.000Z","epss_percentage":0.02044,"epss_percentile":0.82771}],"docker_usage_url":"https://docker.ecosyste.ms/usage/maven/org.jsoup:jsoup","docker_dependents_count":7445,"docker_downloads_count":2908408591,"usage_url":"https://repos.ecosyste.ms/usage/maven/org.jsoup:jsoup","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/maven/org.jsoup:jsoup/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/repo1.maven.org/packages/org.jsoup:jsoup/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/repo1.maven.org/packages/org.jsoup:jsoup/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/repo1.maven.org/packages/org.jsoup:jsoup/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/repo1.maven.org/packages/org.jsoup:jsoup/related_packages","maintainers":[],"registry":{"name":"repo1.maven.org","url":"https://repo.maven.apache.org/maven2","ecosystem":"maven","default":true,"packages_count":517649,"maintainers_count":0,"namespaces_count":68787,"keywords_count":32037,"github":"maven-central","metadata":{"funded_packages_count":24975},"icon_url":"https://github.com/maven-central.png","created_at":"2022-07-21T16:40:13.074Z","updated_at":"2025-06-06T05:59:03.422Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/repo1.maven.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/repo1.maven.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/repo1.maven.org/namespaces"}},"unique_repositories_count":611,"unique_repositories_count_past_30_days":11,"recent_issues":[{"uuid":"4626833316","node_id":"PR_kwDOCQPq_s7kn6kb","number":1242,"state":"closed","title":"build(deps): bump org.jsoup:jsoup from 1.22.1 to 1.22.2","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-10T00:49:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-10T00:43:10.000Z","updated_at":"2026-06-10T00:49:35.000Z","time_to_close":384,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"}],"path":null,"ecosystem":"maven"},"body":"Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.22.1 to 1.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jsoup:jsoup\u0026package-manager=maven\u0026previous-version=1.22.1\u0026new-version=1.22.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/IsyFact/isyfact-standards/pull/1242","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/IsyFact%2Fisyfact-standards/issues/1242","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1242/packages"},{"uuid":"4610340303","node_id":"PR_kwDODyN6Yc7jxTxZ","number":3317,"state":"open","title":"Bump the bpm-minor-patch group across 1 directory with 29 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-08T05:49:46.000Z","updated_at":"2026-06-08T05:50:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bpm-minor-patch","update_count":29,"packages":[{"name":"org.camunda.bpm:camunda-bom","old_version":"7.21.0","new_version":"7.24.0"},{"name":"org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp","old_version":"7.21.0","new_version":"7.24.0"},{"name":"org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest","old_version":"7.21.0","new_version":"7.24.0"},{"name":"org.camunda.bpm:camunda-engine-rest-core","old_version":"7.21.0","new_version":"7.24.0"},{"name":"org.camunda.bpm.extension:camunda-platform-7-keycloak","old_version":"7.21.5","new_version":"7.24.0","repository_url":"https://github.com/camunda/camunda-platform-7-keycloak"},{"name":"org.slf4j:slf4j-api","old_version":"2.0.6","new_version":"2.0.18"},{"name":"org.postgresql:postgresql","old_version":"42.7.2","new_version":"42.7.11","repository_url":"https://github.com/pgjdbc/pgjdbc"},{"name":"javax.xml.bind:jaxb-api","old_version":"2.2.3","new_version":"2.3.1","repository_url":"https://github.com/javaee/jaxb-spec"},{"name":"org.assertj:assertj-core","old_version":"3.21.0","new_version":"3.27.7","repository_url":"https://github.com/assertj/assertj"},{"name":"org.codehaus.groovy:groovy-all","old_version":"3.0.21","new_version":"3.0.25","repository_url":"https://github.com/apache/groovy"},{"name":"org.jsoup:jsoup","old_version":"1.15.3","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"com.fasterxml.jackson.core:jackson-databind","old_version":"2.15.0","new_version":"2.22.0","repository_url":"https://github.com/FasterXML/jackson"},{"name":"com.fasterxml.jackson.core:jackson-core","old_version":"2.15.0","new_version":"2.22.0","repository_url":"https://github.com/FasterXML/jackson-core"},{"name":"com.fasterxml.jackson.dataformat:jackson-dataformat-xml","old_version":"2.15.0","new_version":"2.22.0","repository_url":"https://github.com/FasterXML/jackson-dataformat-xml"},{"name":"com.fasterxml.jackson.core:jackson-annotations","old_version":"2.15.0","new_version":"2.22.0"},{"name":"org.apache.commons:commons-collections4","old_version":"4.4","new_version":"4.5.0"},{"name":"org.projectlombok:lombok","old_version":"1.18.20","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"commons-io:commons-io","old_version":"2.16.1","new_version":"2.22.0"},{"name":"org.testng:testng","old_version":"7.7.1","new_version":"7.12.0","repository_url":"https://github.com/testng-team/testng"},{"name":"io.netty:netty-codec-http2","old_version":"4.2.4.Final","new_version":"4.2.15.Final","repository_url":"https://github.com/netty/netty"},{"name":"io.netty:netty-codec-http","old_version":"4.1.125.Final","new_version":"4.2.15.Final","repository_url":"https://github.com/netty/netty"},{"name":"org.apache.commons:commons-lang3","old_version":"3.18.0","new_version":"3.20.0"},{"name":"org.bouncycastle:bcprov-jdk18on","old_version":"1.78","new_version":"1.84","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.bouncycastle:bcpkix-jdk18on","old_version":"1.79","new_version":"1.84","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.yaml:snakeyaml","old_version":"2.2","new_version":"2.6"},{"name":"org.apache.maven.plugins:maven-surefire-plugin","old_version":"3.0.0-M7","new_version":"3.6.0-M1","repository_url":"https://github.com/apache/maven-surefire"},{"name":"org.jacoco:jacoco-maven-plugin","old_version":"0.8.8","new_version":"0.8.15","repository_url":"https://github.com/jacoco/jacoco"},{"name":"org.codehaus.mojo:exec-maven-plugin","old_version":"3.0.0","new_version":"3.6.3","repository_url":"https://github.com/mojohaus/exec-maven-plugin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the bpm-minor-patch group with 28 updates in the /forms-flow-bpm directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| org.camunda.bpm:camunda-bom | `7.21.0` | `7.24.0` |\n| org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp | `7.21.0` | `7.24.0` |\n| org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest | `7.21.0` | `7.24.0` |\n| org.camunda.bpm:camunda-engine-rest-core | `7.21.0` | `7.24.0` |\n| [org.camunda.bpm.extension:camunda-platform-7-keycloak](https://github.com/camunda/camunda-platform-7-keycloak) | `7.21.5` | `7.24.0` |\n| org.slf4j:slf4j-api | `2.0.6` | `2.0.18` |\n| [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) | `42.7.2` | `42.7.11` |\n| [javax.xml.bind:jaxb-api](https://github.com/javaee/jaxb-spec) | `2.2.3` | `2.3.1` |\n| [org.assertj:assertj-core](https://github.com/assertj/assertj) | `3.21.0` | `3.27.7` |\n| [org.codehaus.groovy:groovy-all](https://github.com/apache/groovy) | `3.0.21` | `3.0.25` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.15.3` | `1.22.2` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.15.0` | `2.22.0` |\n| [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) | `2.15.0` | `2.22.0` |\n| [com.fasterxml.jackson.dataformat:jackson-dataformat-xml](https://github.com/FasterXML/jackson-dataformat-xml) | `2.15.0` | `2.22.0` |\n| com.fasterxml.jackson.core:jackson-annotations | `2.15.0` | `2.22.0` |\n| org.apache.commons:commons-collections4 | `4.4` | `4.5.0` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.20` | `1.18.46` |\n| commons-io:commons-io | `2.16.1` | `2.22.0` |\n| [org.testng:testng](https://github.com/testng-team/testng) | `7.7.1` | `7.12.0` |\n| [io.netty:netty-codec-http2](https://github.com/netty/netty) | `4.2.4.Final` | `4.2.15.Final` |\n| [io.netty:netty-codec-http](https://github.com/netty/netty) | `4.1.125.Final` | `4.2.15.Final` |\n| org.apache.commons:commons-lang3 | `3.18.0` | `3.20.0` |\n| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.78` | `1.84` |\n| [org.bouncycastle:bcpkix-jdk18on](https://github.com/bcgit/bc-java) | `1.79` | `1.84` |\n| [org.yaml:snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) | `2.2` | `2.6` |\n| [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) | `3.0.0-M7` | `3.6.0-M1` |\n| [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) | `0.8.8` | `0.8.15` |\n| [org.codehaus.mojo:exec-maven-plugin](https://github.com/mojohaus/exec-maven-plugin) | `3.0.0` | `3.6.3` |\n\n\nUpdates `org.camunda.bpm:camunda-bom` from 7.21.0 to 7.24.0\n\nUpdates `org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp` from 7.21.0 to 7.24.0\n\nUpdates `org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest` from 7.21.0 to 7.24.0\n\nUpdates `org.camunda.bpm:camunda-engine-rest-core` from 7.21.0 to 7.24.0\n\nUpdates `org.camunda.bpm.extension:camunda-platform-7-keycloak` from 7.21.5 to 7.24.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/camunda/camunda-platform-7-keycloak/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp` from 7.21.0 to 7.24.0\n\nUpdates `org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest` from 7.21.0 to 7.24.0\n\nUpdates `org.slf4j:slf4j-api` from 2.0.6 to 2.0.18\n\nUpdates `org.postgresql:postgresql` from 42.7.2 to 42.7.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pgjdbc/pgjdbc/releases\"\u003eorg.postgresql:postgresql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev42.7.11\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Limit SCRAM PBKDF2 iterations accepted from the server.\npgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.\nSee the \u003ca href=\"https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-98qh-xjc8-98pq\"\u003eSecurity Advisory\u003c/a\u003e for more detail.\nThe following \u003ca href=\"https://nvd.nist.gov/vuln/detail/CVE-2026-42198\"\u003eCVE-2026-42198\u003c/a\u003e has been issued.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add sources and javadocs to shaded published lib generation \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4043\"\u003e#4043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate Changelog and website for release of 42.7.11 \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4042\"\u003e#4042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix scram fix location in changelog and update published artifact developer list \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4041\"\u003e#4041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict test with scram_iterations to v16+ and release notes \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4040\"\u003e#4040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): update ubuntu:24.04 docker digest to 84e77de \u003ca href=\"https://github.com/renovate-bot\"\u003e\u003ccode\u003e@​renovate-bot\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4017\"\u003e#4017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: add tests for QueryExecutor#getTransactionState \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4006\"\u003e#4006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/create-github-app-token action to v2.2.2 \u003ca href=\"https://github.com/renovate-bot\"\u003e\u003ccode\u003e@​renovate-bot\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3983\"\u003e#3983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: fix flaky CopyBothResponseTest by using WAL flush LSN \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3979\"\u003e#3979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: fix flaky replication restart tests by waiting for confirmed_flush_lsn \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3975\"\u003e#3975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: fix flaky LogicalReplicationStatusTest by polling pg_stat_replication \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3974\"\u003e#3974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: replace Appveyor with ikalnytskyi/action-setup-postgres \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: move test table creation from \u003ca href=\"https://github.com/BeforeEach\"\u003e\u003ccode\u003e@​BeforeEach\u003c/code\u003e\u003c/a\u003e to \u003ca href=\"https://github.com/BeforeAll\"\u003e\u003ccode\u003e@​BeforeAll\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn jsonb as PGObject fixes Issue \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3926\"\u003e#3926\u003c/a\u003e \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3956\"\u003e#3956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate docker scripts  \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3958\"\u003e#3958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimplement require_auth, this is pretty much how libpq does this.  \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3895\"\u003e#3895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: add SCRAM authentication test setup section to TESTING.md \u003ca href=\"https://github.com/emmaeng700\"\u003e\u003ccode\u003e@​emmaeng700\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd RequireServerVersion annotation for tests \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3939\"\u003e#3939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure extended protocol messages end with Sync message \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3728\"\u003e#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: enable cursor-based fetching in extended protocol when transaction started via SQL command \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: retry with SSL on IOException when sslMode=ALLOW \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3973\"\u003e#3973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: catch SecurityException from setContextClassLoader on ForkJoinPool workers \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use compareTo for LogSequenceNumber comparison \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3961\"\u003e#3961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: release COPY lock on IOException to prevent connection hang (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3957\"\u003e#3957\u003c/a\u003e) \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3960\"\u003e#3960\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: replace \u003ca href=\"https://github.com/exception\"\u003e\u003ccode\u003e@​exception\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/throws\"\u003e\u003ccode\u003e@​throws\u003c/code\u003e\u003c/a\u003e in getBoolean javadoc \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4035\"\u003e#4035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use \u003ccode\u003e@​vlsi/github-actions-random-matrix\u003c/code\u003e npm package \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4008\"\u003e#4008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use tag names for pinning github actions, pin ikalnytskyi/action-setup-postgres \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4007\"\u003e#4007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: bump errorprone to 2.48.0 \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4005\"\u003e#4005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: add \u003ca href=\"https://github.com/DisableLogger\"\u003e\u003ccode\u003e@​DisableLogger\u003c/code\u003e\u003c/a\u003e annotation to suppress expected log warnings in tests \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3971\"\u003e#3971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: suppress deprecations in test code to reduce build verbosity \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3972\"\u003e#3972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: replace log warning in ConnectionFactory.closeStream with Throwable.addSuppressed \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3970\"\u003e#3970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use greedy pairwise coverage for CI matrix generation \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3965\"\u003e#3965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use full version tags in GitHub Actions comments \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3963\"\u003e#3963\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⬆️ Dependencies\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md\"\u003eorg.postgresql:postgresql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[42.7.11] (2026-04-28)\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: Limit SCRAM PBKDF2 iterations accepted from the server.\npgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.\nSee the \u003ca href=\"https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-98qh-xjc8-98pq\"\u003eSecurity Advisory\u003c/a\u003e for more detail.\nThe following \u003ca href=\"https://nvd.nist.gov/vuln/detail/CVE-2026-42198\"\u003eCVE-2026-42198\u003c/a\u003e has been issued.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: implement require_auth connection property, aligning with libpq behavior [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3895\"\u003e#3895\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3895\"\u003epgjdbc/pgjdbc#3895\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace Appveyor CI with ikalnytskyi/action-setup-postgres [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3966\"\u003e#3966\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3966\"\u003epgjdbc/pgjdbc#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: upgrade Gradle to v9 [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3978\"\u003e#3978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3978\"\u003epgjdbc/pgjdbc#3978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure extended protocol messages end with Sync message [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3728\"\u003e#3728\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3728\"\u003epgjdbc/pgjdbc#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: enable cursor-based fetching in extended protocol when transaction started via SQL command [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3996\"\u003e#3996\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3996\"\u003epgjdbc/pgjdbc#3996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: retry with SSL on IOException when sslMode=ALLOW [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3973\"\u003e#3973\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3973\"\u003epgjdbc/pgjdbc#3973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: make sure the driver honours connectTimeout when retrying the connection [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3968\"\u003epgjdbc/pgjdbc#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3968\"\u003epgjdbc/pgjdbc#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: catch SecurityException from setContextClassLoader on ForkJoinPool workers [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3962\"\u003e#3962\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3962\"\u003epgjdbc/pgjdbc#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use compareTo for LogSequenceNumber comparison to handle unsigned values correctly [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3961\"\u003e#3961\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3961\"\u003epgjdbc/pgjdbc#3961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: release COPY lock on IOException to prevent connection hang [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3957\"\u003e#3957\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3957\"\u003epgjdbc/pgjdbc#3957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: return jsonb as PGObject instead of String [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3956\"\u003e#3956\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3956\"\u003epgjdbc/pgjdbc#3956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: align SSL key file permission check with libpq [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3952\"\u003e#3952\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3952\"\u003epgjdbc/pgjdbc#3952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: guard connection closed flag with a reentrant lock to protect against concurrent close [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3905\"\u003e#3905\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3905\"\u003epgjdbc/pgjdbc#3905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[42.7.10] (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: Migrate to Shadow 9 \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3931\"\u003ePR 3931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003estyle: fix empty line before javadoc for checkstyle compliance [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3925\"\u003e#3925\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3925\"\u003epgjdbc/pgjdbc#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003estyle: fix lambda argument indentation for checkstyle compliance [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3922\"\u003e#3922\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3922\"\u003epgjdbc/pgjdbc#3922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: add autosave=always|never|conservative and cleanupSavepoints=true|false to the randomized CI jobs [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3917\"\u003e#3917\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3917\"\u003epgjdbc/pgjdbc#3917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: non-standard strings failing test for version 19 [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3934\"\u003e#3934\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3934\"\u003epgjdbc/pgjdbc#3934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: small issues in ConnectionFactoryImpl [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3929\"\u003e#3929\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3929\"\u003epgjdbc/pgjdbc#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: process pending responses before fastpath to avoid protocol errors \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3913\"\u003ePR # 3913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: use.md, fix typos [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3911\"\u003e#3911\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3911\"\u003epgjdbc/pgjdbc#3911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edoc: datasource.md, fix minor formatting issue [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3912\"\u003e#3912\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3912\"\u003epgjdbc/pgjdbc#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edoc: add the new PGP signing key to the official documentation [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3912\"\u003e#3912\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3813\"\u003epgjdbc/pgjdbc#3813\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverted\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;fix: make all Calendar instances proleptic Gregorian (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3837\"\u003e#3837\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3887\"\u003e#3887\u003c/a\u003e)\u0026quot; [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3932\"\u003e#3932\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3932\"\u003epgjdbc/pgjdbc#3932\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[42.7.9] (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/78e261ff2a7f16a37bdceb2204f67e484387da2f\"\u003e\u003ccode\u003e78e261f\u003c/code\u003e\u003c/a\u003e fix: Add sources and javadocs to shaded published lib generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/1e09fa0496377296c9e2ef3bfd2b409945fba17a\"\u003e\u003ccode\u003e1e09fa0\u003c/code\u003e\u003c/a\u003e update Changelog and website for release of 42.7.11 (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4042\"\u003e#4042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/d479fa5b8c8c915a441ce1f2448f69f23dd0b66c\"\u003e\u003ccode\u003ed479fa5\u003c/code\u003e\u003c/a\u003e Fix scram fix location in changelog and update published artifact developer l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/b04fc46af6c207bc7ce9e788fea8c43d18b73d0f\"\u003e\u003ccode\u003eb04fc46\u003c/code\u003e\u003c/a\u003e docs: Add scram max iters fix to changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/cf548225b4078db954765339720ffdf3bc94e5a6\"\u003e\u003ccode\u003ecf54822\u003c/code\u003e\u003c/a\u003e test: Disable scram test on older version without scram_iterations GUC\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/7dbcc79b2b4adf7b71458c9434d2c43cec7713b9\"\u003e\u003ccode\u003e7dbcc79\u003c/code\u003e\u003c/a\u003e test: Add SCRAM max iteration tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/c9d41d1332a7426fcef19ff89f2e6b1116429143\"\u003e\u003ccode\u003ec9d41d1\u003c/code\u003e\u003c/a\u003e fix: Limit SCRAM PBKDF2 iterations accepted from the server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/a340cb2b0ae24c0d98ad9dec569200ebb704d6aa\"\u003e\u003ccode\u003ea340cb2\u003c/code\u003e\u003c/a\u003e style: replace \u003ca href=\"https://github.com/exception\"\u003e\u003ccode\u003e@​exception\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/throws\"\u003e\u003ccode\u003e@​throws\u003c/code\u003e\u003c/a\u003e in getBoolean javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/77837f80c0c20a9f33f9e21b091f4d4552f8e753\"\u003e\u003ccode\u003e77837f8\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/23af03bc839af5217ea141946ae41e648264061c\"\u003e\u003ccode\u003e23af03b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pgjdbc/pgjdbc/compare/REL42.7.2...REL42.7.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `javax.xml.bind:jaxb-api` from 2.2.3 to 2.3.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/javaee/jaxb-spec/commits/2.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.assertj:assertj-core` from 3.21.0 to 3.27.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/assertj/assertj/releases\"\u003eorg.assertj:assertj-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.27.7\u003c/h2\u003e\n\u003ch2\u003e:lock: Security\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix XXE vulnerability in \u003ccode\u003eisXmlEqualTo\u003c/code\u003e assertion (CVE-2026-24400)\n\u003cul\u003e\n\u003cli\u003eSee GHSA-rqfh-9r24-8c9r for details; many thanks to \u003ca href=\"https://github.com/wxt201\"\u003e\u003ccode\u003e@​wxt201\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Song-Li\"\u003e\u003ccode\u003e@​Song-Li\u003c/code\u003e\u003c/a\u003e for responsibly reporting it!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:no_entry_sign: Deprecated\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eXmlStringPrettyFormatter\u003c/code\u003e with no replacement\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:bug: Bug Fixes\u003c/h2\u003e\n\u003ch3\u003eGuava\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNavigation to \u003ccode\u003eassertj-core\u003c/code\u003e or \u003ccode\u003eguava\u003c/code\u003e types from \u003ccode\u003eassertj-guava\u003c/code\u003e Javadoc site has unnecessary header \u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3478\"\u003e#3478\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Byte Buddy 1.18.3\u003c/li\u003e\n\u003cli\u003eUpgrade to JUnit BOM 5.14.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGuava\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Guava 33.5.0-jre\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.27.6\u003c/h2\u003e\n\u003ch2\u003e:bug: Bug Fixes\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing export for \u003ccode\u003eorg.assertj.core.annotation\u003c/code\u003e \u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3951\"\u003e#3951\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:heart: Contributors\u003c/h2\u003e\n\u003cp\u003eThanks to all the contributors who worked on this release:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/duponter\"\u003e\u003ccode\u003e@​duponter\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.27.5\u003c/h2\u003e\n\u003ch2\u003e:zap: Improvements\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eByteBuddy in AssertJ 3.27.4 not compatible with Java 25 \u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3946\"\u003e#3946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/e84071667f5f8f13084af9dfa54cee5fd9db18db\"\u003e\u003ccode\u003ee840716\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release assertj-build-3.27.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/85ca7eb6609bb179c043b85ae7d290523b1ba79a\"\u003e\u003ccode\u003e85ca7eb\u003c/code\u003e\u003c/a\u003e Deprecate \u003ccode\u003eXmlStringPrettyFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/77081dc5eb107141df80f95bd0149b468e451341\"\u003e\u003ccode\u003e77081dc\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/b68fc24a9de28f28a486fc5b887c1b8a003a5823\"\u003e\u003ccode\u003eb68fc24\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.31.9 to 4.31.10 in the github-actions group ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/0cf5bb6c50f6ead3deaa2a2ff50ef1e7d933c8a3\"\u003e\u003ccode\u003e0cf5bb6\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003ekotlin.version\u003c/code\u003e from 2.1.0 to 2.2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/d393ef1f5e48c89d47d7cf6d1eae359ceda0a126\"\u003e\u003ccode\u003ed393ef1\u003c/code\u003e\u003c/a\u003e Abort tests when symbolic links cannot be created (\u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3788\"\u003e#3788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/22124331e9922af5a43ab50f7a9a25b65be53be1\"\u003e\u003ccode\u003e2212433\u003c/code\u003e\u003c/a\u003e Add IntelliJ custom inspection for test class names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/5717d025cfe0f4c66de20f3253c0b0ecba259aa1\"\u003e\u003ccode\u003e5717d02\u003c/code\u003e\u003c/a\u003e Update JetBrains icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/a8ec20bd42ed01f9cc6f654046c7dd424b0af07c\"\u003e\u003ccode\u003ea8ec20b\u003c/code\u003e\u003c/a\u003e Add icon for JetBrains products\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/c05fb3d052b415fb2d6051df939f3b7903a76afe\"\u003e\u003ccode\u003ec05fb3d\u003c/code\u003e\u003c/a\u003e Bump Maven to 3.9.12 and Wrapper to 3.3.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/assertj/assertj/compare/assertj-core-3.21.0...assertj-build-3.27.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.codehaus.groovy:groovy-all` from 3.0.21 to 3.0.25\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/apache/groovy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.15.3 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.1\u003c/strong\u003e is out now, adding support for the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and numerous bug fixes and improvements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jsoup.org/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\r\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\r\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\r\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\r\n  \u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eRegex.usingRe2j()\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.22.1 (2026-Jan-01)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\n  \u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eorg.jsoup.helper.Regex.usingRe2j()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an instance method \u003ccode\u003eParser#unescape(String, boolean)\u003c/code\u003e that unescapes HTML entities using the parser's configuration (e.g. to support error tracking), complementing the existing static utility \u003ccode\u003eParser.unescapeEntities(String, boolean)\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded a configurable maximum parser depth (to limit the number of open elements on stack) to both HTML and XML parsers. The HTML parser now defaults to a depth of 512 to match browser behavior, and protect against unbounded stack growth, while the XML parser keeps unlimited depth by default, but can opt into a limit via \u003ccode\u003eorg.jsoup.parser.Parser#setMaxDepth\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2421\"\u003e#2421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added CI coverage for JDK 25 \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2403\"\u003e#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added a CI fuzzer for contextual fragment parsing (in addition to existing full body HTML and XML fuzzers). [oss-fuzz \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/14041\"\u003e#14041\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/google/oss-fuzz/pull/14041\"\u003egoogle/oss-fuzz#14041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet a removal schedule of jsoup 1.24.1 for previously deprecated APIs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously cached child \u003ccode\u003eElements\u003c/code\u003e of an \u003ccode\u003eElement\u003c/code\u003e were not correctly invalidated in \u003ccode\u003eNode#replaceWith(Node)\u003c/code\u003e, which could lead to incorrect results when subsequently calling \u003ccode\u003eElement#children()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2391\"\u003e#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttribute selector values are now compared literally without trimming. Previously, jsoup trimmed whitespace from selector values and from element attribute values, which could cause mismatches with browser behavior (e.g. \u003ccode\u003e[attr=\u0026quot; foo \u0026quot;]\u003c/code\u003e). Now matches align with the CSS specification and browser engines. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2380\"\u003e#2380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using the JDK HttpClient, any system default proxy (\u003ccode\u003eProxySelector.getDefault()\u003c/code\u003e) was ignored. Now, the system proxy is used if a per-request proxy is not set. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2388\"\u003e#2388\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2390\"\u003e#2390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eValidationException\u003c/code\u003e could be thrown in the adoption agency algorithm with particularly broken input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2393\"\u003e#2393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNull characters in the HTML body were not consistently removed; and in foreign content were not correctly replaced. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2395\"\u003e#2395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn \u003ccode\u003eIndexOutOfBoundsException\u003c/code\u003e could be thrown when parsing a body fragment with crafted input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2397\"\u003e#2397\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2406\"\u003e#2406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using StructuralEvaluators (e.g., a \u003ccode\u003eparent child\u003c/code\u003e selector) across many retained threads, their memoized results could also be retained, increasing memory use. These results are now cleared immediately after use, reducing overall memory consumption. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2411\"\u003e#2411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCloning a \u003ccode\u003eParser\u003c/code\u003e now preserves any custom \u003ccode\u003eTagSet\u003c/code\u003e applied to the parser. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2422\"\u003e#2422\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2423\"\u003e#2423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.15.3...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.15.0 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-core` from 2.15.0 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/d763562443cc9d6e224a6265ca3710195c813cf5\"\u003e\u003ccode\u003ed763562\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/e5c69fe5f7be957490d52dae70787e7a8138ddda\"\u003e\u003ccode\u003ee5c69fe\u003c/code\u003e\u003c/a\u003e Re-do 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/0ba6a369eaa19a71b2b63fe40b1e9d317c0eb522\"\u003e\u003ccode\u003e0ba6a36\u003c/code\u003e\u003c/a\u003e Bump version after release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/b106011025f6447695e21ddbb9fd3952d284d10c\"\u003e\u003ccode\u003eb106011\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/18a7fe416a0bf666f6c2ddc6da883bc96382dd2d\"\u003e\u003ccode\u003e18a7fe4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/503a14ffa4a74ad56a02fd25f0cd997df163c647\"\u003e\u003ccode\u003e503a14f\u003c/code\u003e\u003c/a\u003e Re-do 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/ab95bc0056119f08ef721849be5e5f2c256b82cd\"\u003e\u003ccode\u003eab95bc0\u003c/code\u003e\u003c/a\u003e ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/0a4b8dedee08e159fddca5eb8e812c1ad881017a\"\u003e\u003ccode\u003e0a4b8de\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/719a42f3676ab3c10e3cd057966807b2206151e7\"\u003e\u003ccode\u003e719a42f\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/92488484b64bc348c43e5a7ff910d93c2f9e9b9c\"\u003e\u003ccode\u003e9248848\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-core/compare/jackson-core-2.15.0...jackson-core-2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.dataformat:jackson-dataformat-xml` from 2.15.0 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/4c702ae0cd9870cb7415fb09d9b22412db78b972\"\u003e\u003ccode\u003e4c702ae\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-dataformat-xml-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/e6a9a509481c03c4cdd2e4bc7745a076bbf06942\"\u003e\u003ccode\u003ee6a9a50\u003c/code\u003e\u003c/a\u003e Prep for 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/80735f20d588dc859ff2bf9427f0d6dfb5c71a7e\"\u003e\u003ccode\u003e80735f2\u003c/code\u003e\u003c/a\u003e Merge branch '2.21' into 2.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5e5f3faa1232ad49c0a0ff0a3e7bd96cc659f850\"\u003e\u003ccode\u003e5e5f3fa\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/4c482a6404e6c076130ea2fa3d06e0809f20971d\"\u003e\u003ccode\u003e4c482a6\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/e29dfd957b47ec3982d20c4a97aa608516ce5ee9\"\u003e\u003ccode\u003ee29dfd9\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-dataformat-xml-2.21.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5d81f46097903e1e88b90ef06515d559caf1ef68\"\u003e\u003ccode\u003e5d81f46\u003c/code\u003e\u003c/a\u003e Prep for 2.21.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5db34fe1003e7f6bed78d5e7dc43c75842895f4c\"\u003e\u003ccode\u003e5db34fe\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/a12b8dfd547b08f808b4189746e00bb203ab08c1\"\u003e\u003ccode\u003ea12b8df\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/7ae7fdbb007ac18c44bddb7515becc1789830db5\"\u003e\u003ccode\u003e7ae7fdb\u003c/code\u003e\u003c/a\u003e Merge branch '2.18' into 2.19\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/compare/jackson-dataformat-xml-2.15.0...jackson-dataformat-xml-2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-annotations` from 2.15.0 to 2.22.0\n\nUpdates `com.fasterxml.jackson.core:jackson-core` from 2.15.0 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/d763562443cc9d6e224a6265ca3710195c813cf5\"\u003e\u003ccode\u003ed763562\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/e5c69fe5f7be957490d52dae70787e7a8138ddda\"\u003e\u003ccode\u003ee5c69fe\u003c/code\u003e\u003c/a\u003e Re-do 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/0ba6a369eaa19a71b2b63fe40b1e9d317c0eb522\"\u003e\u003ccode\u003e0ba6a36\u003c/code\u003e\u003c/a\u003e Bump version after release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/b106011025f6447695e21ddbb9fd3952d284d10c\"\u003e\u003ccode\u003eb106011\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/18a7fe416a0bf666f6c2ddc6da883bc96382dd2d\"\u003e\u003ccode\u003e18a7fe4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/503a14ffa4a74ad56a02fd25f0cd997df163c647\"\u003e\u003ccode\u003e503a14f\u003c/code\u003e\u003c/a\u003e Re-do 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/ab95bc0056119f08ef721849be5e5f2c256b82cd\"\u003e\u003ccode\u003eab95bc0\u003c/code\u003e\u003c/a\u003e ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/0a4b8dedee08e159fddca5eb8e812c1ad881017a\"\u003e\u003ccode\u003e0a4b8de\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/719a42f3676ab3c10e3cd057966807b2206151e7\"\u003e\u003ccode\u003e719a42f\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/92488484b64bc348c43e5a7ff910d93c2f9e9b9c\"\u003e\u003ccode\u003e9248848\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-core/compare/jackson-core-2.15.0...jackson-core-2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.dataformat:jackson-dataformat-xml` from 2.15.0 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/4c702ae0cd9870cb7415fb09d9b22412db78b972\"\u003e\u003ccode\u003e4c702ae\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-dataformat-xml-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/e6a9a509481c03c4cdd2e4bc7745a076bbf06942\"\u003e\u003ccode\u003ee6a9a50\u003c/code\u003e\u003c/a\u003e Prep for 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/80735f20d588dc859ff2bf9427f0d6dfb5c71a7e\"\u003e\u003ccode\u003e80735f2\u003c/code\u003e\u003c/a\u003e Merge branch '2.21' into 2.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5e5f3faa1232ad49c0a0ff0a3e7bd96cc659f850\"\u003e\u003ccode\u003e5e5f3fa\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/4c482a6404e6c076130ea2fa3d06e0809f20971d\"\u003e\u003ccode\u003e4c482a6\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/e29dfd957b47ec3982d20c4a97aa608516ce5ee9\"\u003e\u003ccode\u003ee29dfd9\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-dataformat-xml-2.21.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5d81f46097903e1e88b90ef06515d559caf1ef68\"\u003e\u003ccode\u003e5d81f46\u003c/code\u003e\u003c/a\u003e Prep for 2.21.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5db34fe1003e7f6bed78d5e7dc43c75842895f4c\"\u003e\u003ccode\u003e5db34fe\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/a12b8dfd547b08f808b4189746e00bb203ab08c1\"\u003e\u003ccode\u003ea12b8df\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/7ae7fdbb007ac18c44bddb7515becc1789830db5\"\u003e\u003ccode\u003e7ae7fdb\u003c/code\u003e\u003c/a\u003e Merge branch '2.18' into 2.19\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/compare/jackson-dataformat-xml-2.15.0...jackson-dataformat-xml-2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-annotations` from 2.15.0 to 2.22.0\n\nUpdates `org.apache.commons:commons-collections4` from 4.4 to 4.5.0\n\nUpdates `org.projectlombok:lombok` from 1.18.20 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.44 (March 11th, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Jacksonized\u003c/code\u003e now supports both Jackson2 and Jackson3; you'll get a warning until you configure which one (or even both!) you want lombok to generate. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3950\"\u003e#3950\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: On JDK25, \u003ccode\u003eval\u003c/code\u003e and \u003ccode\u003e@ExtensionMethod\u003c/code\u003e could sometimes cause erroneous errors (in that you see errors but compilation succeeds anyway) using javac. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3947\"\u003e#3947\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e + fields marked \u003ccode\u003etransient\u003c/code\u003e would result in those transient fields being serialised which is surprising (and thus undesired) behaviour. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3936\"\u003e#3936\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.42 (September 18th, 2025)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFEATURE: All the various \u003ccode\u003e@Log\u003c/code\u003e annotations now allow you to change their access level (they still default to \u003ccode\u003eprivate\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/2280\"\u003e#2280\u003c/a\u003e. Thanks to new contributor Liam Pace!\u003c/li\u003e\n\u003cli\u003eBUGFIX: Javadoc parsing was broken in Netbeans and ErrorProne for JDK25 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3940\"\u003e#3940\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.40 (September 4th, 2025)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK25 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3859\"\u003e#3859\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Recent versions of eclipse (or the eclipse-based java lang server for VSCode) caused \u003ccode\u003ejava.lang.IllegalArgumentException: Document does not match the AST\u003c/code\u003e. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3886\"\u003e#3886\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3886\"\u003eprojectlombok/lombok#3886\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePERFORMANCE: \u003ccode\u003e@ExtensionMethod\u003c/code\u003e is now significantly faster [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3866\"\u003e#3866\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3866\"\u003eprojectlombok/lombok#3866\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: the command line \u003ccode\u003econfig\u003c/code\u003e tool would emit incorrect output for nullity annotations. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3931\"\u003e#3931\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3931\"\u003eprojectlombok/lombok#3931\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Jacksonized @Accessors(fluent=true)\u003c/code\u003e automatically creates the relevant annotations such that Jackson correctly identifies fluent accessors. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3265\"\u003e#3265\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3265\"\u003eprojectlombok/lombok#3265\u003c/a\u003e), [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3270\"\u003e#3270\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3270\"\u003eprojectlombok/lombok#3270\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eIMPROBABLE BREAKING CHANGE: From versions 1.18.16 to 1.18.38, lombok automatically copies certain Jackson annotations (e.g., \u003ccode\u003e@JsonProperty\u003c/code\u003e) from fields to the corresponding accessors (getters/setters). However, it turned out to be harmful in certain situations. Thus, Lombok does not automatically copy those annotations any more. You can restore the old behavior using the \u003ca href=\"https://projectlombok.org/features/configuration\"\u003econfig key\u003c/a\u003e \u003ccode\u003elombok.copyJacksonAnnotationsToAccessors = true\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.38 (March 31st, 2025)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK24 support added.\u003c/li\u003e\n\u003cli\u003eFEATURE: Lombok's nullity annotation now supports \u003ca href=\"https://jspecify.dev\"\u003eJSpecify\u003c/a\u003e out of the box, using \u003ca href=\"https://projectlombok.org/features/configuration\"\u003econfig key\u003c/a\u003e \u003ccode\u003ejspecify\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Recent eclipse releases would get you 'negative length' error. The bug had always been in lombok but didn't matter until recent releases. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3823\"\u003e#3823\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3823\"\u003eprojectlombok/lombok#3823\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: The 'extract local variable' refactor script of VSCode wouldn't replace all occurrences if run on a method call to a lombok generated method. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3783\"\u003e#3783\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3783\"\u003eprojectlombok/lombok#3783\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.36 (November 15th, 2024)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK23 support added.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Eclipse projects using the \u003ccode\u003ecom.pro-crafting.tools:jasperreports-maven-plugin\u003c/code\u003e will now compile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.34 (June 28th, 2024)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: Added support for Eclipse 2024-06; you'd get some \u003ccode\u003eNoSuchMethodError\u003c/code\u003e traces in your logs if using \u003ccode\u003e@Builder\u003c/code\u003e or \u003ccode\u003e@Singular\u003c/code\u003e prior to this fix. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3638\"\u003e#3638\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3638\"\u003eprojectlombok/lombok#3638\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eIMPROBABLE BREAKING CHANGE: Lombok now adds \u003ccode\u003e@lombok.Generated\u003c/code\u003e by default to methods and types it generates. This may result in accidentally increasing your test coverage percentage. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3667\"\u003e#3667\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3667\"\u003eprojectlombok/lombok#3667\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eIMPROBABLE BREAKING CHANGE: When \u003ccode\u003elombok.config\u003c/code\u003e contains \u003ccode\u003elombok.onX.flagUsage = WARNING\u003c/code\u003e, from now on warnings will actually be generated if onX is used.[Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/2848\"\u003e#2848\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/2848\"\u003eprojectlombok/lombok#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUGFIX: When \u003ccode\u003e@SuperBuilder\u003c/code\u003e was used on a type with an generic array type, it would error \u003ccode\u003ewrong number of type arguments\u003c/code\u003e.  [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3694\"\u003e#3694\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3694\"\u003eprojectlombok/lombok#3694\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFEATURE: Lombok generates javadoc for you for most of the methods it adds; with this release, javadoc is also added to generated constructors. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/933\"\u003e#933\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/933\"\u003eprojectlombok/lombok#933\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.32 (March 20th, 2024)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: Initial JDK22 support added.\u003c/li\u003e\n\u003cli\u003ePLAFTORM  Added support for Eclipse 2024-03. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3620\"\u003e#3620\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3620\"\u003eprojectlombok/lombok#3620\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePLATFORM: Added support for recent versions of eclipse (released Q4 2023 or later or so) which would cause failures in the eclipse logs such as \u003ccode\u003ejava.lang.NoSuchMethodError: 'java.lang.StringBuffer org.eclipse.jdt…\u003c/code\u003e. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3564\"\u003e#3564\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3564\"\u003eprojectlombok/lombok#3564\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Locked\u003c/code\u003e has been introduced. Like \u003ccode\u003e@Synchronized\u003c/code\u003e but with \u003ccode\u003ejava.util.concurrent.locks\u003c/code\u003e locks instead of the \u003ccode\u003esynchronized\u003c/code\u003e primitive. Thanks, Pim van der Loos for the PR! [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3506\"\u003e#3506\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3506\"\u003eprojectlombok/lombok#3506\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eNECROMANCY: Inlining a generated getter in eclipse would result in eclipse incorrectly replacing calls with \u003ccode\u003e@Getter\u003c/code\u003e instead of the actual field's name. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/562\"\u003e#562\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/562\"\u003eprojectlombok/lombok#562\u003c/a\u003e). This issue is almost old enough to drink. Points for dedication go to Rawi for fixing this one.\u003c/li\u003e\n\u003cli\u003eBUGFIX: When \u003ccode\u003e@SuperBuilder\u003c/code\u003e was used on a type with an annotated generic type, it would error \u003ccode\u003ewrong number of type arguments\u003c/code\u003e.  [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3592\"\u003e#3592\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3592\"\u003eprojectlombok/lombok#3592\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: It was possible to create an infinite build loop using \u003ccode\u003e@ExtensionMethod\u003c/code\u003e. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3225\"\u003e#3225\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3225\"\u003eprojectlombok/lombok#3225\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: Using \u003ccode\u003e@Getter(lazy=true)\u003c/code\u003e would fail if the expression contained a variable called \u003ccode\u003evalue\u003c/code\u003e. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/2917\"\u003e#2917\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/2917\"\u003eprojectlombok/lombok#2917\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48...\n\n_Description has been truncated_","html_url":"https://github.com/AOT-Technologies/forms-flow-ai/pull/3317","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOT-Technologies%2Fforms-flow-ai/issues/3317","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3317/packages"},{"uuid":"4557511061","node_id":"PR_kwDORkrpmc7hFhQf","number":35,"state":"closed","title":"build(deps): bump the maven-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-07T12:12:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-31T12:13:20.000Z","updated_at":"2026-06-07T12:12:34.000Z","time_to_close":604752,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"maven-dependencies","update_count":11,"packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"com.microsoft.playwright:playwright","old_version":"1.58.0","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright-java"},{"name":"com.anthropic:anthropic-java","old_version":"2.19.0","new_version":"2.35.0","repository_url":"https://github.com/anthropics/anthropic-sdk-java"},{"name":"com.fasterxml.jackson.core:jackson-databind","old_version":"2.21.2","new_version":"2.21.4","repository_url":"https://github.com/FasterXML/jackson"},{"name":"org.xerial:sqlite-jdbc","old_version":"3.51.3.0","new_version":"3.53.1.0","repository_url":"https://github.com/xerial/sqlite-jdbc"},{"name":"com.typesafe:config","old_version":"1.4.6","new_version":"1.4.8","repository_url":"https://github.com/lightbend/config"},{"name":"org.slf4j:slf4j-simple","old_version":"2.0.17","new_version":"2.0.18"},{"name":"org.junit.jupiter:junit-jupiter","old_version":"6.0.3","new_version":"6.1.0","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.jline:jline","old_version":"4.0.10","new_version":"4.1.3","repository_url":"https://github.com/jline/jline3"},{"name":"com.google.guava:guava","old_version":"33.5.0-jre","new_version":"33.6.0-jre","repository_url":"https://github.com/google/guava"},{"name":"org.apache.maven.plugins:maven-surefire-plugin","old_version":"3.5.5","new_version":"3.5.6","repository_url":"https://github.com/apache/maven-surefire"}],"path":null,"ecosystem":"maven"},"body":"Bumps the maven-dependencies group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) | `1.58.0` | `1.60.0` |\n| [com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java) | `2.19.0` | `2.35.0` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.21.2` | `2.21.4` |\n| [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) | `3.51.3.0` | `3.53.1.0` |\n| [com.typesafe:config](https://github.com/lightbend/config) | `1.4.6` | `1.4.8` |\n| org.slf4j:slf4j-simple | `2.0.17` | `2.0.18` |\n| [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) | `6.0.3` | `6.1.0` |\n| [org.jline:jline](https://github.com/jline/jline3) | `4.0.10` | `4.1.3` |\n| [com.google.guava:guava](https://github.com/google/guava) | `33.5.0-jre` | `33.6.0-jre` |\n| [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) | `3.5.5` | `3.5.6` |\n\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.microsoft.playwright:playwright` from 1.58.0 to 1.60.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/playwright-java/releases\"\u003ecom.microsoft.playwright:playwright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.60.0\u003c/h2\u003e\n\u003ch2\u003e🌐 HAR recording on Tracing\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-tracing#tracing-start-har\"\u003etracing.startHar()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-tracing#tracing-stop-har\"\u003etracing.stopHar()\u003c/a\u003e expose HAR recording as a first-class tracing API, with the same \u003ccode\u003econtent\u003c/code\u003e, \u003ccode\u003emode\u003c/code\u003e and \u003ccode\u003eurlFilter\u003c/code\u003e options as \u003ccode\u003erecordHar\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"java\"\u003e\u003ccode\u003econtext.tracing().startHar(Paths.get(\u0026quot;trace.har\u0026quot;));\r\nPage page = context.newPage();\r\npage.navigate(\u0026quot;https://playwright.dev\u0026quot;);\r\ncontext.tracing().stopHar();\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e🪝 Drop API\u003c/h2\u003e\n\u003cp\u003eNew \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-drop\"\u003elocator.drop()\u003c/a\u003e simulates an external drag-and-drop of files or clipboard-like data onto an element. Playwright dispatches \u003ccode\u003edragenter\u003c/code\u003e, \u003ccode\u003edragover\u003c/code\u003e, and \u003ccode\u003edrop\u003c/code\u003e with a synthetic [DataTransfer] in the page context — works cross-browser and is great for testing upload zones:\u003c/p\u003e\n\u003cpre lang=\"java\"\u003e\u003ccode\u003epage.locator(\u0026quot;#dropzone\u0026quot;).drop(new Locator.DropPayload()\r\n    .setFiles(new FilePayload(\u0026quot;note.txt\u0026quot;, \u0026quot;text/plain\u0026quot;, \u0026quot;hello\u0026quot;.getBytes(StandardCharsets.UTF_8))));\r\n\u003cp\u003epage.locator(\u0026quot;#dropzone\u0026quot;).drop(new Locator.DropPayload()\n.setData(Map.of(\n\u0026quot;text/plain\u0026quot;, \u0026quot;hello world\u0026quot;,\n\u0026quot;text/uri-list\u0026quot;, \u0026quot;\u003ca href=\"https://example.com\"\u003ehttps://example.com\u003c/a\u003e\u0026quot;)));\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003e🎯 Aria snapshots\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-pageassertions#page-assertions-to-match-aria-snapshot\"\u003eassertThat(page).matchesAriaSnapshot()\u003c/a\u003e now works on a \u003ca href=\"https://playwright.dev/java/docs/api/class-page\"\u003ePage\u003c/a\u003e, in addition to a \u003ca href=\"https://playwright.dev/java/docs/api/class-locator\"\u003eLocator\u003c/a\u003e — equivalent to asserting against \u003ccode\u003epage.locator(\u0026quot;body\u0026quot;)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eboxes\u003c/code\u003e option on \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-aria-snapshot\"\u003elocator.ariaSnapshot()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-aria-snapshot\"\u003epage.ariaSnapshot()\u003c/a\u003e appends each element's bounding box as \u003ccode\u003e[box=x,y,width,height]\u003c/code\u003e, useful for AI consumption.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew APIs\u003c/h2\u003e\n\u003ch3\u003eBrowser, Context and Page\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvent \u003ca href=\"https://playwright.dev/java/docs/api/class-browser#browser-event-context\"\u003ebrowser.onContext()\u003c/a\u003e — fired when a new context is created on the browser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext\"\u003eBrowserContext\u003c/a\u003e now mirrors lifecycle events from its pages: \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-download\"\u003ebrowserContext.onDownload()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-attached\"\u003ebrowserContext.onFrameAttached()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-detached\"\u003ebrowserContext.onFrameDetached()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-navigated\"\u003ebrowserContext.onFrameNavigated()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-page-close\"\u003ebrowserContext.onPageClose()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-page-load\"\u003ebrowserContext.onPageLoad()\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLocators and Assertions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003edescription\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-get-by-role\"\u003epage.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-get-by-role\"\u003elocator.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-frame#frame-get-by-role\"\u003eframe.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-framelocator#frame-locator-get-by-role\"\u003eframeLocator.getByRole()\u003c/a\u003e for matching the \u003ca href=\"https://www.w3.org/TR/wai-aria-1.2/#dfn-accessible-description\"\u003eaccessible description\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003epseudo\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-locatorassertions#locator-assertions-to-have-css\"\u003eassertThat(locator).hasCSS()\u003c/a\u003e reads computed styles from \u003ccode\u003e::before\u003c/code\u003e or \u003ccode\u003e::after\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003estyle\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-highlight\"\u003elocator.highlight()\u003c/a\u003e applies extra inline CSS to the highlight overlay, plus new \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-hide-highlight\"\u003epage.hideHighlight()\u003c/a\u003e to clear all highlights.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNetwork\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-websocketroute#web-socket-route-protocols\"\u003ewebSocketRoute.protocols()\u003c/a\u003e returns the WebSocket subprotocols requested by the page.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003enoDefaults\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-browsertype#browser-type-connect-over-cdp\"\u003ebrowserType.connectOverCDP()\u003c/a\u003e disables Playwright's default overrides on the default context (download behavior, focus emulation, media emulation), so attaching to a user's daily-driver browser doesn't disturb its state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eErrors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ca href=\"https://playwright.dev/java/docs/api/class-weberror#web-error-location\"\u003ewebError.location()\u003c/a\u003e mirrors \u003ca href=\"https://playwright.dev/java/docs/api/class-consolemessage#console-message-location\"\u003econsoleMessage.location()\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠️ Other improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTrace Viewer adds a pretty-print toggle for JSON / form request and response bodies in the network details panel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/55134ef3a5ea7607cd200d4662738a172ae146b8\"\u003e\u003ccode\u003e55134ef\u003c/code\u003e\u003c/a\u003e chore: mark 1.60.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/793b1d3d6152437e21c327f0779370662a1aa0ed\"\u003e\u003ccode\u003e793b1d3\u003c/code\u003e\u003c/a\u003e chore: roll driver to 1.60.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1921\"\u003e#1921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/8f66ef1f13e23c48eb43a1805d017866e58fe80d\"\u003e\u003ccode\u003e8f66ef1\u003c/code\u003e\u003c/a\u003e test_docker: align container launch with playwright-browsers (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/dc66e4d1a39c9e04fb001ecd0a30b2a9d9842165\"\u003e\u003ccode\u003edc66e4d\u003c/code\u003e\u003c/a\u003e chore(deps): bump com.google.code.gson:gson from 2.13.2 to 2.14.0 in the all ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/d84a2db0b348ace4c349c3f93fd62646bbf7c929\"\u003e\u003ccode\u003ed84a2db\u003c/code\u003e\u003c/a\u003e chore: roll driver to 1.60.0-beta-1778180503000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/f081667e44b5e1fec2a9f1179af76b687808f684\"\u003e\u003ccode\u003ef081667\u003c/code\u003e\u003c/a\u003e chore: roll to 1.60.0-alpha-2026-05-05 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1916\"\u003e#1916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/5b33729849608904e8fe709ee7a6aa042708f629\"\u003e\u003ccode\u003e5b33729\u003c/code\u003e\u003c/a\u003e chore: reduce CI flakiness across webkit/macOS, ubuntu, windows (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/b01bf64e64ef3cad7252369f1d747709f7507e81\"\u003e\u003ccode\u003eb01bf64\u003c/code\u003e\u003c/a\u003e chore: resolve Object langAliases in function argument types (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1908\"\u003e#1908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/7dbd6cac3b0c3759e25538c8b2c02e4592da95d7\"\u003e\u003ccode\u003e7dbd6ca\u003c/code\u003e\u003c/a\u003e chore: use langAliases from api.json in api generator (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1907\"\u003e#1907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/c3e4b92982067b90bfe297ed06ebbb80d36eb799\"\u003e\u003ccode\u003ec3e4b92\u003c/code\u003e\u003c/a\u003e chore: roll to 1.59.1-beta-1775752988000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-java/compare/v1.58.0...v1.60.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.anthropic:anthropic-java` from 2.19.0 to 2.35.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/releases\"\u003ecom.anthropic:anthropic-java's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.35.0\u003c/h2\u003e\n\u003ch2\u003e2.35.0 (2026-05-28)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.1...v2.35.0\"\u003ev2.34.1...v2.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for claude-opus-4-8, mid-conversation system blocks, and usage.output_tokens_details (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/3e4621e6766fc5f78eaa33f6789f0f801c9a32e8\"\u003e3e4621e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-27)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.0...v2.34.1\"\u003ev2.34.0...v2.34.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estructured-outputs:\u003c/strong\u003e support all nullability annotations (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1254\"\u003e#1254\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/95e439144341b1668b52773f46ce664f25f20ab5\"\u003e95e4391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereplace literal newlines (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c5573d98efba6a0c36890b6675cfecdc8fe8d808\"\u003ec5573d9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.33.0...v2.34.0\"\u003ev2.33.0...v2.34.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for thinking-token-count beta for estimated tokens in thinking block deltas when streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c814c7a24808d8f82875e02d3cde914fae334321\"\u003ec814c7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etest:\u003c/strong\u003e set required estimatedTokens on BetaThinkingDelta in BetaMessageAccumulatorTest (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/04aedf3c0b19b7c838c04f8fec09e82e4700c48a\"\u003e04aedf3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-05-19)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.32.0...v2.33.0\"\u003ev2.32.0...v2.33.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Add support for self-hosted sandboxes in CMA with sandbox helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/d5193622daa045073af0244a1fec4ae78131c205\"\u003ed519362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md\"\u003ecom.anthropic:anthropic-java's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.35.0 (2026-05-28)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.1...v2.35.0\"\u003ev2.34.1...v2.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for claude-opus-4-8, mid-conversation system blocks, and usage.output_tokens_details (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/3e4621e6766fc5f78eaa33f6789f0f801c9a32e8\"\u003e3e4621e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-27)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.0...v2.34.1\"\u003ev2.34.0...v2.34.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estructured-outputs:\u003c/strong\u003e support all nullability annotations (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1254\"\u003e#1254\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/95e439144341b1668b52773f46ce664f25f20ab5\"\u003e95e4391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereplace literal newlines (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c5573d98efba6a0c36890b6675cfecdc8fe8d808\"\u003ec5573d9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.33.0...v2.34.0\"\u003ev2.33.0...v2.34.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for thinking-token-count beta for estimated tokens in thinking block deltas when streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c814c7a24808d8f82875e02d3cde914fae334321\"\u003ec814c7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etest:\u003c/strong\u003e set required estimatedTokens on BetaThinkingDelta in BetaMessageAccumulatorTest (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/04aedf3c0b19b7c838c04f8fec09e82e4700c48a\"\u003e04aedf3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-05-19)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.32.0...v2.33.0\"\u003ev2.32.0...v2.33.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Add support for self-hosted sandboxes in CMA with sandbox helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/d5193622daa045073af0244a1fec4ae78131c205\"\u003ed519362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add BetaManagedAgentsSearchResultBlock types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/253feaad3ecbf3693985ffa205baa1b51e8972e7\"\u003e253feaa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for cache diagnostics beta (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/7a3223122c72898bcfbbd1385f2aaba1daa1824b\"\u003e7a32231\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/65d26cc3716f805ca2282a1a98ebf0607b415942\"\u003e\u003ccode\u003e65d26cc\u003c/code\u003e\u003c/a\u003e release: 2.35.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/f90101069197a63fa116447ab617bbd846c62e0a\"\u003e\u003ccode\u003ef901010\u003c/code\u003e\u003c/a\u003e feat(api): Add support for claude-opus-4-8, mid-conversation system blocks, a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/bc1bdd9a38b5917352a7404ab5b73cf77fd6e567\"\u003e\u003ccode\u003ebc1bdd9\u003c/code\u003e\u003c/a\u003e release: 2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/f27e209ac991d788a55477a2d2eca816b877617a\"\u003e\u003ccode\u003ef27e209\u003c/code\u003e\u003c/a\u003e fix(structured-outputs): support all nullability annotations (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1254\"\u003e#1254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/62ef906b3c7e70792eaa22b215ff83f1dfa68162\"\u003e\u003ccode\u003e62ef906\u003c/code\u003e\u003c/a\u003e docs: replace literal newlines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/dc19d082177c715f2275b008ae09a6a6ff9c213d\"\u003e\u003ccode\u003edc19d08\u003c/code\u003e\u003c/a\u003e ci: run breaking change detection on every branch (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/1382286f4659e36010f0ef4e4fe4a36e013a4e74\"\u003e\u003ccode\u003e1382286\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/765ec0e21cb1e17d8b5adaad24e90b7d1afa96b5\"\u003e\u003ccode\u003e765ec0e\u003c/code\u003e\u003c/a\u003e release: 2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/56c637fc19053bd3088791518ade11f3055bb837\"\u003e\u003ccode\u003e56c637f\u003c/code\u003e\u003c/a\u003e fix(test): set required estimatedTokens on BetaThinkingDelta in BetaMessageAc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/5d636b2d1aab522b8bb91d1de30901f812d1dc42\"\u003e\u003ccode\u003e5d636b2\u003c/code\u003e\u003c/a\u003e feat(api): Add support for thinking-token-count beta for estimated tokens in ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.19.0...v2.35.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.21.2 to 2.21.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.xerial:sqlite-jdbc` from 3.51.3.0 to 3.53.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xerial/sqlite-jdbc/releases\"\u003eorg.xerial:sqlite-jdbc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.53.1.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.1 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/8263322\"\u003e8263322\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔄️ Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erewrite amalgamation_version.sh for POSIX shell (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/52522d0\"\u003e52522d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix android usage (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7ef8e0f\"\u003e7ef8e0f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.14.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/a28d6ce\"\u003ea28d6ce\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.13.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/248e1e9\"\u003e248e1e9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.jreleaser:jreleaser-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/396fdf3\"\u003e396fdf3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.tngtech.archunit:archunit-junit5 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/458abe1\"\u003e458abe1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econditionally bootstrap SLF4J API JAR (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bc7d223\"\u003ebc7d223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake JAVA_CLASSPATH configurable (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/5aa7426\"\u003e5aa7426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Michael Osipov\u003c/p\u003e\n\u003ch2\u003eRelease 3.53.0.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejdbc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexpose wal_autocheckpoint pragma in SQLiteConfig (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/dd2adcc\"\u003edd2adcc\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1397\"\u003e#1397\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/baaf087\"\u003ebaaf087\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epublish multiple classifer jars (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bdd2b64\"\u003ebdd2b64\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1273\"\u003e#1273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter Android support (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7eb6f3f\"\u003e7eb6f3f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1378\"\u003e#1378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.sonatype.central:central-publishing-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/19259e5\"\u003e19259e5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/f572217\"\u003ef572217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/b01674f0bffc45b4c213dd873867e64b9194104b\"\u003e\u003ccode\u003eb01674f\u003c/code\u003e\u003c/a\u003e chore(release): 3.53.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/e6719db995a1fee385f0421cee1eaf78e3587013\"\u003e\u003ccode\u003ee6719db\u003c/code\u003e\u003c/a\u003e chore: update native libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/826332265f8f1069faeb4a61761a8651efaefb0c\"\u003e\u003ccode\u003e8263322\u003c/code\u003e\u003c/a\u003e feat(sqlite): upgrade to sqlite 3.53.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/396fdf30d850ca78dad59bccaafae25c1e86998a\"\u003e\u003ccode\u003e396fdf3\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump org.jreleaser:jreleaser-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/bc7d22394987d5c84706c844f0b95c7856e3f294\"\u003e\u003ccode\u003ebc7d223\u003c/code\u003e\u003c/a\u003e build: conditionally bootstrap SLF4J API JAR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/4cd221a72480a681f91f78f9d8a99372daf423ce\"\u003e\u003ccode\u003e4cd221a\u003c/code\u003e\u003c/a\u003e chore: remove execute bit on non-executable files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/5aa74267e6a01c071ec88d1882de8aeec0d8d22a\"\u003e\u003ccode\u003e5aa7426\u003c/code\u003e\u003c/a\u003e build: make JAVA_CLASSPATH configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/52522d02ee5cffa8f283054d8bf5a5165206caac\"\u003e\u003ccode\u003e52522d0\u003c/code\u003e\u003c/a\u003e refactor: rewrite amalgamation_version.sh for POSIX shell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/a28d6cef66da00f8559445dfacd9f34a871509d6\"\u003e\u003ccode\u003ea28d6ce\u003c/code\u003e\u003c/a\u003e build(deps): bump gummy-bears-api-24 to 0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/458abe135cad6e20f00504418a09946c81c8dbd7\"\u003e\u003ccode\u003e458abe1\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump com.tngtech.archunit:archunit-junit5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/xerial/sqlite-jdbc/compare/3.51.3.0...3.53.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.typesafe:config` from 1.4.6 to 1.4.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lightbend/config/releases\"\u003ecom.typesafe:config's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: BugOrBroken - partially-shadowed object has nested delayed merge by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/846\"\u003elightbend/config#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.7...v1.4.8\"\u003ehttps://github.com/lightbend/config/compare/v1.4.7...v1.4.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.4.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: adjust description of release process by \u003ca href=\"https://github.com/sebastian-alfers\"\u003e\u003ccode\u003e@​sebastian-alfers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/834\"\u003elightbend/config#834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update NEWS with latest two releases by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/835\"\u003elightbend/config#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI fixes by \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003elightbend/config#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix spelling by \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/840\"\u003elightbend/config#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: rendering of substituted list with space by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/841\"\u003elightbend/config#841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Don't evaluate substitutions hidden by values from resolved objects by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/839\"\u003elightbend/config#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop the broken Maven chip in Readme by \u003ca href=\"https://github.com/ennru\"\u003e\u003ccode\u003e@​ennru\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/844\"\u003elightbend/config#844\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003elightbend/config#843\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.6...v1.4.7\"\u003ehttps://github.com/lightbend/config/compare/v1.4.6...v1.4.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lightbend/config/blob/main/NEWS.md\"\u003ecom.typesafe:config's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.8: May 5, 2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: BugOrBroken - partially-shadowed object has nested delayed merge, fix for regression introduced in 1.4.7, (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/846\"\u003e#846\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.4.7: April 28, 2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: rendering of substituted list with space (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/841\"\u003e#841\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Don't evaluate substitutions hidden by values from resolved objects (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/839\"\u003e#839\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: CI improvements (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003e#843\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: spelling improvements by (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/840\"\u003e#840\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/b0a1e43b61d11e0f1aeefb939ea8d8576229a684\"\u003e\u003ccode\u003eb0a1e43\u003c/code\u003e\u003c/a\u003e fix: regression - partially-shadowed object has nested delayed merge (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/846\"\u003e#846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/eb80714c074036e723d6cb14929bcb1582ec34a7\"\u003e\u003ccode\u003eeb80714\u003c/code\u003e\u003c/a\u003e Drop the broken Maven chip in Readme (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/833bacb616f92cae73c67d8b7a8ae9f6e44b474c\"\u003e\u003ccode\u003e833bacb\u003c/code\u003e\u003c/a\u003e fix: Don't evaluate substitutions hidden by values from resolved objects (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/dd3a0df142f7def91c13b4a0576af5528e9fd7f4\"\u003e\u003ccode\u003edd3a0df\u003c/code\u003e\u003c/a\u003e fix: rendering of substituted list with spacce (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/eb46e0e09065f974de851de83a7ab121aae91e6d\"\u003e\u003ccode\u003eeb46e0e\u003c/code\u003e\u003c/a\u003e chore: Fix spelling here and there (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/840\"\u003e#840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/affd59d79928662f262fc12c20aeff9784600349\"\u003e\u003ccode\u003eaffd59d\u003c/code\u003e\u003c/a\u003e build: update actions, replace deprecated apt-key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/93dbc6f42650c120a78506824db644aa637ad376\"\u003e\u003ccode\u003e93dbc6f\u003c/code\u003e\u003c/a\u003e docs: Update NEWS with latest two releases (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/835\"\u003e#835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/c995aa0f11d9712c4eb41a3aa6d60cf179cda1ab\"\u003e\u003ccode\u003ec995aa0\u003c/code\u003e\u003c/a\u003e docs: adjust description of release process (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.6...v1.4.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.slf4j:slf4j-simple` from 2.0.17 to 2.0.18\n\nUpdates `org.junit.jupiter:junit-jupiter` from 6.0.3 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.1.0 = Platform 6.1.0 + Jupiter 6.1.0 + Vintage 6.1.0\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JarvisCraft\"\u003e\u003ccode\u003e@​JarvisCraft\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5633\"\u003ejunit-team/junit-framework#5633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Maran23\"\u003e\u003ccode\u003e@​Maran23\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5644\"\u003ejunit-team/junit-framework#5644\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.1.0-RC1 = Platform 6.1.0-RC1 + Jupiter 6.1.0-RC1 + Vintage 6.1.0-RC1\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0-RC1/release-notes/\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariokhoury4\"\u003e\u003ccode\u003e@​mariokhoury4\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/4574\"\u003ejunit-team/junit-framework#4574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ogu1208\"\u003e\u003ccode\u003e@​Ogu1208\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5145\"\u003ejunit-team/junit-framework#5145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HyungGeun94\"\u003e\u003ccode\u003e@​HyungGeun94\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5271\"\u003ejunit-team/junit-framework#5271\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yalishevant\"\u003e\u003ccode\u003e@​yalishevant\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5316\"\u003ejunit-team/junit-framework#5316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JINU-CHANG\"\u003e\u003ccode\u003e@​JINU-CHANG\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5290\"\u003ejunit-team/junit-framework#5290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaschdoc\"\u003e\u003ccode\u003e@​jaschdoc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5427\"\u003ejunit-team/junit-framework#5427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kawshikbuet17\"\u003e\u003ccode\u003e@​kawshikbuet17\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5561\"\u003ejunit-team/junit-framework#5561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msridhar\"\u003e\u003ccode\u003e@​msridhar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5602\"\u003ejunit-team/junit-framework#5602\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.1.0-M1...r6.1.0-RC1\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.1.0-M1...r6.1.0-RC1\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.1.0-M1 = Platform 6.1.0-M1 + Jupiter 6.1.0-M1 + Vintage 6.1.0-M1\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0-M1/release-notes/\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vy\"\u003e\u003ccode\u003e@​vy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5041\"\u003ejunit-team/junit-framework#5041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pankraz76\"\u003e\u003ccode\u003e@​Pankraz76\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5006\"\u003ejunit-team/junit-framework#5006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arukiidou\"\u003e\u003ccode\u003e@​arukiidou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5066\"\u003ejunit-team/junit-framework#5066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laeubi\"\u003e\u003ccode\u003e@​laeubi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5092\"\u003ejunit-team/junit-framework#5092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jihun4452\"\u003e\u003ccode\u003e@​jihun4452\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5088\"\u003ejunit-team/junit-framework#5088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TWiStErRob\"\u003e\u003ccode\u003e@​TWiStErRob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5133\"\u003ejunit-team/junit-framework#5133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.0...r6.1.0-M1\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.0...r6.1.0-M1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0dc3af1cb1973d257b5bc75d81e02454d5e4e556\"\u003e\u003ccode\u003e0dc3af1\u003c/code\u003e\u003c/a\u003e Release 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/1d130020c85170edcb46ce7ed1f7f78824e37c04\"\u003e\u003ccode\u003e1d13002\u003c/code\u003e\u003c/a\u003e Prepare 6.1.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/072b2175bbd7b0b3b26f5d928550ec7a21e68268\"\u003e\u003ccode\u003e072b217\u003c/code\u003e\u003c/a\u003e Update plugin spotless to v8.5.0 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5668\"\u003e#5668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/3a53480218f4b752a9ca77506e10632cd483c0f8\"\u003e\u003ccode\u003e3a53480\u003c/code\u003e\u003c/a\u003e Update Gradle to v9.5.1 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5666\"\u003e#5666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0e18a20a9f98d063ae02b3ba19329143f5c7f034\"\u003e\u003ccode\u003e0e18a20\u003c/code\u003e\u003c/a\u003e Update zizmorcore/zizmor-action action to v0.5.4 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5669\"\u003e#5669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0a2634fb9cbbd057b02cf629d7d272c16d62be4b\"\u003e\u003ccode\u003e0a2634f\u003c/code\u003e\u003c/a\u003e Update github/codeql-action action to v4.35.5 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5671\"\u003e#5671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/4dbd5561b00ac761a62c516bfaec51c212a2d60c\"\u003e\u003ccode\u003e4dbd556\u003c/code\u003e\u003c/a\u003e Restructure workflows to have single \u0026quot;status\u0026quot; job (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5670\"\u003e#5670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/f2194cebe377512cb0ade388c62a881a0bcf5d3e\"\u003e\u003ccode\u003ef2194ce\u003c/code\u003e\u003c/a\u003e Increase timeout to reduce flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fdd2df65b763151cccbe669ea9e1c3155efcd\"\u003e\u003ccode\u003e5c8fdd2\u003c/code\u003e\u003c/a\u003e Update dependency org.apache.groovy:groovy to v5.0.6 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5659\"\u003e#5659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/43c6982324602582902c9bdb213fd5e007f9cf3d\"\u003e\u003ccode\u003e43c6982\u003c/code\u003e\u003c/a\u003e Update dependency org.slf4j:slf4j-jdk14 to v2.0.18 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5667\"\u003e#5667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jline:jline` from 4.0.10 to 4.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jline/jline3/releases\"\u003eorg.jline:jline's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJLine 4.1.3 is a patch release with important fixes for terminal close handling, raw mode signal behavior, FFM memory management, and shell command argument parsing.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: terminal.close() blocks when pump thread is reading stdin (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1911\"\u003e#1911\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1909\"\u003e#1909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: clear ISIG in enterRawMode so Ctrl+C reaches raw-mode readers (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1912\"\u003e#1912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use confined arenas instead of auto arenas in FFM CLibrary (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1913\"\u003e#1913\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1872\"\u003e#1872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: swap rows/columns in openpty winsize constructor call (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1914\"\u003e#1914\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1910\"\u003e#1910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: fix command argument parsing in DefaultCommandDispatcher (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: add OSS AI helper rules for project conventions (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1917\"\u003e#1917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Bump org.graalvm.buildtools:native-maven-plugin from 1.1.0 to 1.1.1 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1915\"\u003e#1915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.5 to 3.5.6 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Bump com.diffplug.spotless:spotless-maven-plugin from 3.5.1 to 3.6.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jline/jline3/compare/4.1.2...4.1.3\"\u003ehttps://github.com/jline/jline3/compare/4.1.2...4.1.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJLine 4.1.2 is a patch release focused on correctness fixes across the parser, terminal I/O, and shell modules.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: echo preserves backslash before unrecognised escape sequences (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1901\"\u003e#1901\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1863\"\u003e#1863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: DefaultParser preserves backslashes inside quotes (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1902\"\u003e#1902\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1877\"\u003e#1877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: NonBlockingInputStream keeps thread alive after EOF (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1903\"\u003e#1903\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: ensure cursor position after alternate screen init (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1904\"\u003e#1904\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use parser for command argument splitting (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1907\"\u003e#1907\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1876\"\u003e#1876\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Bump eu.maveniverse.maven.nisse:extension from 0.9.1 to 0.9.2 (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1905\"\u003e#1905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jline/jline3/compare/4.1.1...4.1.2\"\u003ehttps://github.com/jline/jline3/compare/4.1.1...4.1.2\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJLine 4.1.1 is a patch release focused on stability fixes. The most notable change corrects the POSIX raw mode defaults (VMIN/VTIME) in \u003ccode\u003eenterRawMode\u003c/code\u003e, which could cause shell REPL sessions to hang or malfunction on certain platforms. This release also fixes a Display bug where the internal line buffer could alias or reject immutable caller-provided lists, hardens signal registration against null returns, and corrects alternate charset handling in ScreenTerminal.\u003c/p\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed Display oldLines being set as possible immutable lists. (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1878\"\u003e#1878\u003c/a\u003e) \u003ca href=\"https://github.com/Elec332\"\u003e\u003ccode\u003e@​Elec332\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use POSIX cfmakeraw defaults (VMIN=1, VTIME=0) in enterRawMode (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1871\"\u003e#1871\u003c/a\u003e) \u003ca href=\"https://github.com/BryanSant\"\u003e\u003ccode\u003e@​BryanSant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip null returns from signal registration in AbstractUnixSysTerminal (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1869\"\u003e#1869\u003c/a\u003e) \u003ca href=\"https://github.com/BryanSant\"\u003e\u003ccode\u003e@​BryanSant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed ScreenTerminal alt-charset (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1867\"\u003e#1867\u003c/a\u003e) \u003ca href=\"https://github.com/Elec332\"\u003e\u003ccode\u003e@​Elec332\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Bump com.palantir.javaformat:palantir-java-format from 2.90.0 to 2.91.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1898\"\u003e#1898\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/7f44a23f0da569e33fe9a632e982f94274bfb25d\"\u003e\u003ccode\u003e7f44a23\u003c/code\u003e\u003c/a\u003e fix: fix command argument parsing in DefaultCommandDispatcher (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/911e3d6d3101858629b9d8f74752d8b09475b65f\"\u003e\u003ccode\u003e911e3d6\u003c/code\u003e\u003c/a\u003e chore: Bump com.diffplug.spotless:spotless-maven-plugin from 3.5.1 to 3.6.0 (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/15cdac548ce65afdad84d15096d8e5183b1a8577\"\u003e\u003ccode\u003e15cdac5\u003c/code\u003e\u003c/a\u003e chore: Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.5 to 3.5....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/2d3e1ffee5d895f0c407d838bf54da924640af4f\"\u003e\u003ccode\u003e2d3e1ff\u003c/code\u003e\u003c/a\u003e chore: Bump org.graalvm.buildtools:native-maven-plugin from 1.1.0 to 1.1.1 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/0ac019ab8c44da3ae4ee47bccd216791e6ccb35d\"\u003e\u003ccode\u003e0ac019a\u003c/code\u003e\u003c/a\u003e fix: terminal.close() blocks when pump thread is reading stdin (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1911\"\u003e#1911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/1d637408d2cdd479a5abede3ce88710be3e611ae\"\u003e\u003ccode\u003e1d63740\u003c/code\u003e\u003c/a\u003e fix: use confined arenas instead of auto arenas in FFM CLibrary (fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1872\"\u003e#1872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/1604643d04a6ae56fdd6758757c18e968c7ff59d\"\u003e\u003ccode\u003e1604643\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1912\"\u003e#1912\u003c/a\u003e from jline/dot-tarragon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/147ee9c7024af2caed1a306e48fd236beef475df\"\u003e\u003ccode\u003e147ee9c\u003c/code\u003e\u003c/a\u003e chore: add OSS AI helper rules for project conventions (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1917\"\u003e#1917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/1735c1f2a22808a1a3d7837db0eca9714a66f4e8\"\u003e\u003ccode\u003e1735c1f\u003c/code\u003e\u003c/a\u003e fix: swap rows/columns in openpty winsize constructor call (fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1910\"\u003e#1910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/d9f6b86589760807162862d289685ea7673f0e41\"\u003e\u003ccode\u003ed9f6b86\u003c/code\u003e\u003c/a\u003e fix: add PromptCancelTest from \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1908\"\u003e#1908\u003c/a\u003e with timeout and fixture patterns\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jline/jline3/compare/4.0.10...4.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.guava:guava` from 33.5.0-jre to 33.6.0-jre\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/guava/releases\"\u003ecom.google.guava:guava's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e33.6.0\u003c/h2\u003e\n\u003ch3\u003eMaven\u003c/h3\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e\u0026lt;dependency\u0026gt;\r\n  \u0026lt;groupId\u0026gt;com.google.guava\u0026lt;/groupId\u0026gt;\r\n  \u0026lt;artifactId\u0026gt;guava\u0026lt;/artifactId\u0026gt;\r\n  \u0026lt;version\u0026gt;33.6.0-jre\u0026lt;/version\u0026gt;\r\n  \u0026lt;!-- or, for Android: --\u0026gt;\r\n  \u0026lt;version\u0026gt;33.6.0-android\u0026lt;/version\u0026gt;\r\n\u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eJar files\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\"\u003e33.6.0-jre.jar\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/guava/33.6.0-android/guava-33.6.0-android.jar\"\u003e33.6.0-android.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGuava requires \u003ca href=\"https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies\"\u003eone runtime dependency\u003c/a\u003e, which you can download here:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\"\u003efailureaccess-1.0.3.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavadoc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-jre/api/docs/\"\u003e33.6.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/docs/\"\u003e33.6.0-android\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJDiff\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-jre/api/diffs/\"\u003e33.6.0-jre vs. 33.5.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/diffs/\"\u003e33.6.0-android vs. 33.5.0-android\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/androiddiffs/\"\u003e33.6.0-android vs. 33.6.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated some classes from \u003ccode\u003efinalize()\u003c/code\u003e to \u003ccode\u003ePhantomReference\u003c/code\u003e in preparation for \u003ca href=\"https://openjdk.org/jeps/421\"\u003ethe removal of finalization\u003c/a\u003e. (786b619dd6, 7c6b17c, aeef90988d)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecache\u003c/code\u003e: Deprecated \u003ccode\u003eCacheBuilder\u003c/code\u003e APIs that use \u003ccode\u003eTimeUnit\u003c/code\u003e in favor of those that use \u003ccode\u003eDuration\u003c/code\u003e. (73f8b0bb84)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Added \u003ccode\u003etoImmutableSortedMap\u003c/code\u003e collectors that use the natural comparator. (64d70b9f94)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Changed \u003ccode\u003eConcurrentHashMultiset\u003c/code\u003e, \u003ccode\u003eImmutableMap\u003c/code\u003e and \u003ccode\u003eTreeMultiset\u003c/code\u003e deserialization to \u003ca href=\"https://openjdk.org/jeps/500\"\u003eavoid mutating \u003ccode\u003efinal\u003c/code\u003e fields\u003c/a\u003e. In extremely unlikely scenarios in which an instance of that type contains an object that refers back to that instance, this could lead to \u003ca href=\"https://docs.oracle.com/en/java/javase/26/docs/specs/serialization/input.html#the-readresolve-method:~:text=in%20cases%20where%20an%20object%20being%20serialized%20nominates%20a%20replacement%20object%20whose%20object%20graph%20has%20a%20reference%20to%20the%20original%20object\"\u003ea broken instance\u003c/a\u003e that throws \u003ccode\u003eNullPointerException\u003c/code\u003e when used. (8240c7e596, 046468055f)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Removed \u003ccode\u003e@Beta\u003c/code\u003e from all APIs in the package. (dae9566b73)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Added support to \u003ccode\u003eGraphs.transitiveClosure()\u003c/code\u003e for different strategies for adding self-loops. (2e13df25b2)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Added an \u003ccode\u003easNetwork()\u003c/code\u003e view to \u003ccode\u003eGraph\u003c/code\u003e and \u003ccode\u003eValueGraph\u003c/code\u003e. (909c593c61)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehash\u003c/code\u003e: Added \u003ccode\u003eBloomFilter.serializedSize()\u003c/code\u003e. (df9bcc251a)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enet\u003c/code\u003e: Added \u003ccode\u003eHttpHeaders.CDN_CACHE_CONTROL\u003c/code\u003e. (75331b5030)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/google/guava/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.maven.plugins:maven-surefire-plugin` from 3.5.5 to 3.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/maven-surefire/releases\"\u003eorg.apache.maven.plugins:maven-surefire-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.6\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e🚀 New features and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce reportTestTimestamp option and include timestamp for test sets and test cases (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3261\"\u003e#3261\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3302\"\u003e#3302\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue \u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/2613\"\u003e#2613\u003c/a\u003e Debugging failsafe tests: Message 'Listening for transport dt_socket at address' is not displayed anymore when using maven.surefire.debug (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3353\"\u003e#3353\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3354\"\u003e#3354\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure that the statistics filename is calculated only once. (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3326\"\u003e#3326\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3327\"\u003e#3327\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eflakes\u003c/code\u003e attribute to use in \u003ccode\u003etestsuite\u003c/code\u003e report (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3306\"\u003e#3306\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3308\"\u003e#3308\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[BACKPORT 3.5.x] \u003ca href=\"https://issues.apache.org/jira/browse/SUREFIRE-2049\"\u003e[SUREFIRE-2049]\u003c/a\u003e - Fix SHUTDOWN type lost during command serialization. (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3270\"\u003e#3270\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3289\"\u003e#3289\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: null guard for context map (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3269\"\u003e#3269\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3272\"\u003e#3272\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👻 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e3.5.x/bug/cherry pick embedded mode its (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3328\"\u003e#3328\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse surefire 3.5.5 by project itself for testing (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3324\"\u003e#3324\u003c/a\u003e) \u003ca href=\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFollow Oracle javadoc guidelines (\u003ca href=\"htt...\n\n_Description has been truncated_","html_url":"https://github.com/MatthewOsorio/ai-job-hunter/pull/35","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatthewOsorio%2Fai-job-hunter/issues/35","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/35/packages"},{"uuid":"4553577478","node_id":"PR_kwDOSrKG-87g54qi","number":6,"state":"open","title":"chore(deps): bump the minor-and-patch group with 30 updates","user":"dependabot[bot]","labels":["size/S"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-30T06:37:29.000Z","updated_at":"2026-05-30T06:37:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":30,"packages":[{"name":"org.jetbrains.kotlin:kotlin-gradle-plugin","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-stdlib","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-stdlib-jdk7","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-stdlib-jdk8","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-reflect","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-bom","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.gms:google-services","old_version":"4.4.2","new_version":"4.4.4"},{"name":"androidx.camera:camera-core","old_version":"1.3.4","new_version":"1.6.1"},{"name":"androidx.camera:camera-camera2","old_version":"1.3.4","new_version":"1.6.1"},{"name":"androidx.camera:camera-lifecycle","old_version":"1.3.4","new_version":"1.6.1"},{"name":"androidx.camera:camera-view","old_version":"1.3.4","new_version":"1.6.1"},{"name":"androidx.appcompat:appcompat","old_version":"1.7.0","new_version":"1.7.1"},{"name":"androidx.browser:browser","old_version":"1.8.0","new_version":"1.10.0"},{"name":"androidx.startup:startup-runtime","old_version":"1.1.1","new_version":"1.2.0"},{"name":"com.google.android.material:material","old_version":"1.12.0","new_version":"1.14.0","repository_url":"https://github.com/material-components/material-components-android"},{"name":"androidx.constraintlayout:constraintlayout","old_version":"2.1.4","new_version":"2.2.1"},{"name":"androidx.recyclerview:recyclerview","old_version":"1.3.2","new_version":"1.4.0"},{"name":"com.github.li-xiaojun:XPopup","old_version":"2.9.19","new_version":"2.10.0"},{"name":"com.github.bumptech.glide:glide","old_version":"5.0.5","new_version":"5.0.7","repository_url":"https://github.com/bumptech/glide"},{"name":"com.squareup.okhttp3:okhttp","old_version":"5.1.0","new_version":"5.3.2","repository_url":"https://github.com/square/okhttp"},{"name":"io.reactivex.rxjava3:rxjava","old_version":"3.1.11","new_version":"3.1.12","repository_url":"https://github.com/ReactiveX/RxJava"},{"name":"com.vanniktech:android-image-cropper","old_version":"4.6.0","new_version":"4.7.0","repository_url":"https://github.com/CanHub/Android-Image-Cropper"},{"name":"org.jsoup:jsoup","old_version":"1.21.2","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-core","old_version":"1.10.2","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"com.github.CarGuo.GSYVideoPlayer:gsyvideoplayer","old_version":"v10.0.0","new_version":"v10.2.1","repository_url":"https://github.com/CarGuo/GSYVideoPlayer"},{"name":"com.airbnb.android:lottie","old_version":"6.6.2","new_version":"6.7.1","repository_url":"https://github.com/airbnb/lottie-android"},{"name":"com.google.code.gson:gson","old_version":"2.8.9","new_version":"2.14.0","repository_url":"https://github.com/google/gson"},{"name":"com.github.jenly1314:zxing-lite","old_version":"3.2.0","new_version":"3.4.1","repository_url":"https://github.com/jenly1314/ZXingLite"},{"name":"net.zetetic:sqlcipher-android","old_version":"4.9.0","new_version":"4.16.0","repository_url":"https://github.com/sqlcipher/sqlcipher-android"},{"name":"androidx.sqlite:sqlite-ktx","old_version":"2.5.1","new_version":"2.6.2"}],"path":null,"ecosystem":"maven"},"body":"Bumps the minor-and-patch group with 30 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| [org.jetbrains.kotlin:kotlin-stdlib-jdk7](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| [org.jetbrains.kotlin:kotlin-stdlib-jdk8](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| [org.jetbrains.kotlin:kotlin-reflect](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| [org.jetbrains.kotlin:kotlin-bom](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| com.google.gms:google-services | `4.4.2` | `4.4.4` |\n| androidx.camera:camera-core | `1.3.4` | `1.6.1` |\n| androidx.camera:camera-camera2 | `1.3.4` | `1.6.1` |\n| androidx.camera:camera-lifecycle | `1.3.4` | `1.6.1` |\n| androidx.camera:camera-view | `1.3.4` | `1.6.1` |\n| androidx.appcompat:appcompat | `1.7.0` | `1.7.1` |\n| androidx.browser:browser | `1.8.0` | `1.10.0` |\n| androidx.startup:startup-runtime | `1.1.1` | `1.2.0` |\n| [com.google.android.material:material](https://github.com/material-components/material-components-android) | `1.12.0` | `1.14.0` |\n| androidx.constraintlayout:constraintlayout | `2.1.4` | `2.2.1` |\n| androidx.recyclerview:recyclerview | `1.3.2` | `1.4.0` |\n| com.github.li-xiaojun:XPopup | `2.9.19` | `2.10.0` |\n| [com.github.bumptech.glide:glide](https://github.com/bumptech/glide) | `5.0.5` | `5.0.7` |\n| [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) | `5.1.0` | `5.3.2` |\n| [io.reactivex.rxjava3:rxjava](https://github.com/ReactiveX/RxJava) | `3.1.11` | `3.1.12` |\n| [com.vanniktech:android-image-cropper](https://github.com/CanHub/Android-Image-Cropper) | `4.6.0` | `4.7.0` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.21.2` | `1.22.2` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-core](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` |\n| [com.github.CarGuo.GSYVideoPlayer:gsyvideoplayer](https://github.com/CarGuo/GSYVideoPlayer) | `v10.0.0` | `v10.2.1` |\n| [com.airbnb.android:lottie](https://github.com/airbnb/lottie-android) | `6.6.2` | `6.7.1` |\n| [com.google.code.gson:gson](https://github.com/google/gson) | `2.8.9` | `2.14.0` |\n| [com.github.jenly1314:zxing-lite](https://github.com/jenly1314/ZXingLite) | `3.2.0` | `3.4.1` |\n| [net.zetetic:sqlcipher-android](https://github.com/sqlcipher/sqlcipher-android) | `4.9.0` | `4.16.0` |\n| androidx.sqlite:sqlite-ktx | `2.5.1` | `2.6.2` |\n\nUpdates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85628\"\u003e\u003ccode\u003eKT-85628\u003c/code\u003e\u003c/a\u003e KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/fea1ad8c18995b80d1ca0e3917056104613d23db\"\u003e\u003ccode\u003efea1ad8\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.3.21-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/09c341e858b8f70d92955fc6b67d6a04962760b4\"\u003e\u003ccode\u003e09c341e\u003c/code\u003e\u003c/a\u003e disable swift export execution tests in order to update macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/67a08681cdd53b318217e6f35d835e0ab3b2e31c\"\u003e\u003ccode\u003e67a0868\u003c/code\u003e\u003c/a\u003e Avoid accessing KotlinNativeLink taskProvider when task was not executed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/f89e5dbc1867714116e17be1066d6c68e30cc2d4\"\u003e\u003ccode\u003ef89e5db\u003c/code\u003e\u003c/a\u003e [K/N] Disable TSAN in runtime tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/45d6c859c027c4e82b14b4861e36bc125600e2b0\"\u003e\u003ccode\u003e45d6c85\u003c/code\u003e\u003c/a\u003e [K/N] Don't generate generic safe casts for Objective-C types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9261a6f0790b7504e0223e9e0a0dd242fe0cc3f7\"\u003e\u003ccode\u003e9261a6f\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85508\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/c9ab9db37a191f2eb1ce0f5b7ff502ca9d4b3a0d\"\u003e\u003ccode\u003ec9ab9db\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85399\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/502e84484e520fbe1a93958be8da97e06a04d7ed\"\u003e\u003ccode\u003e502e844\u003c/code\u003e\u003c/a\u003e Explain: fix for destructuring declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0c26485d83f532aa8afbb868895061b7132fd7c8\"\u003e\u003ccode\u003e0c26485\u003c/code\u003e\u003c/a\u003e Explain: fix for object literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/68a9e3f99fcd59c5440970f5f34aff09ce462a69\"\u003e\u003ccode\u003e68a9e3f\u003c/code\u003e\u003c/a\u003e [minor] fix testdata name in explain test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.3.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-stdlib` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-stdlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-stdlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85628\"\u003e\u003ccode\u003eKT-85628\u003c/code\u003e\u003c/a\u003e KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/fea1ad8c18995b80d1ca0e3917056104613d23db\"\u003e\u003ccode\u003efea1ad8\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.3.21-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/09c341e858b8f70d92955fc6b67d6a04962760b4\"\u003e\u003ccode\u003e09c341e\u003c/code\u003e\u003c/a\u003e disable swift export execution tests in order to update macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/67a08681cdd53b318217e6f35d835e0ab3b2e31c\"\u003e\u003ccode\u003e67a0868\u003c/code\u003e\u003c/a\u003e Avoid accessing KotlinNativeLink taskProvider when task was not executed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/f89e5dbc1867714116e17be1066d6c68e30cc2d4\"\u003e\u003ccode\u003ef89e5db\u003c/code\u003e\u003c/a\u003e [K/N] Disable TSAN in runtime tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/45d6c859c027c4e82b14b4861e36bc125600e2b0\"\u003e\u003ccode\u003e45d6c85\u003c/code\u003e\u003c/a\u003e [K/N] Don't generate generic safe casts for Objective-C types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9261a6f0790b7504e0223e9e0a0dd242fe0cc3f7\"\u003e\u003ccode\u003e9261a6f\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85508\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/c9ab9db37a191f2eb1ce0f5b7ff502ca9d4b3a0d\"\u003e\u003ccode\u003ec9ab9db\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85399\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/502e84484e520fbe1a93958be8da97e06a04d7ed\"\u003e\u003ccode\u003e502e844\u003c/code\u003e\u003c/a\u003e Explain: fix for destructuring declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0c26485d83f532aa8afbb868895061b7132fd7c8\"\u003e\u003ccode\u003e0c26485\u003c/code\u003e\u003c/a\u003e Explain: fix for object literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/68a9e3f99fcd59c5440970f5f34aff09ce462a69\"\u003e\u003ccode\u003e68a9e3f\u003c/code\u003e\u003c/a\u003e [minor] fix testdata name in explain test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.3.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-stdlib-jdk7` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-stdlib-jdk7's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-stdlib-jdk7's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85628\"\u003e\u003ccode\u003eKT-85628\u003c/code\u003e\u003c/a\u003e KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/fea1ad8c18995b80d1ca0e3917056104613d23db\"\u003e\u003ccode\u003efea1ad8\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.3.21-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/09c341e858b8f70d92955fc6b67d6a04962760b4\"\u003e\u003ccode\u003e09c341e\u003c/code\u003e\u003c/a\u003e disable swift export execution tests in order to update macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/67a08681cdd53b318217e6f35d835e0ab3b2e31c\"\u003e\u003ccode\u003e67a0868\u003c/code\u003e\u003c/a\u003e Avoid accessing KotlinNativeLink taskProvider when task was not executed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/f89e5dbc1867714116e17be1066d6c68e30cc2d4\"\u003e\u003ccode\u003ef89e5db\u003c/code\u003e\u003c/a\u003e [K/N] Disable TSAN in runtime tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/45d6c859c027c4e82b14b4861e36bc125600e2b0\"\u003e\u003ccode\u003e45d6c85\u003c/code\u003e\u003c/a\u003e [K/N] Don't generate generic safe casts for Objective-C types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9261a6f0790b7504e0223e9e0a0dd242fe0cc3f7\"\u003e\u003ccode\u003e9261a6f\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85508\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/c9ab9db37a191f2eb1ce0f5b7ff502ca9d4b3a0d\"\u003e\u003ccode\u003ec9ab9db\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85399\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/502e84484e520fbe1a93958be8da97e06a04d7ed\"\u003e\u003ccode\u003e502e844\u003c/code\u003e\u003c/a\u003e Explain: fix for destructuring declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0c26485d83f532aa8afbb868895061b7132fd7c8\"\u003e\u003ccode\u003e0c26485\u003c/code\u003e\u003c/a\u003e Explain: fix for object literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/68a9e3f99fcd59c5440970f5f34aff09ce462a69\"\u003e\u003ccode\u003e68a9e3f\u003c/code\u003e\u003c/a\u003e [minor] fix testdata name in explain test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.3.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-stdlib-jdk8` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-stdlib-jdk8's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-stdlib-jdk8's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85628\"\u003e\u003ccode\u003eKT-85628\u003c/code\u003e\u003c/a\u003e KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/fea1ad8c18995b80d1ca0e3917056104613d23db\"\u003e\u003ccode\u003efea1ad8\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.3.21-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/09c341e858b8f70d92955fc6b67d6a04962760b4\"\u003e\u003ccode\u003e09c341e\u003c/code\u003e\u003c/a\u003e disable swift export execution tests in order to update macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/67a08681cdd53b318217e6f35d835e0ab3b2e31c\"\u003e\u003ccode\u003e67a0868\u003c/code\u003e\u003c/a\u003e Avoid accessing KotlinNativeLink taskProvider when task was not executed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/f89e5dbc1867714116e17be1066d6c68e30cc2d4\"\u003e\u003ccode\u003ef89e5db\u003c/code\u003e\u003c/a\u003e [K/N] Disable TSAN in runtime tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/45d6c859c027c4e82b14b4861e36bc125600e2b0\"\u003e\u003ccode\u003e45d6c85\u003c/code\u003e\u003c/a\u003e [K/N] Don't generate generic safe casts for Objective-C types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9261a6f0790b7504e0223e9e0a0dd242fe0cc3f7\"\u003e\u003ccode\u003e9261a6f\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85508\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/c9ab9db37a191f2eb1ce0f5b7ff502ca9d4b3a0d\"\u003e\u003ccode\u003ec9ab9db\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85399\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/502e84484e520fbe1a93958be8da97e06a04d7ed\"\u003e\u003ccode\u003e502e844\u003c/code\u003e\u003c/a\u003e Explain: fix for destructuring declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0c26485d83f532aa8afbb868895061b7132fd7c8\"\u003e\u003ccode\u003e0c26485\u003c/code\u003e\u003c/a\u003e Explain: fix for object literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/68a9e3f99fcd59c5440970f5f34aff09ce462a69\"\u003e\u003ccode\u003e68a9e3f\u003c/code\u003e\u003c/a\u003e [minor] fix testdata name in explain test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.3.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-reflect` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-reflect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-reflect's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85628\"\u003e\u003ccode\u003eKT-85628\u003c/code\u003e\u003c/a\u003e KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/fea1ad8c18995b80d1ca0e3917056104613d23db\"\u003e\u003ccode\u003efea1ad8\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.3.21-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/09c341e858b8f70d92955fc6b67d6a04962760b4\"\u003e\u003ccode\u003e09c341e\u003c/code\u003e\u003c/a\u003e disable swift export execution tests in order to update macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/67a08681cdd53b318217e6f35d835e0ab3b2e31c\"\u003e\u003ccode\u003e67a0868\u003c/code\u003e\u003c/a\u003e Avoid accessing KotlinNativeLink taskProvider when task was not executed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/f89e5dbc1867714116e17be1066d6c68e30cc2d4\"\u003e\u003ccode\u003ef89e5db\u003c/code\u003e\u003c/a\u003e [K/N] Disable TSAN in runtime tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/45d6c859c027c4e82b14b4861e36bc125600e2b0\"\u003e\u003ccode\u003e45d6c85\u003c/code\u003e\u003c/a\u003e [K/N] Don't generate generic safe casts for Objective-C types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9261a6f0790b7504e0223e9e0a0dd242fe0cc3f7\"\u003e\u003ccode\u003e9261a6f\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85508\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/c9ab9db37a191f2eb1ce0f5b7ff502ca9d4b3a0d\"\u003e\u003ccode\u003ec9ab9db\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85399\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/502e84484e520fbe1a93958be8da97e06a04d7ed\"\u003e\u003ccode\u003e502e844\u003c/code\u003e\u003c/a\u003e Explain: fix for destructuring declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0c26485d83f532aa8afbb868895061b7132fd7c8\"\u003e\u003ccode\u003e0c26485\u003c/code\u003e\u003c/a\u003e Explain: fix for object literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/68a9e3f99fcd59c5440970f5f34aff09ce462a69\"\u003e\u003ccode\u003e68a9e3f\u003c/code\u003e\u003c/a\u003e [minor] fix testdata name in explain test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.3.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-bom` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-bom's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-bom's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error lo...\n\n_Description has been truncated_","html_url":"https://github.com/Mininglamp-OSS/octo-android/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mininglamp-OSS%2Focto-android/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"4536269037","node_id":"PR_kwDOSpGRQM7gBUbg","number":12,"state":"closed","title":"build: bump the gradle-minor-patch group across 1 directory with 35 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-28T00:29:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-27T22:48:29.000Z","updated_at":"2026-05-28T00:29:50.000Z","time_to_close":6071,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build: bump","group_name":"gradle-minor-patch","update_count":35,"packages":[{"name":"gradle-wrapper","old_version":"8.11.1","new_version":"8.14.5","repository_url":"https://github.com/gradle/gradle"},{"name":"androidx.core:core-ktx","old_version":"1.15.0","new_version":"1.18.0"},{"name":"androidx.lifecycle:lifecycle-runtime-ktx","old_version":"2.8.7","new_version":"2.10.0"},{"name":"androidx.activity:activity-compose","old_version":"1.9.3","new_version":"1.13.0"},{"name":"androidx.navigation:navigation-compose","old_version":"2.8.5","new_version":"2.9.8"},{"name":"androidx.lifecycle:lifecycle-viewmodel-compose","old_version":"2.8.7","new_version":"2.10.0"},{"name":"androidx.lifecycle:lifecycle-runtime-compose","old_version":"2.8.7","new_version":"2.10.0"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-test","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"io.ktor:ktor-server-core","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.ktor:ktor-server-cio","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.ktor:ktor-server-html-builder","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.ktor:ktor-server-content-negotiation","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.ktor:ktor-serialization-kotlinx-json","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.ktor:ktor-server-test-host","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"org.jsoup:jsoup","old_version":"1.18.3","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"androidx.test.ext:junit","old_version":"1.2.1","new_version":"1.3.0"},{"name":"androidx.test.espresso:espresso-core","old_version":"3.6.1","new_version":"3.7.0"},{"name":"androidx.datastore:datastore","old_version":"1.1.1","new_version":"1.2.1"},{"name":"androidx.datastore:datastore-preferences","old_version":"1.1.1","new_version":"1.2.1"},{"name":"androidx.room:room-runtime","old_version":"2.6.1","new_version":"2.8.4"},{"name":"androidx.room:room-ktx","old_version":"2.6.1","new_version":"2.8.4"},{"name":"androidx.room:room-compiler","old_version":"2.6.1","new_version":"2.8.4"},{"name":"androidx.room:room-testing","old_version":"2.6.1","new_version":"2.8.4"},{"name":"net.zetetic:sqlcipher-android","old_version":"4.6.1","new_version":"4.16.0","repository_url":"https://github.com/sqlcipher/sqlcipher-android"},{"name":"androidx.sqlite:sqlite","old_version":"2.4.0","new_version":"2.6.2"},{"name":"com.lambdapioneer.argon2kt:argon2kt","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/lambdapioneer/argon2kt"},{"name":"org.robolectric:robolectric","old_version":"4.13","new_version":"4.16.1","repository_url":"https://github.com/robolectric/robolectric"},{"name":"androidx.test:core","old_version":"1.6.1","new_version":"1.7.0"},{"name":"com.android.application","old_version":"8.7.3","new_version":"8.13.2"},{"name":"org.jetbrains.kotlin.android","old_version":"2.0.21","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.0.21","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.0.21","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jlleitschuh.gradle.ktlint","old_version":"12.1.1","new_version":"12.3.0"},{"name":"com.google.devtools.ksp","old_version":"2.0.21-1.0.28","new_version":"2.3.9","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-minor-patch group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `8.11.1` | `8.14.5` |\n| androidx.core:core-ktx | `1.15.0` | `1.18.0` |\n| androidx.lifecycle:lifecycle-runtime-ktx | `2.8.7` | `2.10.0` |\n| androidx.activity:activity-compose | `1.9.3` | `1.13.0` |\n| androidx.navigation:navigation-compose | `2.8.5` | `2.9.8` |\n| androidx.lifecycle:lifecycle-viewmodel-compose | `2.8.7` | `2.10.0` |\n| androidx.lifecycle:lifecycle-runtime-compose | `2.8.7` | `2.10.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.9.0` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-test](https://github.com/Kotlin/kotlinx.coroutines) | `1.9.0` | `1.11.0` |\n| [io.ktor:ktor-server-core](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [io.ktor:ktor-server-cio](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [io.ktor:ktor-server-html-builder](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [io.ktor:ktor-server-content-negotiation](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [io.ktor:ktor-server-test-host](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.18.3` | `1.22.2` |\n| androidx.test.ext:junit | `1.2.1` | `1.3.0` |\n| androidx.test.espresso:espresso-core | `3.6.1` | `3.7.0` |\n| androidx.datastore:datastore | `1.1.1` | `1.2.1` |\n| androidx.datastore:datastore-preferences | `1.1.1` | `1.2.1` |\n| androidx.room:room-runtime | `2.6.1` | `2.8.4` |\n| androidx.room:room-ktx | `2.6.1` | `2.8.4` |\n| androidx.room:room-compiler | `2.6.1` | `2.8.4` |\n| androidx.room:room-testing | `2.6.1` | `2.8.4` |\n| [net.zetetic:sqlcipher-android](https://github.com/sqlcipher/sqlcipher-android) | `4.6.1` | `4.16.0` |\n| androidx.sqlite:sqlite | `2.4.0` | `2.6.2` |\n| [com.lambdapioneer.argon2kt:argon2kt](https://github.com/lambdapioneer/argon2kt) | `1.5.0` | `1.6.0` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.13` | `4.16.1` |\n| androidx.test:core | `1.6.1` | `1.7.0` |\n| com.android.application | `8.7.3` | `8.13.2` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.21` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.21` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.21` |\n| org.jlleitschuh.gradle.ktlint | `12.1.1` | `12.3.0` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.0.21-1.0.28` | `2.3.9` |\n\n\nUpdates `gradle-wrapper` from 8.11.1 to 8.14.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.14.5\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 8.14.5.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJava 24 support\u003c/li\u003e\n\u003cli\u003eGraalVM Native Image toolchain selection\u003c/li\u003e\n\u003cli\u003eEnhancements to test reporting\u003c/li\u003e\n\u003cli\u003eBuild Authoring improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/8.14.5/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/liutikas\"\u003eAurimas\u003c/a\u003e,\n\u003ca href=\"https://github.com/benjamin-bader\"\u003eBen Bader\u003c/a\u003e,\n\u003ca href=\"https://github.com/Vampire\"\u003eBjörn Kautler\u003c/a\u003e,\n\u003ca href=\"https://github.com/chandre92\"\u003echandre92\u003c/a\u003e,\n\u003ca href=\"https://github.com/dlehammer\"\u003eDaniel Hammer\u003c/a\u003e,\n\u003ca href=\"https://github.com/danishnawab\"\u003eDanish Nawab\u003c/a\u003e,\n\u003ca href=\"https://github.com/DreierF\"\u003eFlorian Dreier\u003c/a\u003e,\n\u003ca href=\"https://github.com/Mengmeiivy\"\u003eIvy Chen\u003c/a\u003e,\n\u003ca href=\"https://github.com/jjohannes\"\u003eJendrik Johannes\u003c/a\u003e,\n\u003ca href=\"https://github.com/jimmy1995-gu\"\u003ejimmy1995-gu\u003c/a\u003e,\n\u003ca href=\"https://github.com/vmadalin\"\u003eMadalin Valceleanu\u003c/a\u003e,\n\u003ca href=\"https://github.com/NaMinhyeok\"\u003eNa Minhyeok\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 8.14.5 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew wrapper --gradle-version=8.14.5 \u0026amp;\u0026amp; ./gradlew wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/8.14.5/userguide/upgrading_version_8.html\"\u003e8.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/8.14.5/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e8.14.4\u003c/h2\u003e\n\u003cp\u003eThis is a patch release for 8.14. We recommend using 8.14.4 instead of 8.14.\u003c/p\u003e\n\u003cp\u003eThis release addresses two security vulnerabilities:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/security/advisories/GHSA-mqwm-5m85-gmcv\"\u003eFailure to disable repositories failing to answer can expose builds to malicious artifacts\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/security/advisories/GHSA-w78c-w6vf-rw82\"\u003eFailure to disable repositories with unknown host can expose builds to malicious artifacts\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/62345becae08b13e793521816d585102fea66398\"\u003e\u003ccode\u003e62345be\u003c/code\u003e\u003c/a\u003e Finalize release notes for 8.14.5 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37829\"\u003e#37829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/38049c286691bf85cee542f8b2f8dc1cc54dd25d\"\u003e\u003ccode\u003e38049c2\u003c/code\u003e\u003c/a\u003e Finalize release notes for 8.14.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f3781397d4ad84fcc034f239efe7dc350f564741\"\u003e\u003ccode\u003ef378139\u003c/code\u003e\u003c/a\u003e Update jdks.yaml (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37780\"\u003e#37780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/4e739b5959a5b0f1c5962cd387143c91b27343d3\"\u003e\u003ccode\u003e4e739b5\u003c/code\u003e\u003c/a\u003e Update jdks.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/d94136aadaa292280b860e5032e7dddc6e116112\"\u003e\u003ccode\u003ed94136a\u003c/code\u003e\u003c/a\u003e Update jdks.yaml (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37704\"\u003e#37704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/a2f6942e453c80634fca32ba0e11a9ce8b7baf48\"\u003e\u003ccode\u003ea2f6942\u003c/code\u003e\u003c/a\u003e Update jdks.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/28df2639ea8752218176288ef6a9e678c779f73b\"\u003e\u003ccode\u003e28df263\u003c/code\u003e\u003c/a\u003e Backport exclude bugfix (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37559\"\u003e#37559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/e03dca12e7b77f5f6ec00f7d81eb8734f7596d52\"\u003e\u003ccode\u003ee03dca1\u003c/code\u003e\u003c/a\u003e Upgrade BouncyCastle to 1.84 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37656\"\u003e#37656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/987d1a32e4f3d97b14413e9ee2742df820ec6beb\"\u003e\u003ccode\u003e987d1a3\u003c/code\u003e\u003c/a\u003e Bump the Jackson version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/56e392c0f0b9f16bcba1c03f7bd0bae08a82556a\"\u003e\u003ccode\u003e56e392c\u003c/code\u003e\u003c/a\u003e Bump Bouncycastle to 1.84\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v8.11.1...v8.14.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.core:core-ktx` from 1.15.0 to 1.18.0\n\nUpdates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.8.7 to 2.10.0\n\nUpdates `androidx.activity:activity-compose` from 1.9.3 to 1.13.0\n\nUpdates `androidx.navigation:navigation-compose` from 2.8.5 to 2.9.8\n\nUpdates `androidx.lifecycle:lifecycle-viewmodel-compose` from 2.8.7 to 2.10.0\n\nUpdates `androidx.lifecycle:lifecycle-runtime-compose` from 2.8.7 to 2.10.0\n\nUpdates `androidx.lifecycle:lifecycle-runtime-compose` from 2.8.7 to 2.10.0\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-test` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-test` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.ktor:ktor-server-core` from 3.0.3 to 3.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/releases\"\u003eio.ktor:ktor-server-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 14 May 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8421\"\u003eKTOR-8421\u003c/a\u003e Route.contentType should support multiple ContentType\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7961\"\u003eKTOR-7961\u003c/a\u003e Add known TDM headers to the HttpHeaders object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9418\"\u003eKTOR-9418\u003c/a\u003e Support getAs from the root ApplicationConfig\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9559\"\u003eKTOR-9559\u003c/a\u003e DNS configuration for the Apache5 client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9554\"\u003eKTOR-9554\u003c/a\u003e DNS configuration for OkHttp client engine\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9555\"\u003eKTOR-9555\u003c/a\u003e Custom SSE heartbeat function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8914\"\u003eKTOR-8914\u003c/a\u003e Dependency injection: read annotations in function references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8300\"\u003eKTOR-8300\u003c/a\u003e Sessions: Add a way to create a user session shared for all user devices or look up sessions of the same user\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9521\"\u003eKTOR-9521\u003c/a\u003e Upgrade to Kotlin 2.3.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9276\"\u003eKTOR-9276\u003c/a\u003e Make DynamicProviderConfig.authenticateFunction suspend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9491\"\u003eKTOR-9491\u003c/a\u003e Provide parameter validation convenience functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9506\"\u003eKTOR-9506\u003c/a\u003e OpenAPI: Support prefixItems in JsonSchema for tuple type definitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-470\"\u003eKTOR-470\u003c/a\u003e Add an option to not resend the session cookie if the session data wasn't changed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9355\"\u003eKTOR-9355\u003c/a\u003e Deprecate HttpHeaders.AcceptCharset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7659\"\u003eKTOR-7659\u003c/a\u003e Make ktor-network compatible with ES modules for nodejs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9350\"\u003eKTOR-9350\u003c/a\u003e JS: Make ES2015 the default target for tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7578\"\u003eKTOR-7578\u003c/a\u003e Update Digest authentication implementation according to RFC 7616\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9503\"\u003eKTOR-9503\u003c/a\u003e The JacksonConverter.streamRequestBody property name is confusing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9552\"\u003eKTOR-9552\u003c/a\u003e Deprecation notice for io.ktor.server.auth.Principal does not explain what to use instead\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7458\"\u003eKTOR-7458\u003c/a\u003e Jetty Jakarta: Provide an easy way to disable SNI hostname validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9354\"\u003eKTOR-9354\u003c/a\u003e Websockets: webSocket builder function should return a Route to be describable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9488\"\u003eKTOR-9488\u003c/a\u003e Nonce and hex function performance optimizations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9524\"\u003eKTOR-9524\u003c/a\u003e Netty response hangs after connection lost\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9542\"\u003eKTOR-9542\u003c/a\u003e Netty: The request handler runs on worker event loop instead of call event loop since 3.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9531\"\u003eKTOR-9531\u003c/a\u003e Netty server intermittently drops requests after upgrading to 3.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8151\"\u003eKTOR-8151\u003c/a\u003e MicrometerMetrics: \u0026quot;MeterFilters configured after a Meter has been registered\u0026quot; warning when a metric is registered before installing the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9411\"\u003eKTOR-9411\u003c/a\u003e Darwin throws DarwinHttpRequestException instead of FrameTooBigException\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8320\"\u003eKTOR-8320\u003c/a\u003e CallLogging: plugin usage in testApplication breaks console standard output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8906\"\u003eKTOR-8906\u003c/a\u003e Jackson, with request body streaming on, exhausts Dispatchers.IO\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8709\"\u003eKTOR-8709\u003c/a\u003e Websockets: Unable to close session with a custom CloseReason\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9567\"\u003eKTOR-9567\u003c/a\u003e Flaky UnixSockets on Windows: WSAEOPNOTSUPP from bind()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9183\"\u003eKTOR-9183\u003c/a\u003e A client call wrapped with \u003ccode\u003ewithTimeout\u003c/code\u003e throws a generic CancellationException instead of TimeoutCancellationException\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8199\"\u003eKTOR-8199\u003c/a\u003e Autoreloading: default watch patterns don't match anything when project path contain spaces\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9549\"\u003eKTOR-9549\u003c/a\u003e Kotlin/JS: ktor-ktor-client-core.mjs is incompatible with Vite: toRaw naming conflict\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9544\"\u003eKTOR-9544\u003c/a\u003e Apache: body channel not cancelled when caller scope is cancelled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9546\"\u003eKTOR-9546\u003c/a\u003e HttpClient: cancelling ByteReadChannel body does not propagate to engine\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-455\"\u003eKTOR-455\u003c/a\u003e Content-Disposition additional parameters should be inside quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9500\"\u003eKTOR-9500\u003c/a\u003e RawSourceChannel returns false positive on awaitContent\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-646\"\u003eKTOR-646\u003c/a\u003e Netty engine still print annoying exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9527\"\u003eKTOR-9527\u003c/a\u003e Curl: Freeze when receiving large responses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9460\"\u003eKTOR-9460\u003c/a\u003e Curl: Can't build shared library with Ktor 3.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9483\"\u003eKTOR-9483\u003c/a\u003e Curl: backpressure implementation is never used\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/blob/main/CHANGELOG.md\"\u003eio.ktor:ktor-server-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.0\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 14 May 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8421\"\u003eKTOR-8421\u003c/a\u003e Route.contentType should support multiple ContentType\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7961\"\u003eKTOR-7961\u003c/a\u003e Add known TDM headers to the HttpHeaders object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9418\"\u003eKTOR-9418\u003c/a\u003e Support getAs from the root ApplicationConfig\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9559\"\u003eKTOR-9559\u003c/a\u003e DNS configuration for the Apache5 client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9554\"\u003eKTOR-9554\u003c/a\u003e DNS configuration for OkHttp client engine\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9555\"\u003eKTOR-9555\u003c/a\u003e Custom SSE heartbeat function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8914\"\u003eKTOR-8914\u003c/a\u003e Dependency injection: read annotations in function references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8300\"\u003eKTOR-8300\u003c/a\u003e Sessions: Add a way to create a user session shared for all user devices or look up sessions of the same user\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9521\"\u003eKTOR-9521\u003c/a\u003e Upgrade to Kotlin 2.3.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9276\"\u003eKTOR-9276\u003c/a\u003e Make DynamicProviderConfig.authenticateFunction suspend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9491\"\u003eKTOR-9491\u003c/a\u003e Provide parameter validation convenience functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9506\"\u003eKTOR-9506\u003c/a\u003e OpenAPI: Support prefixItems in JsonSchema for tuple type definitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-470\"\u003eKTOR-470\u003c/a\u003e Add an option to not resend the session cookie if the session data wasn't changed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9355\"\u003eKTOR-9355\u003c/a\u003e Deprecate HttpHeaders.AcceptCharset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7659\"\u003eKTOR-7659\u003c/a\u003e Make ktor-network compatible with ES modules for nodejs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9350\"\u003eKTOR-9350\u003c/a\u003e JS: Make ES2015 the default target for tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7578\"\u003eKTOR-7578\u003c/a\u003e Update Digest authentication implementation according...\n\n_Description has been truncated_","html_url":"https://github.com/FlintWave/SearchMob/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlintWave%2FSearchMob/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"4520412246","node_id":"PR_kwDOAH7_3c7fNx21","number":1231,"state":"open","title":"Bump org.jsoup:jsoup from 1.21.1 to 1.22.2","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":9,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T00:48:43.000Z","updated_at":"2026-06-03T02:42:46.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"org.jsoup:jsoup","old_version":"1.21.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"}],"path":null,"ecosystem":"maven"},"body":"Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.21.1 to 1.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.1\u003c/strong\u003e is out now, adding support for the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and numerous bug fixes and improvements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jsoup.org/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\r\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\r\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\r\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\r\n  \u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eRegex.usingRe2j()\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.22.1 (2026-Jan-01)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\n  \u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eorg.jsoup.helper.Regex.usingRe2j()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an instance method \u003ccode\u003eParser#unescape(String, boolean)\u003c/code\u003e that unescapes HTML entities using the parser's configuration (e.g. to support error tracking), complementing the existing static utility \u003ccode\u003eParser.unescapeEntities(String, boolean)\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded a configurable maximum parser depth (to limit the number of open elements on stack) to both HTML and XML parsers. The HTML parser now defaults to a depth of 512 to match browser behavior, and protect against unbounded stack growth, while the XML parser keeps unlimited depth by default, but can opt into a limit via \u003ccode\u003eorg.jsoup.parser.Parser#setMaxDepth\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2421\"\u003e#2421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added CI coverage for JDK 25 \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2403\"\u003e#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added a CI fuzzer for contextual fragment parsing (in addition to existing full body HTML and XML fuzzers). [oss-fuzz \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/14041\"\u003e#14041\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/google/oss-fuzz/pull/14041\"\u003egoogle/oss-fuzz#14041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet a removal schedule of jsoup 1.24.1 for previously deprecated APIs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously cached child \u003ccode\u003eElements\u003c/code\u003e of an \u003ccode\u003eElement\u003c/code\u003e were not correctly invalidated in \u003ccode\u003eNode#replaceWith(Node)\u003c/code\u003e, which could lead to incorrect results when subsequently calling \u003ccode\u003eElement#children()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2391\"\u003e#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttribute selector values are now compared literally without trimming. Previously, jsoup trimmed whitespace from selector values and from element attribute values, which could cause mismatches with browser behavior (e.g. \u003ccode\u003e[attr=\u0026quot; foo \u0026quot;]\u003c/code\u003e). Now matches align with the CSS specification and browser engines. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2380\"\u003e#2380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using the JDK HttpClient, any system default proxy (\u003ccode\u003eProxySelector.getDefault()\u003c/code\u003e) was ignored. Now, the system proxy is used if a per-request proxy is not set. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2388\"\u003e#2388\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2390\"\u003e#2390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eValidationException\u003c/code\u003e could be thrown in the adoption agency algorithm with particularly broken input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2393\"\u003e#2393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNull characters in the HTML body were not consistently removed; and in foreign content were not correctly replaced. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2395\"\u003e#2395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn \u003ccode\u003eIndexOutOfBoundsException\u003c/code\u003e could be thrown when parsing a body fragment with crafted input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2397\"\u003e#2397\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2406\"\u003e#2406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using StructuralEvaluators (e.g., a \u003ccode\u003eparent child\u003c/code\u003e selector) across many retained threads, their memoized results could also be retained, increasing memory use. These results are now cleared immediately after use, reducing overall memory consumption. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2411\"\u003e#2411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCloning a \u003ccode\u003eParser\u003c/code\u003e now preserves any custom \u003ccode\u003eTagSet\u003c/code\u003e applied to the parser. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2422\"\u003e#2422\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2423\"\u003e#2423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.21.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/Norconex/crawlers/pull/1231","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norconex%2Fcrawlers/issues/1231","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1231/packages"},{"uuid":"4511521588","node_id":"PR_kwDORkrpmc7exlv3","number":34,"state":"closed","title":"build(deps): bump the maven-dependencies group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-31T12:12:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-24T12:13:12.000Z","updated_at":"2026-05-31T12:12:58.000Z","time_to_close":604784,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"maven-dependencies","update_count":10,"packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"com.microsoft.playwright:playwright","old_version":"1.58.0","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright-java"},{"name":"com.anthropic:anthropic-java","old_version":"2.19.0","new_version":"2.34.0","repository_url":"https://github.com/anthropics/anthropic-sdk-java"},{"name":"com.fasterxml.jackson.core:jackson-databind","old_version":"2.21.2","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson"},{"name":"org.xerial:sqlite-jdbc","old_version":"3.51.3.0","new_version":"3.53.1.0","repository_url":"https://github.com/xerial/sqlite-jdbc"},{"name":"com.typesafe:config","old_version":"1.4.6","new_version":"1.4.8","repository_url":"https://github.com/lightbend/config"},{"name":"org.slf4j:slf4j-simple","old_version":"2.0.17","new_version":"2.0.18"},{"name":"org.junit.jupiter:junit-jupiter","old_version":"6.0.3","new_version":"6.1.0","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.jline:jline","old_version":"4.0.10","new_version":"4.1.2","repository_url":"https://github.com/jline/jline3"},{"name":"com.google.guava:guava","old_version":"33.5.0-jre","new_version":"33.6.0-jre","repository_url":"https://github.com/google/guava"}],"path":null,"ecosystem":"maven"},"body":"Bumps the maven-dependencies group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) | `1.58.0` | `1.60.0` |\n| [com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java) | `2.19.0` | `2.34.0` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.21.2` | `2.21.3` |\n| [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) | `3.51.3.0` | `3.53.1.0` |\n| [com.typesafe:config](https://github.com/lightbend/config) | `1.4.6` | `1.4.8` |\n| org.slf4j:slf4j-simple | `2.0.17` | `2.0.18` |\n| [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) | `6.0.3` | `6.1.0` |\n| [org.jline:jline](https://github.com/jline/jline3) | `4.0.10` | `4.1.2` |\n| [com.google.guava:guava](https://github.com/google/guava) | `33.5.0-jre` | `33.6.0-jre` |\n\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.microsoft.playwright:playwright` from 1.58.0 to 1.60.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/playwright-java/releases\"\u003ecom.microsoft.playwright:playwright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.60.0\u003c/h2\u003e\n\u003ch2\u003e🌐 HAR recording on Tracing\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-tracing#tracing-start-har\"\u003etracing.startHar()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-tracing#tracing-stop-har\"\u003etracing.stopHar()\u003c/a\u003e expose HAR recording as a first-class tracing API, with the same \u003ccode\u003econtent\u003c/code\u003e, \u003ccode\u003emode\u003c/code\u003e and \u003ccode\u003eurlFilter\u003c/code\u003e options as \u003ccode\u003erecordHar\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"java\"\u003e\u003ccode\u003econtext.tracing().startHar(Paths.get(\u0026quot;trace.har\u0026quot;));\r\nPage page = context.newPage();\r\npage.navigate(\u0026quot;https://playwright.dev\u0026quot;);\r\ncontext.tracing().stopHar();\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e🪝 Drop API\u003c/h2\u003e\n\u003cp\u003eNew \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-drop\"\u003elocator.drop()\u003c/a\u003e simulates an external drag-and-drop of files or clipboard-like data onto an element. Playwright dispatches \u003ccode\u003edragenter\u003c/code\u003e, \u003ccode\u003edragover\u003c/code\u003e, and \u003ccode\u003edrop\u003c/code\u003e with a synthetic [DataTransfer] in the page context — works cross-browser and is great for testing upload zones:\u003c/p\u003e\n\u003cpre lang=\"java\"\u003e\u003ccode\u003epage.locator(\u0026quot;#dropzone\u0026quot;).drop(new Locator.DropPayload()\r\n    .setFiles(new FilePayload(\u0026quot;note.txt\u0026quot;, \u0026quot;text/plain\u0026quot;, \u0026quot;hello\u0026quot;.getBytes(StandardCharsets.UTF_8))));\r\n\u003cp\u003epage.locator(\u0026quot;#dropzone\u0026quot;).drop(new Locator.DropPayload()\n.setData(Map.of(\n\u0026quot;text/plain\u0026quot;, \u0026quot;hello world\u0026quot;,\n\u0026quot;text/uri-list\u0026quot;, \u0026quot;\u003ca href=\"https://example.com\"\u003ehttps://example.com\u003c/a\u003e\u0026quot;)));\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003e🎯 Aria snapshots\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-pageassertions#page-assertions-to-match-aria-snapshot\"\u003eassertThat(page).matchesAriaSnapshot()\u003c/a\u003e now works on a \u003ca href=\"https://playwright.dev/java/docs/api/class-page\"\u003ePage\u003c/a\u003e, in addition to a \u003ca href=\"https://playwright.dev/java/docs/api/class-locator\"\u003eLocator\u003c/a\u003e — equivalent to asserting against \u003ccode\u003epage.locator(\u0026quot;body\u0026quot;)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eboxes\u003c/code\u003e option on \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-aria-snapshot\"\u003elocator.ariaSnapshot()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-aria-snapshot\"\u003epage.ariaSnapshot()\u003c/a\u003e appends each element's bounding box as \u003ccode\u003e[box=x,y,width,height]\u003c/code\u003e, useful for AI consumption.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew APIs\u003c/h2\u003e\n\u003ch3\u003eBrowser, Context and Page\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvent \u003ca href=\"https://playwright.dev/java/docs/api/class-browser#browser-event-context\"\u003ebrowser.onContext()\u003c/a\u003e — fired when a new context is created on the browser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext\"\u003eBrowserContext\u003c/a\u003e now mirrors lifecycle events from its pages: \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-download\"\u003ebrowserContext.onDownload()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-attached\"\u003ebrowserContext.onFrameAttached()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-detached\"\u003ebrowserContext.onFrameDetached()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-navigated\"\u003ebrowserContext.onFrameNavigated()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-page-close\"\u003ebrowserContext.onPageClose()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-page-load\"\u003ebrowserContext.onPageLoad()\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLocators and Assertions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003edescription\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-get-by-role\"\u003epage.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-get-by-role\"\u003elocator.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-frame#frame-get-by-role\"\u003eframe.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-framelocator#frame-locator-get-by-role\"\u003eframeLocator.getByRole()\u003c/a\u003e for matching the \u003ca href=\"https://www.w3.org/TR/wai-aria-1.2/#dfn-accessible-description\"\u003eaccessible description\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003epseudo\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-locatorassertions#locator-assertions-to-have-css\"\u003eassertThat(locator).hasCSS()\u003c/a\u003e reads computed styles from \u003ccode\u003e::before\u003c/code\u003e or \u003ccode\u003e::after\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003estyle\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-highlight\"\u003elocator.highlight()\u003c/a\u003e applies extra inline CSS to the highlight overlay, plus new \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-hide-highlight\"\u003epage.hideHighlight()\u003c/a\u003e to clear all highlights.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNetwork\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-websocketroute#web-socket-route-protocols\"\u003ewebSocketRoute.protocols()\u003c/a\u003e returns the WebSocket subprotocols requested by the page.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003enoDefaults\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-browsertype#browser-type-connect-over-cdp\"\u003ebrowserType.connectOverCDP()\u003c/a\u003e disables Playwright's default overrides on the default context (download behavior, focus emulation, media emulation), so attaching to a user's daily-driver browser doesn't disturb its state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eErrors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ca href=\"https://playwright.dev/java/docs/api/class-weberror#web-error-location\"\u003ewebError.location()\u003c/a\u003e mirrors \u003ca href=\"https://playwright.dev/java/docs/api/class-consolemessage#console-message-location\"\u003econsoleMessage.location()\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠️ Other improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTrace Viewer adds a pretty-print toggle for JSON / form request and response bodies in the network details panel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/55134ef3a5ea7607cd200d4662738a172ae146b8\"\u003e\u003ccode\u003e55134ef\u003c/code\u003e\u003c/a\u003e chore: mark 1.60.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/793b1d3d6152437e21c327f0779370662a1aa0ed\"\u003e\u003ccode\u003e793b1d3\u003c/code\u003e\u003c/a\u003e chore: roll driver to 1.60.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1921\"\u003e#1921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/8f66ef1f13e23c48eb43a1805d017866e58fe80d\"\u003e\u003ccode\u003e8f66ef1\u003c/code\u003e\u003c/a\u003e test_docker: align container launch with playwright-browsers (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/dc66e4d1a39c9e04fb001ecd0a30b2a9d9842165\"\u003e\u003ccode\u003edc66e4d\u003c/code\u003e\u003c/a\u003e chore(deps): bump com.google.code.gson:gson from 2.13.2 to 2.14.0 in the all ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/d84a2db0b348ace4c349c3f93fd62646bbf7c929\"\u003e\u003ccode\u003ed84a2db\u003c/code\u003e\u003c/a\u003e chore: roll driver to 1.60.0-beta-1778180503000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/f081667e44b5e1fec2a9f1179af76b687808f684\"\u003e\u003ccode\u003ef081667\u003c/code\u003e\u003c/a\u003e chore: roll to 1.60.0-alpha-2026-05-05 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1916\"\u003e#1916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/5b33729849608904e8fe709ee7a6aa042708f629\"\u003e\u003ccode\u003e5b33729\u003c/code\u003e\u003c/a\u003e chore: reduce CI flakiness across webkit/macOS, ubuntu, windows (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/b01bf64e64ef3cad7252369f1d747709f7507e81\"\u003e\u003ccode\u003eb01bf64\u003c/code\u003e\u003c/a\u003e chore: resolve Object langAliases in function argument types (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1908\"\u003e#1908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/7dbd6cac3b0c3759e25538c8b2c02e4592da95d7\"\u003e\u003ccode\u003e7dbd6ca\u003c/code\u003e\u003c/a\u003e chore: use langAliases from api.json in api generator (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1907\"\u003e#1907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/c3e4b92982067b90bfe297ed06ebbb80d36eb799\"\u003e\u003ccode\u003ec3e4b92\u003c/code\u003e\u003c/a\u003e chore: roll to 1.59.1-beta-1775752988000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-java/compare/v1.58.0...v1.60.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.anthropic:anthropic-java` from 2.19.0 to 2.34.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/releases\"\u003ecom.anthropic:anthropic-java's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.33.0...v2.34.0\"\u003ev2.33.0...v2.34.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for thinking-token-count beta for estimated tokens in thinking block deltas when streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c814c7a24808d8f82875e02d3cde914fae334321\"\u003ec814c7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etest:\u003c/strong\u003e set required estimatedTokens on BetaThinkingDelta in BetaMessageAccumulatorTest (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/04aedf3c0b19b7c838c04f8fec09e82e4700c48a\"\u003e04aedf3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-05-19)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.32.0...v2.33.0\"\u003ev2.32.0...v2.33.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Add support for self-hosted sandboxes in CMA with sandbox helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/d5193622daa045073af0244a1fec4ae78131c205\"\u003ed519362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add BetaManagedAgentsSearchResultBlock types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/253feaad3ecbf3693985ffa205baa1b51e8972e7\"\u003e253feaa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for cache diagnostics beta (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/7a3223122c72898bcfbbd1385f2aaba1daa1824b\"\u003e7a32231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emcp:\u003c/strong\u003e add mcp tool helpers (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1161\"\u003e#1161\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/5d58812cba85153534f9eabba9bc256d289295c7\"\u003e5d58812\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e spec updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/3cd6b5b9b4948d7f80cc236a8ed360eac24b818c\"\u003e3cd6b5b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.31.0\u003c/h2\u003e\n\u003ch2\u003e2.31.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e improve logging (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/bbd371ef81059aca81f2ec6b62ae279e80b5ab3d\"\u003ebbd371e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md\"\u003ecom.anthropic:anthropic-java's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.33.0...v2.34.0\"\u003ev2.33.0...v2.34.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for thinking-token-count beta for estimated tokens in thinking block deltas when streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c814c7a24808d8f82875e02d3cde914fae334321\"\u003ec814c7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etest:\u003c/strong\u003e set required estimatedTokens on BetaThinkingDelta in BetaMessageAccumulatorTest (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/04aedf3c0b19b7c838c04f8fec09e82e4700c48a\"\u003e04aedf3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-05-19)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.32.0...v2.33.0\"\u003ev2.32.0...v2.33.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Add support for self-hosted sandboxes in CMA with sandbox helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/d5193622daa045073af0244a1fec4ae78131c205\"\u003ed519362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add BetaManagedAgentsSearchResultBlock types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/253feaad3ecbf3693985ffa205baa1b51e8972e7\"\u003e253feaa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for cache diagnostics beta (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/7a3223122c72898bcfbbd1385f2aaba1daa1824b\"\u003e7a32231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emcp:\u003c/strong\u003e add mcp tool helpers (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1161\"\u003e#1161\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/5d58812cba85153534f9eabba9bc256d289295c7\"\u003e5d58812\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e spec updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/3cd6b5b9b4948d7f80cc236a8ed360eac24b818c\"\u003e3cd6b5b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.31.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e improve logging (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/bbd371ef81059aca81f2ec6b62ae279e80b5ab3d\"\u003ebbd371e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix concurrent tests with log output pollution (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/80cf0cf05d6ee2cdae74406d475ce252880cf219\"\u003e80cf0cf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ere-applying logging change (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/68e5c071ca978743e9d45f28f3e564711c33165e\"\u003e68e5c07\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eredact api-key headers in debug logs (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/3bca768637738a646ab1f06d44306ae23391fdd6\"\u003e3bca768\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/765ec0e21cb1e17d8b5adaad24e90b7d1afa96b5\"\u003e\u003ccode\u003e765ec0e\u003c/code\u003e\u003c/a\u003e release: 2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/56c637fc19053bd3088791518ade11f3055bb837\"\u003e\u003ccode\u003e56c637f\u003c/code\u003e\u003c/a\u003e fix(test): set required estimatedTokens on BetaThinkingDelta in BetaMessageAc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/5d636b2d1aab522b8bb91d1de30901f812d1dc42\"\u003e\u003ccode\u003e5d636b2\u003c/code\u003e\u003c/a\u003e feat(api): Add support for thinking-token-count beta for estimated tokens in ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/ba2d183062ec1efc6558d3e18391803a0c07f183\"\u003e\u003ccode\u003eba2d183\u003c/code\u003e\u003c/a\u003e release: 2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/56312dbf8949cc0793e617ed0707a41557d47c57\"\u003e\u003ccode\u003e56312db\u003c/code\u003e\u003c/a\u003e feat(client): Add support for self-hosted sandboxes in CMA with sandbox helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/72d962276efcdb2107062aed3ca3587f798cadf2\"\u003e\u003ccode\u003e72d9622\u003c/code\u003e\u003c/a\u003e release: 2.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/b99fa176adb4575163b14ad32e49bd59699b0f20\"\u003e\u003ccode\u003eb99fa17\u003c/code\u003e\u003c/a\u003e feat(api): Add support for cache diagnostics beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/54fefaeafaa8d005e584e75709544f0302294fd1\"\u003e\u003ccode\u003e54fefae\u003c/code\u003e\u003c/a\u003e test: re-enable beta skill/version create tests (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1243\"\u003e#1243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/5224fff332f7baadf47b9ee1bc6ca99eb1e30631\"\u003e\u003ccode\u003e5224fff\u003c/code\u003e\u003c/a\u003e chore(api): spec updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/dd0d0dabe9dbf4f9e900da7c44f24597fcfaa0b3\"\u003e\u003ccode\u003edd0d0da\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.19.0...v2.34.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.21.2 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.xerial:sqlite-jdbc` from 3.51.3.0 to 3.53.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xerial/sqlite-jdbc/releases\"\u003eorg.xerial:sqlite-jdbc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.53.1.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.1 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/8263322\"\u003e8263322\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔄️ Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erewrite amalgamation_version.sh for POSIX shell (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/52522d0\"\u003e52522d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix android usage (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7ef8e0f\"\u003e7ef8e0f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.14.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/a28d6ce\"\u003ea28d6ce\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.13.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/248e1e9\"\u003e248e1e9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.jreleaser:jreleaser-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/396fdf3\"\u003e396fdf3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.tngtech.archunit:archunit-junit5 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/458abe1\"\u003e458abe1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econditionally bootstrap SLF4J API JAR (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bc7d223\"\u003ebc7d223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake JAVA_CLASSPATH configurable (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/5aa7426\"\u003e5aa7426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Michael Osipov\u003c/p\u003e\n\u003ch2\u003eRelease 3.53.0.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejdbc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexpose wal_autocheckpoint pragma in SQLiteConfig (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/dd2adcc\"\u003edd2adcc\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1397\"\u003e#1397\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/baaf087\"\u003ebaaf087\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epublish multiple classifer jars (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bdd2b64\"\u003ebdd2b64\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1273\"\u003e#1273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter Android support (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7eb6f3f\"\u003e7eb6f3f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1378\"\u003e#1378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.sonatype.central:central-publishing-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/19259e5\"\u003e19259e5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/f572217\"\u003ef572217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/b01674f0bffc45b4c213dd873867e64b9194104b\"\u003e\u003ccode\u003eb01674f\u003c/code\u003e\u003c/a\u003e chore(release): 3.53.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/e6719db995a1fee385f0421cee1eaf78e3587013\"\u003e\u003ccode\u003ee6719db\u003c/code\u003e\u003c/a\u003e chore: update native libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/826332265f8f1069faeb4a61761a8651efaefb0c\"\u003e\u003ccode\u003e8263322\u003c/code\u003e\u003c/a\u003e feat(sqlite): upgrade to sqlite 3.53.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/396fdf30d850ca78dad59bccaafae25c1e86998a\"\u003e\u003ccode\u003e396fdf3\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump org.jreleaser:jreleaser-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/bc7d22394987d5c84706c844f0b95c7856e3f294\"\u003e\u003ccode\u003ebc7d223\u003c/code\u003e\u003c/a\u003e build: conditionally bootstrap SLF4J API JAR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/4cd221a72480a681f91f78f9d8a99372daf423ce\"\u003e\u003ccode\u003e4cd221a\u003c/code\u003e\u003c/a\u003e chore: remove execute bit on non-executable files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/5aa74267e6a01c071ec88d1882de8aeec0d8d22a\"\u003e\u003ccode\u003e5aa7426\u003c/code\u003e\u003c/a\u003e build: make JAVA_CLASSPATH configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/52522d02ee5cffa8f283054d8bf5a5165206caac\"\u003e\u003ccode\u003e52522d0\u003c/code\u003e\u003c/a\u003e refactor: rewrite amalgamation_version.sh for POSIX shell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/a28d6cef66da00f8559445dfacd9f34a871509d6\"\u003e\u003ccode\u003ea28d6ce\u003c/code\u003e\u003c/a\u003e build(deps): bump gummy-bears-api-24 to 0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/458abe135cad6e20f00504418a09946c81c8dbd7\"\u003e\u003ccode\u003e458abe1\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump com.tngtech.archunit:archunit-junit5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/xerial/sqlite-jdbc/compare/3.51.3.0...3.53.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.typesafe:config` from 1.4.6 to 1.4.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lightbend/config/releases\"\u003ecom.typesafe:config's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: BugOrBroken - partially-shadowed object has nested delayed merge by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/846\"\u003elightbend/config#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.7...v1.4.8\"\u003ehttps://github.com/lightbend/config/compare/v1.4.7...v1.4.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.4.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: adjust description of release process by \u003ca href=\"https://github.com/sebastian-alfers\"\u003e\u003ccode\u003e@​sebastian-alfers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/834\"\u003elightbend/config#834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update NEWS with latest two releases by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/835\"\u003elightbend/config#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI fixes by \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003elightbend/config#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix spelling by \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/840\"\u003elightbend/config#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: rendering of substituted list with space by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/841\"\u003elightbend/config#841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Don't evaluate substitutions hidden by values from resolved objects by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/839\"\u003elightbend/config#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop the broken Maven chip in Readme by \u003ca href=\"https://github.com/ennru\"\u003e\u003ccode\u003e@​ennru\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/844\"\u003elightbend/config#844\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003elightbend/config#843\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.6...v1.4.7\"\u003ehttps://github.com/lightbend/config/compare/v1.4.6...v1.4.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lightbend/config/blob/main/NEWS.md\"\u003ecom.typesafe:config's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.8: May 5, 2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: BugOrBroken - partially-shadowed object has nested delayed merge, fix for regression introduced in 1.4.7, (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/846\"\u003e#846\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.4.7: April 28, 2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: rendering of substituted list with space (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/841\"\u003e#841\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Don't evaluate substitutions hidden by values from resolved objects (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/839\"\u003e#839\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: CI improvements (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003e#843\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: spelling improvements by (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/840\"\u003e#840\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/b0a1e43b61d11e0f1aeefb939ea8d8576229a684\"\u003e\u003ccode\u003eb0a1e43\u003c/code\u003e\u003c/a\u003e fix: regression - partially-shadowed object has nested delayed merge (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/846\"\u003e#846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/eb80714c074036e723d6cb14929bcb1582ec34a7\"\u003e\u003ccode\u003eeb80714\u003c/code\u003e\u003c/a\u003e Drop the broken Maven chip in Readme (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/833bacb616f92cae73c67d8b7a8ae9f6e44b474c\"\u003e\u003ccode\u003e833bacb\u003c/code\u003e\u003c/a\u003e fix: Don't evaluate substitutions hidden by values from resolved objects (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/dd3a0df142f7def91c13b4a0576af5528e9fd7f4\"\u003e\u003ccode\u003edd3a0df\u003c/code\u003e\u003c/a\u003e fix: rendering of substituted list with spacce (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/eb46e0e09065f974de851de83a7ab121aae91e6d\"\u003e\u003ccode\u003eeb46e0e\u003c/code\u003e\u003c/a\u003e chore: Fix spelling here and there (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/840\"\u003e#840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/affd59d79928662f262fc12c20aeff9784600349\"\u003e\u003ccode\u003eaffd59d\u003c/code\u003e\u003c/a\u003e build: update actions, replace deprecated apt-key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/93dbc6f42650c120a78506824db644aa637ad376\"\u003e\u003ccode\u003e93dbc6f\u003c/code\u003e\u003c/a\u003e docs: Update NEWS with latest two releases (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/835\"\u003e#835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/c995aa0f11d9712c4eb41a3aa6d60cf179cda1ab\"\u003e\u003ccode\u003ec995aa0\u003c/code\u003e\u003c/a\u003e docs: adjust description of release process (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.6...v1.4.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.slf4j:slf4j-simple` from 2.0.17 to 2.0.18\n\nUpdates `org.junit.jupiter:junit-jupiter` from 6.0.3 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.1.0 = Platform 6.1.0 + Jupiter 6.1.0 + Vintage 6.1.0\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JarvisCraft\"\u003e\u003ccode\u003e@​JarvisCraft\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5633\"\u003ejunit-team/junit-framework#5633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Maran23\"\u003e\u003ccode\u003e@​Maran23\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5644\"\u003ejunit-team/junit-framework#5644\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.1.0-RC1 = Platform 6.1.0-RC1 + Jupiter 6.1.0-RC1 + Vintage 6.1.0-RC1\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0-RC1/release-notes/\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariokhoury4\"\u003e\u003ccode\u003e@​mariokhoury4\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/4574\"\u003ejunit-team/junit-framework#4574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ogu1208\"\u003e\u003ccode\u003e@​Ogu1208\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5145\"\u003ejunit-team/junit-framework#5145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HyungGeun94\"\u003e\u003ccode\u003e@​HyungGeun94\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5271\"\u003ejunit-team/junit-framework#5271\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yalishevant\"\u003e\u003ccode\u003e@​yalishevant\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5316\"\u003ejunit-team/junit-framework#5316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JINU-CHANG\"\u003e\u003ccode\u003e@​JINU-CHANG\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5290\"\u003ejunit-team/junit-framework#5290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaschdoc\"\u003e\u003ccode\u003e@​jaschdoc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5427\"\u003ejunit-team/junit-framework#5427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kawshikbuet17\"\u003e\u003ccode\u003e@​kawshikbuet17\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5561\"\u003ejunit-team/junit-framework#5561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msridhar\"\u003e\u003ccode\u003e@​msridhar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5602\"\u003ejunit-team/junit-framework#5602\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.1.0-M1...r6.1.0-RC1\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.1.0-M1...r6.1.0-RC1\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.1.0-M1 = Platform 6.1.0-M1 + Jupiter 6.1.0-M1 + Vintage 6.1.0-M1\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0-M1/release-notes/\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vy\"\u003e\u003ccode\u003e@​vy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5041\"\u003ejunit-team/junit-framework#5041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pankraz76\"\u003e\u003ccode\u003e@​Pankraz76\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5006\"\u003ejunit-team/junit-framework#5006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arukiidou\"\u003e\u003ccode\u003e@​arukiidou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5066\"\u003ejunit-team/junit-framework#5066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laeubi\"\u003e\u003ccode\u003e@​laeubi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5092\"\u003ejunit-team/junit-framework#5092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jihun4452\"\u003e\u003ccode\u003e@​jihun4452\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5088\"\u003ejunit-team/junit-framework#5088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TWiStErRob\"\u003e\u003ccode\u003e@​TWiStErRob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5133\"\u003ejunit-team/junit-framework#5133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.0...r6.1.0-M1\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.0...r6.1.0-M1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0dc3af1cb1973d257b5bc75d81e02454d5e4e556\"\u003e\u003ccode\u003e0dc3af1\u003c/code\u003e\u003c/a\u003e Release 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/1d130020c85170edcb46ce7ed1f7f78824e37c04\"\u003e\u003ccode\u003e1d13002\u003c/code\u003e\u003c/a\u003e Prepare 6.1.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/072b2175bbd7b0b3b26f5d928550ec7a21e68268\"\u003e\u003ccode\u003e072b217\u003c/code\u003e\u003c/a\u003e Update plugin spotless to v8.5.0 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5668\"\u003e#5668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/3a53480218f4b752a9ca77506e10632cd483c0f8\"\u003e\u003ccode\u003e3a53480\u003c/code\u003e\u003c/a\u003e Update Gradle to v9.5.1 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5666\"\u003e#5666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0e18a20a9f98d063ae02b3ba19329143f5c7f034\"\u003e\u003ccode\u003e0e18a20\u003c/code\u003e\u003c/a\u003e Update zizmorcore/zizmor-action action to v0.5.4 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5669\"\u003e#5669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0a2634fb9cbbd057b02cf629d7d272c16d62be4b\"\u003e\u003ccode\u003e0a2634f\u003c/code\u003e\u003c/a\u003e Update github/codeql-action action to v4.35.5 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5671\"\u003e#5671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/4dbd5561b00ac761a62c516bfaec51c212a2d60c\"\u003e\u003ccode\u003e4dbd556\u003c/code\u003e\u003c/a\u003e Restructure workflows to have single \u0026quot;status\u0026quot; job (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5670\"\u003e#5670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/f2194cebe377512cb0ade388c62a881a0bcf5d3e\"\u003e\u003ccode\u003ef2194ce\u003c/code\u003e\u003c/a\u003e Increase timeout to reduce flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fdd2df65b763151cccbe669ea9e1c3155efcd\"\u003e\u003ccode\u003e5c8fdd2\u003c/code\u003e\u003c/a\u003e Update dependency org.apache.groovy:groovy to v5.0.6 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5659\"\u003e#5659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/43c6982324602582902c9bdb213fd5e007f9cf3d\"\u003e\u003ccode\u003e43c6982\u003c/code\u003e\u003c/a\u003e Update dependency org.slf4j:slf4j-jdk14 to v2.0.18 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5667\"\u003e#5667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jline:jline` from 4.0.10 to 4.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jline/jline3/releases\"\u003eorg.jline:jline's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJLine 4.1.2 is a patch release focused on correctness fixes across the parser, terminal I/O, and shell modules.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: echo preserves backslash before unrecognised escape sequences (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1901\"\u003e#1901\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1863\"\u003e#1863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: DefaultParser preserves backslashes inside quotes (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1902\"\u003e#1902\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1877\"\u003e#1877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: NonBlockingInputStream keeps thread alive after EOF (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1903\"\u003e#1903\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: ensure cursor position after alternate screen init (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1904\"\u003e#1904\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use parser for command argument splitting (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1907\"\u003e#1907\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1876\"\u003e#1876\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Bump eu.maveniverse.maven.nisse:extension from 0.9.1 to 0.9.2 (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1905\"\u003e#1905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jline/jline3/compare/4.1.1...4.1.2\"\u003ehttps://github.com/jline/jline3/compare/4.1.1...4.1.2\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJLine 4.1.1 is a patch release focused on stability fixes. The most notable change corrects the POSIX raw mode defaults (VMIN/VTIME) in \u003ccode\u003eenterRawMode\u003c/code\u003e, which could cause shell REPL sessions to hang or malfunction on certain platforms. This release also fixes a Display bug where the internal line buffer could alias or reject immutable caller-provided lists, hardens signal registration against null returns, and corrects alternate charset handling in ScreenTerminal.\u003c/p\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed Display oldLines being set as possible immutable lists. (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1878\"\u003e#1878\u003c/a\u003e) \u003ca href=\"https://github.com/Elec332\"\u003e\u003ccode\u003e@​Elec332\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use POSIX cfmakeraw defaults (VMIN=1, VTIME=0) in enterRawMode (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1871\"\u003e#1871\u003c/a\u003e) \u003ca href=\"https://github.com/BryanSant\"\u003e\u003ccode\u003e@​BryanSant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip null returns from signal registration in AbstractUnixSysTerminal (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1869\"\u003e#1869\u003c/a\u003e) \u003ca href=\"https://github.com/BryanSant\"\u003e\u003ccode\u003e@​BryanSant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed ScreenTerminal alt-charset (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1867\"\u003e#1867\u003c/a\u003e) \u003ca href=\"https://github.com/Elec332\"\u003e\u003ccode\u003e@​Elec332\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Bump com.palantir.javaformat:palantir-java-format from 2.90.0 to 2.91.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1898\"\u003e#1898\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump eu.maveniverse.maven.nisse:extension from 0.9.0 to 0.9.1 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1894\"\u003e#1894\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump junit.version from 6.0.3 to 6.1.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1893\"\u003e#1893\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump groovy.version from 5.0.5 to 5.0.6 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1865\"\u003e#1865\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump eu.maveniverse.maven.nisse:extension from 0.8.4 to 0.9.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1887\"\u003e#1887\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump com.diffplug.spotless:spotless-maven-plugin from 3.5.0 to 3.5.1 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1886\"\u003e#1886\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.6.2 to 3.6.3 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1889\"\u003e#1889\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump com.diffplug.spotless:spotless-maven-plugin from 3.4.0 to 3.5.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1880\"\u003e#1880\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump slf4j.version from 2.0.17 to 2.0.18 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1874\"\u003e#1874\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👻 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor: Remove duplicate code in Shell impl tests (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1868\"\u003e#1868\u003c/a\u003e) \u003ca href=\"https://github.com/Elec332\"\u003e\u003ccode\u003e@​Elec332\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BryanSant\"\u003e\u003ccode\u003e@​BryanSant\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jline/jline3/pull/1869\"\u003e#1869\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jline/jline3/compare/4.1.0...4.1.1\"\u003ehttps://github.com/jline/jline3/compare/4.1.0...4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eJLine 4.1.0\u003c/h2\u003e\n\u003cp\u003eJLine 4.1 is the first minor release of the 4.x series, bringing new features, significant performance improvements, internal refactoring, and many bug fixes across terminal handling, encoding, and platform support.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/9a74970108e84b2ab972b5609e692e147489bcc7\"\u003e\u003ccode\u003e9a74970\u003c/code\u003e\u003c/a\u003e fix: use parser for command argument splitting (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1907\"\u003e#1907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/c9b931546dca4f7ab528bdaaa6baa1eb0344b8fc\"\u003e\u003ccode\u003ec9b9315\u003c/code\u003e\u003c/a\u003e chore: Bump eu.maveniverse.maven.nisse:extension from 0.9.1 to 0.9.2 (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1905\"\u003e#1905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/a2e0670ca2461fb0351b067b520cb9ff019e39de\"\u003e\u003ccode\u003ea2e0670\u003c/code\u003e\u003c/a\u003e fix: ensure cursor position after alternate screen init (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1883\"\u003e#1883\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1904\"\u003e#1904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/6ac5ec1c4961deb7ae7405b1c087a4bba4f37e55\"\u003e\u003ccode\u003e6ac5ec1\u003c/code\u003e\u003c/a\u003e fix: NonBlockingInputStream keeps thread alive after EOF (fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1879\"\u003e#1879\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1903\"\u003e#1903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/1ef5bede9876145ad7a61ff601d3e0fdce1fcaf9\"\u003e\u003ccode\u003e1ef5bed\u003c/code\u003e\u003c/a\u003e fix: DefaultParser preserves backslashes inside quotes (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1902\"\u003e#1902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/2825bc2a06c8764e186d2bf9005c1be160715e30\"\u003e\u003ccode\u003e2825bc2\u003c/code\u003e\u003c/a\u003e fix: echo preserves backslash before unrecognised escape sequences (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1901\"\u003e#1901\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/798308f86a0be6645423ec2857ed81cf15fb3d25\"\u003e\u003ccode\u003e798308f\u003c/code\u003e\u003c/a\u003e fix: add filter-by-commitish to 3.x release drafter config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/af5638ab34005a7b7184a56a9a6cf150a3f4848b\"\u003e\u003ccode\u003eaf5638a\u003c/code\u003e\u003c/a\u003e fix: avoid aliasing and immutable list issues in Display oldLines (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1878\"\u003e#1878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/f55dc2eb6e8c252d36bc4a0a18b9f75799f9b892\"\u003e\u003ccode\u003ef55dc2e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1898\"\u003e#1898\u003c/a\u003e from jline/dependabot/maven/master/com.palantir.java...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/1f736678cded0f70ed1b6995f6ce9973def6125b\"\u003e\u003ccode\u003e1f73667\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1894\"\u003e#1894\u003c/a\u003e from jline/dependabot/maven/master/eu.maveniverse.ma...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jline/jline3/compare/4.0.10...4.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.guava:guava` from 33.5.0-jre to 33.6.0-jre\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/guava/releases\"\u003ecom.google.guava:guava's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e33.6.0\u003c/h2\u003e\n\u003ch3\u003eMaven\u003c/h3\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e\u0026lt;dependency\u0026gt;\r\n  \u0026lt;groupId\u0026gt;com.google.guava\u0026lt;/groupId\u0026gt;\r\n  \u0026lt;artifactId\u0026gt;guava\u0026lt;/artifactId\u0026gt;\r\n  \u0026lt;version\u0026gt;33.6.0-jre\u0026lt;/version\u0026gt;\r\n  \u0026lt;!-- or, for Android: --\u0026gt;\r\n  \u0026lt;version\u0026gt;33.6.0-android\u0026lt;/version\u0026gt;\r\n\u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eJar files\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\"\u003e33.6.0-jre.jar\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/guava/33.6.0-android/guava-33.6.0-android.jar\"\u003e33.6.0-android.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGuava requires \u003ca href=\"https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies\"\u003eone runtime dependency\u003c/a\u003e, which you can download here:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\"\u003efailureaccess-1.0.3.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavadoc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-jre/api/docs/\"\u003e33.6.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/docs/\"\u003e33.6.0-android\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJDiff\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-jre/api/diffs/\"\u003e33.6.0-jre vs. 33.5.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/diffs/\"\u003e33.6.0-android vs. 33.5.0-android\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/androiddiffs/\"\u003e33.6.0-android vs. 33.6.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated some classes from \u003ccode\u003efinalize()\u003c/code\u003e to \u003ccode\u003ePhantomReference\u003c/code\u003e in preparation for \u003ca href=\"https://openjdk.org/jeps/421\"\u003ethe removal of finalization\u003c/a\u003e. (786b619dd6, 7c6b17c, aeef90988d)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecache\u003c/code\u003e: Deprecated \u003ccode\u003eCacheBuilder\u003c/code\u003e APIs that use \u003ccode\u003eTimeUnit\u003c/code\u003e in favor of those that use \u003ccode\u003eDuration\u003c/code\u003e. (73f8b0bb84)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Added \u003ccode\u003etoImmutableSortedMap\u003c/code\u003e collectors that use the natural comparator. (64d70b9f94)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Changed \u003ccode\u003eConcurrentHashMultiset\u003c/code\u003e, \u003ccode\u003eImmutableMap\u003c/code\u003e and \u003ccode\u003eTreeMultiset\u003c/code\u003e deserialization to \u003ca href=\"https://openjdk.org/jeps/500\"\u003eavoid mutating \u003ccode\u003efinal\u003c/code\u003e fields\u003c/a\u003e. In extremely unlikely scenarios in which an instance of that type contains an object that refers back to that instance, this could lead to \u003ca href=\"https://docs.oracle.com/en/java/javase/26/docs/specs/serialization/input.html#the-readresolve-method:~:text=in%20cases%20where%20an%20object%20being%20serialized%20nominates%20a%20replacement%20object%20whose%20object%20graph%20has%20a%20reference%20to%20the%20original%20object\"\u003ea broken instance\u003c/a\u003e that throws \u003ccode\u003eNullPointerException\u003c/code\u003e when used. (8240c7e596, 046468055f)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Removed \u003ccode\u003e@Beta\u003c/code\u003e from all APIs in the package. (dae9566b73)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Added support to \u003ccode\u003eGraphs.transitiveClosure()\u003c/code\u003e for different strategies for adding self-loops. (2e13df25b2)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Added an \u003ccode\u003easNetwork()\u003c/code\u003e view to \u003ccode\u003eGraph\u003c/code\u003e and \u003ccode\u003eValueGraph\u003c/code\u003e. (909c593c61)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehash\u003c/code\u003e: Added \u003ccode\u003eBloomFilter.serializedSize()\u003c/code\u003e. (df9bcc251a)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enet\u003c/code\u003e: Added \u003ccode\u003eHttpHeaders.CDN_CACHE_CONTROL\u003c/code\u003e. (75331b5030)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/google/guava/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/MatthewOsorio/ai-job-hunter/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatthewOsorio%2Fai-job-hunter/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"},{"uuid":"4499519588","node_id":"PR_kwDORvJjTc7eL9ZE","number":30,"state":"open","title":"chore(deps): bump the gradle-dependencies group across 1 directory with 18 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T03:13:03.000Z","updated_at":"2026-05-22T03:17:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-dependencies","update_count":18,"packages":[{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.7","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"org.flywaydb:flyway-mysql","old_version":"12.0.3","new_version":"12.6.2"},{"name":"org.projectlombok:lombok","old_version":"1.18.42","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"org.apache.pdfbox:pdfbox","old_version":"3.0.6","new_version":"3.0.7"},{"name":"org.apache.pdfbox:jbig2-imageio","old_version":"3.0.4","new_version":"3.0.5"},{"name":"com.github.RouHim:jaudiotagger","old_version":"2.0.16","new_version":"2.0.21"},{"name":"com.github.junrar:junrar","old_version":"7.5.8","new_version":"7.6.0","repository_url":"https://github.com/junrar/junrar"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.springdoc:springdoc-openapi-starter-webmvc-ui","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/springdoc/springdoc-openapi"},{"name":"org.glassfish.jaxb:jaxb-runtime","old_version":"4.0.6","new_version":"4.0.8"},{"name":"tools.jackson:jackson-bom","old_version":"3.1.0","new_version":"3.1.3","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"com.github.ben-manes.caffeine:caffeine","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/ben-manes/caffeine"},{"name":"org.springframework.boot","old_version":"4.0.3","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"org.hibernate.orm","old_version":"7.2.6.Final","new_version":"7.3.5.Final"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"gradle-wrapper","old_version":"9.4.0","new_version":"9.5.1","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-dependencies group with 16 updates in the /booklore-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.7` | `3.5.8` |\n| org.flywaydb:flyway-mysql | `12.0.3` | `12.6.2` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.42` | `1.18.46` |\n| org.apache.pdfbox:pdfbox | `3.0.6` | `3.0.7` |\n| org.apache.pdfbox:jbig2-imageio | `3.0.4` | `3.0.5` |\n| com.github.RouHim:jaudiotagger | `2.0.16` | `2.0.21` |\n| [com.github.junrar:junrar](https://github.com/junrar/junrar) | `7.5.8` | `7.6.0` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) | `3.0.2` | `3.0.3` |\n| org.glassfish.jaxb:jaxb-runtime | `4.0.6` | `4.0.8` |\n| [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `3.1.0` | `3.1.3` |\n| [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) | `3.2.3` | `3.2.4` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `4.0.3` | `4.0.6` |\n| org.hibernate.orm | `7.2.6.Final` | `7.3.5.Final` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.0` | `9.5.1` |\n\n\nUpdates `org.mariadb.jdbc:mariadb-java-client` from 3.5.7 to 3.5.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/releases\"\u003eorg.mariadb.jdbc:mariadb-java-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Java 3.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md\"\u003eorg.mariadb.jdbc:mariadb-java-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/26b34a2f060070beb73515cfd2a49fabc8728843\"\u003e\u003ccode\u003e26b34a2\u003c/code\u003e\u003c/a\u003e Merge branch 'develop'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/06d6efee7838ab8f89ef0f7f362c6b4a95754630\"\u003e\u003ccode\u003e06d6efe\u003c/code\u003e\u003c/a\u003e bump CI actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a86a83c8fd1fa84d8d4349baab3b29df8f575192\"\u003e\u003ccode\u003ea86a83c\u003c/code\u003e\u003c/a\u003e bump 3.5.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/975f9919232b21f40d823423eac6e32d87ea8e35\"\u003e\u003ccode\u003e975f991\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to implement Codec directly and extract shared...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/75bb509521661603e0e90dd6dd5942d1382bf499\"\u003e\u003ccode\u003e75bb509\u003c/code\u003e\u003c/a\u003e [misc] code formatting cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/4c0b6a0ddd95f42fa866ce0d08e384caa2553d43\"\u003e\u003ccode\u003e4c0b6a0\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to extend UtilDateCodec and extract common dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a5b7fb1a26277a076052dbbd1a7ee2bacd4f602f\"\u003e\u003ccode\u003ea5b7fb1\u003c/code\u003e\u003c/a\u003e [misc] convert Reader and Writer from interfaces to final class implementatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/d31eb060fc66e9e37479e18a38bb1401d53ecb63\"\u003e\u003ccode\u003ed31eb06\u003c/code\u003e\u003c/a\u003e [misc] convert ReadableByteBuf from interface to final class implementation, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/11d45a9e6ea4d942e75747132bb8982471d890b8\"\u003e\u003ccode\u003e11d45a9\u003c/code\u003e\u003c/a\u003e [misc] optimize binary row decoder null bitmap checks and simplify signed Big...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/5aad14c381cbc2c4e0383ffed275306f359bd508\"\u003e\u003ccode\u003e5aad14c\u003c/code\u003e\u003c/a\u003e [misc] optimize BigInt column decoding and improve type safety in codec inter...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-mysql` from 12.0.3 to 12.6.2\n\nUpdates `org.projectlombok:lombok` from 1.18.42 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.44 (March 11th, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Jacksonized\u003c/code\u003e now supports both Jackson2 and Jackson3; you'll get a warning until you configure which one (or even both!) you want lombok to generate. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3950\"\u003e#3950\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: On JDK25, \u003ccode\u003eval\u003c/code\u003e and \u003ccode\u003e@ExtensionMethod\u003c/code\u003e could sometimes cause erroneous errors (in that you see errors but compilation succeeds anyway) using javac. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3947\"\u003e#3947\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e + fields marked \u003ccode\u003etransient\u003c/code\u003e would result in those transient fields being serialised which is surprising (and thus undesired) behaviour. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3936\"\u003e#3936\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48c8f4b33ef9231ec2587a43d122\"\u003e\u003ccode\u003efcdab3f\u003c/code\u003e\u003c/a\u003e [version] pre-release version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/1cb7d49c5d2dc98af7a66413d8119dec285d0666\"\u003e\u003ccode\u003e1cb7d49\u003c/code\u003e\u003c/a\u003e [changelog]\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e Mention Jackson3 final touches in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/12a15b00555ec8097eca2bf7d77c2c2124e13e0e\"\u003e\u003ccode\u003e12a15b0\u003c/code\u003e\u003c/a\u003e Fix: Bump EA_JDK to 27 (25 and 26 have been released)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/2be766cfc2ef56f2d986f28f734c98535d611aee\"\u003e\u003ccode\u003e2be766c\u003c/code\u003e\u003c/a\u003e Merge branch 'jackson3-final-touches'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/290fa4c8539c7e97b47f7e80033e078127050eb5\"\u003e\u003ccode\u003e290fa4c\u003c/code\u003e\u003c/a\u003e [trivial] constantize the warning we spit out for ambiguous jackson2/3, and m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e6567b6621f86b43033ab4a75e0273780e18e998\"\u003e\u003ccode\u003ee6567b6\u003c/code\u003e\u003c/a\u003e test: Add Jackson 3 test cases and version ambiguity warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/45e72e241abe98dcfb66408402da825dd2b8e925\"\u003e\u003ccode\u003e45e72e2\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 databind/dataformat annotations to HandlerUtil copy lists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/184d42363d86446a63b6270ac1eb352dc43ae76c\"\u003e\u003ccode\u003e184d423\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 support to \u003ca href=\"https://github.com/Jacksonized\"\u003e\u003ccode\u003e@​Jacksonized\u003c/code\u003e\u003c/a\u003e handlers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e027ad0f1515bd33d4d329d90e59dccbaf44651e\"\u003e\u003ccode\u003ee027ad0\u003c/code\u003e\u003c/a\u003e refactored to ShadowClassLoader use Collections::enumeration instead of Vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectlombok/lombok/compare/v1.18.42...v1.18.46\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.pdfbox:pdfbox` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:pdfbox-io` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:xmpbox` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:jbig2-imageio` from 3.0.4 to 3.0.5\n\nUpdates `com.github.RouHim:jaudiotagger` from 2.0.16 to 2.0.21\n\nUpdates `com.github.junrar:junrar` from 7.5.8 to 7.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/releases\"\u003ecom.github.junrar:junrar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.6.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Robin Schimpf\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.10\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier Roebroeck\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/blob/master/CHANGELOG.md\"\u003ecom.github.junrar:junrar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.10...v7.6.0\"\u003e7.6.0\u003c/a\u003e (2026-05-13)\u003c/h1\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.9...v7.5.10\"\u003e7.5.10\u003c/a\u003e (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.9\"\u003e7.5.9\u003c/a\u003e (2026-04-13)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/cb4b7fdb84269e95741fa22120e08ceb15a06152\"\u003e\u003ccode\u003ecb4b7fd\u003c/code\u003e\u003c/a\u003e build(deps): bump gradle-wrapper to 9.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/0bb56b3df4e3b6d14f73de92746a2eb47dd2d7a3\"\u003e\u003ccode\u003e0bb56b3\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.core:jackson-databind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/ca621b22421f9e846df23112b32113230610c8d9\"\u003e\u003ccode\u003eca621b2\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/e0874d213832bbeaa8eb265c79479b01b5fa7392\"\u003e\u003ccode\u003ee0874d2\u003c/code\u003e\u003c/a\u003e feat: support random access for files in solid RAR4 archives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/90f0548c728b0bf2e94f6e26f9e6396d9d0a7262\"\u003e\u003ccode\u003e90f0548\u003c/code\u003e\u003c/a\u003e build(deps): bump org.jreleaser from 1.23.0 to 1.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/83a5d085dc84991226229fef1515cc902d129241\"\u003e\u003ccode\u003e83a5d08\u003c/code\u003e\u003c/a\u003e build(deps): bump commons-io:commons-io from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/338efcb5472be051989fbafd7179d561c71722eb\"\u003e\u003ccode\u003e338efcb\u003c/code\u003e\u003c/a\u003e ci: replace deprecated action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/5270d235ade54d96dfc9958ab06f495fbbd169e7\"\u003e\u003ccode\u003e5270d23\u003c/code\u003e\u003c/a\u003e perf: replace RarCRC.checkCrc with java.util.zip.CRC32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/d5abcdb9af988ddfa76e98d80787e15525488332\"\u003e\u003ccode\u003ed5abcdb\u003c/code\u003e\u003c/a\u003e build(deps): bump com.github.ben-manes.versions from 0.53.0 to 0.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/edadb28896962fdcf754029bafd0994aaff24530\"\u003e\u003ccode\u003eedadb28\u003c/code\u003e\u003c/a\u003e chore(release): 7.5.10 [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/releases\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003espringdoc-openapi v3.0.3 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seregamorph\"\u003e\u003ccode\u003e@​seregamorph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/pull/3260\"\u003espringdoc/springdoc-openapi#3260\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ehttps://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/blob/v3.0.3/CHANGELOG.md\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.0.3] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3c30283fb33ced3b8368c7a890ee05d23119322a\"\u003e\u003ccode\u003e3c30283\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release v3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4184c05db39e96e8d1ce1287d5f58f242a4c8165\"\u003e\u003ccode\u003e4184c05\u003c/code\u003e\u003c/a\u003e update .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/89745c20c3695b9b934cbf77f96ef1cd1df9fac7\"\u003e\u003ccode\u003e89745c2\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4d1a730134720740ed3b9a2831d14e97dbe28780\"\u003e\u003ccode\u003e4d1a730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e from seregamorph/SpringDocHateoasConfiguration-class...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/54e765036d9d49935a97e3ccebd875581efcc8ed\"\u003e\u003ccode\u003e54e7650\u003c/code\u003e\u003c/a\u003e ConditionalOnClass (HateoasProperties.class) in SpringDocHateoasConfiguration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/9f354b2a3cb92a8caa1d0518b1916ac4f79fbd71\"\u003e\u003ccode\u003e9f354b2\u003c/code\u003e\u003c/a\u003e Spring-boot upgrade to version 4.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/14df32f99179db89967a6260562775cd6b883128\"\u003e\u003ccode\u003e14df32f\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3ee9a44547f44fb4982c98b7a5dbc1f6f9aff1a3\"\u003e\u003ccode\u003e3ee9a44\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/df99408a7674af5ea3fc40f79d81bfef372e7c0e\"\u003e\u003ccode\u003edf99408\u003c/code\u003e\u003c/a\u003e upgrade swagger-ui to version 5.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/6ee70f4074e76d3d8554487e4318681d95e444d7\"\u003e\u003ccode\u003e6ee70f4\u003c/code\u003e\u003c/a\u003e upgrade swagger-api to version 2.2.47\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.glassfish.jaxb:jaxb-runtime` from 4.0.6 to 4.0.8\n\nUpdates `tools.jackson:jackson-bom` from 3.1.0 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/c2ea79e9178f0aaa5e4f381c644140357bfc307e\"\u003e\u003ccode\u003ec2ea79e\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3906b27dcdde8fc6a4fef193147109b70bf2f0dc\"\u003e\u003ccode\u003e3906b27\u003c/code\u003e\u003c/a\u003e Prep for 3.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/b17b616c7dc264cfef26f9dd28eaf54bc40b5c4c\"\u003e\u003ccode\u003eb17b616\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/36cf9995cff15aa3e69786da1d6c52f208fddf8a\"\u003e\u003ccode\u003e36cf999\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0ae1c2ae270dabe8e21700cbcee1c266b54e84f0\"\u003e\u003ccode\u003e0ae1c2a\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3c171ebd5d6c5d8f6e8d4f3614cf9b4f0a8babb9\"\u003e\u003ccode\u003e3c171eb\u003c/code\u003e\u003c/a\u003e Prep for 3.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/8046ced071e0b36747bae0f0a96fa21914de1303\"\u003e\u003ccode\u003e8046ced\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ea00ca4cc59ba656a17a071e30a68387e51d3e0d\"\u003e\u003ccode\u003eea00ca4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0628060381a5b86e3fc07854a27b7453de559b7e\"\u003e\u003ccode\u003e0628060\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/22b8aeec79b87751a41c586404850c526eed1dbe\"\u003e\u003ccode\u003e22b8aee\u003c/code\u003e\u003c/a\u003e Prep for 3.1.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.1.0...jackson-bom-3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.ben-manes.caffeine:caffeine` from 3.2.3 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ben-manes/caffeine/releases\"\u003ecom.github.ben-manes.caffeine:caffeine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved access expiration's read performance by avoiding false sharing effects caused by the timestamp update\u003c/li\u003e\n\u003cli\u003eFixed head-of-line blocking of expiration queues caused by in-flight async entries (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed various minor issues found using AI audits\u003c/li\u003e\n\u003cli\u003eAdded \u003ca href=\"https://docs.oracle.com/en/java/javase/25/docs/api//java.base/java/io/ObjectInputFilter.html\"\u003eObjectInputFilter\u003c/a\u003e support to JCache\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/836b65c0a83e5d1641ded9c6de578654bc04b2e9\"\u003e\u003ccode\u003e836b65c\u003c/code\u003e\u003c/a\u003e use a consistent expiration tolerance calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0dc7daf962730048fe46ae4626827afbb97ddf92\"\u003e\u003ccode\u003e0dc7daf\u003c/code\u003e\u003c/a\u003e resurrect in-flight async entries on expiration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0bac8b54fd634ffe95d35ccd1d94daba95e7b369\"\u003e\u003ccode\u003e0bac8b5\u003c/code\u003e\u003c/a\u003e handle head-of-line blocking of expiration queues (fixes \u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/ff258366de0a89129152ead72524ce88f8fca67b\"\u003e\u003ccode\u003eff25836\u003c/code\u003e\u003c/a\u003e test polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f3a6176e2e3a7fe085214472858c6029c108fc3f\"\u003e\u003ccode\u003ef3a6176\u003c/code\u003e\u003c/a\u003e Fix JCache close/createCache races and recursive teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/622fbe7dbf7606f114b956205706935be2fcf3c8\"\u003e\u003ccode\u003e622fbe7\u003c/code\u003e\u003c/a\u003e Fix removal in identity views and widen hill-climber counters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/8da5a7a05d8b725c9dbd577be8ffaf2372aa7e23\"\u003e\u003ccode\u003e8da5a7a\u003c/code\u003e\u003c/a\u003e defer weighing the entry until after the putIfAbsent hit fast-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/94ad0ff8556c9923a8d9746ab85af9ee830dd051\"\u003e\u003ccode\u003e94ad0ff\u003c/code\u003e\u003c/a\u003e Record eviction stats before notifying the removal listener consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f94c0113d0c98dc0afaadf1f6748ea280aa4dff7\"\u003e\u003ccode\u003ef94c011\u003c/code\u003e\u003c/a\u003e Auto-assert eviction stats alongside notifications.withCause.exclusively\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/2e945e090fbff4f96251dfe1bacba3780a5bdb0c\"\u003e\u003ccode\u003e2e945e0\u003c/code\u003e\u003c/a\u003e Skip timestamp writes within tolerance on the read path.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ben-manes/caffeine/compare/v3.2.3...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springframework.boot` from 4.0.3 to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spring-projects/spring-boot/releases\"\u003eorg.springframework.boot's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.6\u003c/h2\u003e\n\u003ch2\u003e:lady_beetle: Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50188\"\u003e#50188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eElasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50187\"\u003e#50187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationPidFileWriter does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50185\"\u003e#50185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRandomValuePropertySource is not suitable for secrets \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50183\"\u003e#50183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCassandra auto-configuration misconfigures CqlSessionBuilder \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50180\"\u003e#50180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationTemp does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50178\"\u003e#50178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemote DevTools performs comparison incorrectly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50176\"\u003e#50176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring.rabbitmq.ssl.verify-hostname is applied inconsistently \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50174\"\u003e#50174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50077\"\u003e#50077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClassic starters are missing several modules \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50071\"\u003e#50071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModule spring-boot-resttestclient is missing from spring-boot-starter-test-classic \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/50069\"\u003e#50069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotations like \u003ccode\u003e@Ssl\u003c/code\u003e don't work on \u003ccode\u003e@Bean\u003c/code\u003e methods when using \u003ccode\u003e@ServiceConnection\u003c/code\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50064\"\u003e#50064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnversRevisionRepositoriesRegistrar should reuse \u003ccode\u003e@EnableEnversRepositories\u003c/code\u003e rather than configuring the JPA counterpart \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50039\"\u003e#50039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebFlux Cloud Foundry links endpoint includes query string from received request in resolved links \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50017\"\u003e#50017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImports on a containing test class are ignored when a nested class has imports \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50012\"\u003e#50012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWith spring.jackson.use-jackson2-defaults set to true, FAIL_ON_UNKNOWN_PROPERTIES is enabled \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49951\"\u003e#49951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e500 response from env endpoint when supplied pattern is invalid \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49946\"\u003e#49946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49945\"\u003e#49945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP method is lost when configuring excludes in EndpointRequest \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49943\"\u003e#49943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonor HttpMethod for reactive additional endpoint paths \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49880\"\u003e#49880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/artemis image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49869\"\u003e#49869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/activemq image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49866\"\u003e#49866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49854\"\u003e#49854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAPI versioning path strategy should be applied path last as it is not meant to yield \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49800\"\u003e#49800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:notebook_with_decorative_cover: Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs to encourage Java fundamentals for beginners that prefer to learn that way \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50146\"\u003e#50146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP Service Interface Clients still document that API versioning can be configured via properties \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50126\"\u003e#50126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the observability section of the Lettuce documentation is broken \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50097\"\u003e#50097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJavadoc for StaticResourceLocation.FAVICON doesn't describe icons location \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50085\"\u003e#50085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMySamlRelyingPartyConfiguration is missing a Kotlin sample \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50024\"\u003e#50024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncorrect default value for management.httpexchanges.recording.include in configuration metadata \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50019\"\u003e#50019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the Kubernetes documentation when discussing startup probes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50015\"\u003e#50015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypo in JdbcSessionAutoConfiguration Javadoc \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49873\"\u003e#49873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify that configuration property default values are not available through the Environment \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49851\"\u003e#49851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument the need for Liquibase and Flyway starters \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49839\"\u003e#49839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKafka documentation refers to deprecated JSON serializer and deserializer classes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49826\"\u003e#49826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Elasticsearch Client 9.2.8 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50027\"\u003e#50027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Groovy 5.0.5 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49911\"\u003e#49911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Hibernate 7.2.12.Final \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50134\"\u003e#50134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Jackson Bom 3.1.2 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50051\"\u003e#50051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/jaxen-xpath/jaxen/releases/tag/v2.0.1\"\u003eJaxen 2.0.1\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50104\"\u003e#50104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/FirebirdSQL/jaybird/releases/tag/v6.0.5\"\u003eJaybird 6.0.5\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49914\"\u003e#49914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/8821ad2cd381bb4b9615a61479e1de7305a8ba39\"\u003e\u003ccode\u003e8821ad2\u003c/code\u003e\u003c/a\u003e Release v4.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9e4048a03f17adfe78057a3c4d5b4693305c0ae0\"\u003e\u003ccode\u003e9e4048a\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/20bb11c3984802990572ddbeae8b66885a8f2462\"\u003e\u003ccode\u003e20bb11c\u003c/code\u003e\u003c/a\u003e Next development version (v3.5.15-SNAPSHOT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/98daa8ea30f39a5b0ca6768b5cbc2dc8698ef4e1\"\u003e\u003ccode\u003e98daa8e\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9dc5aa2863f598a15d3dfa116f4b89249daba7e7\"\u003e\u003ccode\u003e9dc5aa2\u003c/code\u003e\u003c/a\u003e Polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/874f6294b91da18367b8b5ab7b2fad3fa23cfba6\"\u003e\u003ccode\u003e874f629\u003c/code\u003e\u003c/a\u003e Fix default security with actuator but without health\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/e41b3bf731d1134bc18ec1f68ac01e0fe1c54923\"\u003e\u003ccode\u003ee41b3bf\u003c/code\u003e\u003c/a\u003e Enable hostname verification for SSL connections to Elasticsearch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/ef8527bb0ef8f564f4f9c57a7be99a7aa96c6ab0\"\u003e\u003ccode\u003eef8527b\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/f533a4549c3999aac30cb5830f07dc304933e93d\"\u003e\u003ccode\u003ef533a45\u003c/code\u003e\u003c/a\u003e Do not follow symlinks when writing PID file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/4a7bd332b6d19fef1aa4cf28434985f2b03a2e0f\"\u003e\u003ccode\u003e4a7bd33\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spring-projects/spring-boot/compare/v4.0.3...v4.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.hibernate.orm` from 7.2.6.Final to 7.3.5.Final\n\nUpdates `com.github.ben-manes.versions` from 0.53.0 to 0.54.0\n\nUpdates `gradle-wrapper` from 9.4.0 to 9.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.5.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.5.1.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTask provenance in reports and failure messages\u003c/li\u003e\n\u003cli\u003eType-safe accessors for precompiled Kotlin Settings plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.5.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/atm1020\"\u003eatm1020\u003c/a\u003e,\n\u003ca href=\"https://github.com/mataha\"\u003emataha\u003c/a\u003e,\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/kelemen\"\u003eAttila Kelemen\u003c/a\u003e,\n\u003ca href=\"https://github.com/britter\"\u003eBenedikt Ritter\u003c/a\u003e,\n\u003ca href=\"https://github.com/Vampire\"\u003eBjörn Kautler\u003c/a\u003e,\n\u003ca href=\"https://github.com/budindepunk\"\u003eCaro Silva Rode\u003c/a\u003e,\n\u003ca href=\"https://github.com/chanani\"\u003eCHANHAN\u003c/a\u003e,\n\u003ca href=\"https://github.com/DmitryNez\"\u003eDmitry Nezavitin\u003c/a\u003e,\n\u003ca href=\"https://github.com/Juneezee\"\u003eEng Zer Jun\u003c/a\u003e,\n\u003ca href=\"https://github.com/KugelLibelle\"\u003eKugelLibelle\u003c/a\u003e,\n\u003ca href=\"https://github.com/vmadalin\"\u003eMadalin Valceleanu\u003c/a\u003e,\n\u003ca href=\"https://github.com/quijote\"\u003eMarkus Gaisbauer\u003c/a\u003e,\n\u003ca href=\"https://github.com/koppor\"\u003eOliver Kopp\u003c/a\u003e,\n\u003ca href=\"https://github.com/hfhbd\"\u003ePhilip Wedemann\u003c/a\u003e,\n\u003ca href=\"https://github.com/ploober\"\u003eploober\u003c/a\u003e,\n\u003ca href=\"https://github.com/rpalcolea\"\u003eRoberto Perez Alcolea\u003c/a\u003e,\n\u003ca href=\"https://github.com/R0h1tAnand\"\u003eRohit Anand\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/usv240\"\u003eUjwal Suresh Vanjare\u003c/a\u003e,\n\u003ca href=\"https://github.com/urdak\"\u003eVictor Merkulov\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.5.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew wrapper --gradle-version=9.5.1 \u0026amp;\u0026amp; ./gradlew wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.5.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.5.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/fd78213f09782e62ca4957f9cfd3d90c6c3f1767\"\u003e\u003ccode\u003efd78213\u003c/code\u003e\u003c/a\u003e Update Documentation Infrastructure: Fix scrolling issue in user manual (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37861\"\u003e#37861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/7758437128d1c52702786ad719a13ade1b860aa8\"\u003e\u003ccode\u003e7758437\u003c/code\u003e\u003c/a\u003e fix scroll\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/2fd605fdcd69fea10570e9eb1343bbd7ca01c9d0\"\u003e\u003ccode\u003e2fd605f\u003c/code\u003e\u003c/a\u003e Only try to run as worker thread in DefaultBuildOperationQueue (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37845\"\u003e#37845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/af6984901238402386ae263d746380504e5f9138\"\u003e\u003ccode\u003eaf69849\u003c/code\u003e\u003c/a\u003e Release notes for Gradle 9.5.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37853\"\u003e#37853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f4d9d03e9bb47d2d17b6d8314fdaa32c3d0b3c1e\"\u003e\u003ccode\u003ef4d9d03\u003c/code\u003e\u003c/a\u003e Release notes for Gradle 9.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/01eda3adf40dbe97e81475e813705409dcfe1091\"\u003e\u003ccode\u003e01eda3a\u003c/code\u003e\u003c/a\u003e Address review feedback on worker-lease retry changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/7024e15139b2db9df831dd15a8b9e9052acd9a51\"\u003e\u003ccode\u003e7024e15\u003c/code\u003e\u003c/a\u003e Revert enrich file visitor with size info on \u003ccode\u003erelease\u003c/code\u003e branch (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37848\"\u003e#37848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/d51476fda21330c037a04b43ec9a93a929d05b87\"\u003e\u003ccode\u003ed51476f\u003c/code\u003e\u003c/a\u003e Fix tryRunAsWorkerThread null-return test to match contract\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/090ebabc5b6f648e01c0269a321d80372fdbfe0f\"\u003e\u003ccode\u003e090ebab\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add getLength() to FilePropertyVisitor.VisitState\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bceab24677298144860f6919bdcb031e806dbf23\"\u003e\u003ccode\u003ebceab24\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix annotation\u0026quot;\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.0...v9.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/cdome/ollumi/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdome%2Follumi/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"},{"uuid":"4499519012","node_id":"PR_kwDORqdfXc7eL9SP","number":15,"state":"open","title":"chore(deps): bump the gradle-dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T03:12:52.000Z","updated_at":"2026-05-22T03:16:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-dependencies","update_count":23,"packages":[{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.7","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"org.flywaydb:flyway-mysql","old_version":"11.19.0","new_version":"12.6.2"},{"name":"org.projectlombok:lombok","old_version":"1.18.42","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"org.apache.pdfbox:pdfbox","old_version":"3.0.6","new_version":"3.0.7"},{"name":"org.apache.pdfbox:jbig2-imageio","old_version":"3.0.4","new_version":"3.0.5"},{"name":"com.twelvemonkeys.imageio:imageio-jpeg","old_version":"3.13.0","new_version":"3.13.1"},{"name":"io.documentnode:epub4j-core","old_version":"4.2.2","new_version":"4.2.3","repository_url":"https://github.com/documentnode/epub4j"},{"name":"com.github.junrar:junrar","old_version":"7.5.7","new_version":"7.6.0","repository_url":"https://github.com/junrar/junrar"},{"name":"org.jsoup:jsoup","old_version":"1.21.2","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.springdoc:springdoc-openapi-starter-webmvc-ui","old_version":"2.8.14","new_version":"3.0.3","repository_url":"https://github.com/springdoc/springdoc-openapi"},{"name":"org.tukaani:xz","old_version":"1.11","new_version":"1.12","repository_url":"https://github.com/tukaani-project/xz-java"},{"name":"tools.jackson:jackson-bom","old_version":"3.0.4","new_version":"3.1.3","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"com.github.ben-manes.caffeine:caffeine","old_version":"3.2.0","new_version":"3.2.4","repository_url":"https://github.com/ben-manes/caffeine"},{"name":"org.assertj:assertj-core","old_version":"3.27.6","new_version":"3.27.7","repository_url":"https://github.com/assertj/assertj"},{"name":"org.springframework.boot","old_version":"4.0.2","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"org.hibernate.orm","old_version":"7.2.0.Final","new_version":"7.3.5.Final"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"gradle-wrapper","old_version":"9.3.1","new_version":"9.5.1","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-dependencies group with 18 updates in the /booklore-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.7` | `3.5.8` |\n| org.flywaydb:flyway-mysql | `11.19.0` | `12.6.2` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.42` | `1.18.46` |\n| org.apache.pdfbox:pdfbox | `3.0.6` | `3.0.7` |\n| org.apache.pdfbox:jbig2-imageio | `3.0.4` | `3.0.5` |\n| com.twelvemonkeys.imageio:imageio-jpeg | `3.13.0` | `3.13.1` |\n| [io.documentnode:epub4j-core](https://github.com/documentnode/epub4j) | `4.2.2` | `4.2.3` |\n| [com.github.junrar:junrar](https://github.com/junrar/junrar) | `7.5.7` | `7.6.0` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.21.2` | `1.22.2` |\n| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) | `2.8.14` | `3.0.3` |\n| [org.tukaani:xz](https://github.com/tukaani-project/xz-java) | `1.11` | `1.12` |\n| [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `3.0.4` | `3.1.3` |\n| [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) | `3.2.0` | `3.2.4` |\n| [org.assertj:assertj-core](https://github.com/assertj/assertj) | `3.27.6` | `3.27.7` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `4.0.2` | `4.0.6` |\n| org.hibernate.orm | `7.2.0.Final` | `7.3.5.Final` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.3.1` | `9.5.1` |\n\n\nUpdates `org.mariadb.jdbc:mariadb-java-client` from 3.5.7 to 3.5.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/releases\"\u003eorg.mariadb.jdbc:mariadb-java-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Java 3.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md\"\u003eorg.mariadb.jdbc:mariadb-java-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/26b34a2f060070beb73515cfd2a49fabc8728843\"\u003e\u003ccode\u003e26b34a2\u003c/code\u003e\u003c/a\u003e Merge branch 'develop'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/06d6efee7838ab8f89ef0f7f362c6b4a95754630\"\u003e\u003ccode\u003e06d6efe\u003c/code\u003e\u003c/a\u003e bump CI actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a86a83c8fd1fa84d8d4349baab3b29df8f575192\"\u003e\u003ccode\u003ea86a83c\u003c/code\u003e\u003c/a\u003e bump 3.5.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/975f9919232b21f40d823423eac6e32d87ea8e35\"\u003e\u003ccode\u003e975f991\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to implement Codec directly and extract shared...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/75bb509521661603e0e90dd6dd5942d1382bf499\"\u003e\u003ccode\u003e75bb509\u003c/code\u003e\u003c/a\u003e [misc] code formatting cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/4c0b6a0ddd95f42fa866ce0d08e384caa2553d43\"\u003e\u003ccode\u003e4c0b6a0\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to extend UtilDateCodec and extract common dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a5b7fb1a26277a076052dbbd1a7ee2bacd4f602f\"\u003e\u003ccode\u003ea5b7fb1\u003c/code\u003e\u003c/a\u003e [misc] convert Reader and Writer from interfaces to final class implementatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/d31eb060fc66e9e37479e18a38bb1401d53ecb63\"\u003e\u003ccode\u003ed31eb06\u003c/code\u003e\u003c/a\u003e [misc] convert ReadableByteBuf from interface to final class implementation, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/11d45a9e6ea4d942e75747132bb8982471d890b8\"\u003e\u003ccode\u003e11d45a9\u003c/code\u003e\u003c/a\u003e [misc] optimize binary row decoder null bitmap checks and simplify signed Big...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/5aad14c381cbc2c4e0383ffed275306f359bd508\"\u003e\u003ccode\u003e5aad14c\u003c/code\u003e\u003c/a\u003e [misc] optimize BigInt column decoding and improve type safety in codec inter...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-mysql` from 11.19.0 to 12.6.2\n\nUpdates `org.projectlombok:lombok` from 1.18.42 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.44 (March 11th, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Jacksonized\u003c/code\u003e now supports both Jackson2 and Jackson3; you'll get a warning until you configure which one (or even both!) you want lombok to generate. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3950\"\u003e#3950\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: On JDK25, \u003ccode\u003eval\u003c/code\u003e and \u003ccode\u003e@ExtensionMethod\u003c/code\u003e could sometimes cause erroneous errors (in that you see errors but compilation succeeds anyway) using javac. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3947\"\u003e#3947\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e + fields marked \u003ccode\u003etransient\u003c/code\u003e would result in those transient fields being serialised which is surprising (and thus undesired) behaviour. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3936\"\u003e#3936\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48c8f4b33ef9231ec2587a43d122\"\u003e\u003ccode\u003efcdab3f\u003c/code\u003e\u003c/a\u003e [version] pre-release version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/1cb7d49c5d2dc98af7a66413d8119dec285d0666\"\u003e\u003ccode\u003e1cb7d49\u003c/code\u003e\u003c/a\u003e [changelog]\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e Mention Jackson3 final touches in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/12a15b00555ec8097eca2bf7d77c2c2124e13e0e\"\u003e\u003ccode\u003e12a15b0\u003c/code\u003e\u003c/a\u003e Fix: Bump EA_JDK to 27 (25 and 26 have been released)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/2be766cfc2ef56f2d986f28f734c98535d611aee\"\u003e\u003ccode\u003e2be766c\u003c/code\u003e\u003c/a\u003e Merge branch 'jackson3-final-touches'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/290fa4c8539c7e97b47f7e80033e078127050eb5\"\u003e\u003ccode\u003e290fa4c\u003c/code\u003e\u003c/a\u003e [trivial] constantize the warning we spit out for ambiguous jackson2/3, and m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e6567b6621f86b43033ab4a75e0273780e18e998\"\u003e\u003ccode\u003ee6567b6\u003c/code\u003e\u003c/a\u003e test: Add Jackson 3 test cases and version ambiguity warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/45e72e241abe98dcfb66408402da825dd2b8e925\"\u003e\u003ccode\u003e45e72e2\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 databind/dataformat annotations to HandlerUtil copy lists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/184d42363d86446a63b6270ac1eb352dc43ae76c\"\u003e\u003ccode\u003e184d423\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 support to \u003ca href=\"https://github.com/Jacksonized\"\u003e\u003ccode\u003e@​Jacksonized\u003c/code\u003e\u003c/a\u003e handlers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e027ad0f1515bd33d4d329d90e59dccbaf44651e\"\u003e\u003ccode\u003ee027ad0\u003c/code\u003e\u003c/a\u003e refactored to ShadowClassLoader use Collections::enumeration instead of Vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectlombok/lombok/compare/v1.18.42...v1.18.46\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.pdfbox:pdfbox` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:pdfbox-io` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:xmpbox` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:jbig2-imageio` from 3.0.4 to 3.0.5\n\nUpdates `com.twelvemonkeys.imageio:imageio-jpeg` from 3.13.0 to 3.13.1\n\nUpdates `com.twelvemonkeys.imageio:imageio-tiff` from 3.13.0 to 3.13.1\n\nUpdates `com.twelvemonkeys.imageio:imageio-webp` from 3.13.0 to 3.13.1\n\nUpdates `com.twelvemonkeys.imageio:imageio-bmp` from 3.13.0 to 3.13.1\n\nUpdates `io.documentnode:epub4j-core` from 4.2.2 to 4.2.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/documentnode/epub4j/commit/4bf55082feba0496f98b867ec03ebec5f393b649\"\u003e\u003ccode\u003e4bf5508\u003c/code\u003e\u003c/a\u003e Migrate Maven Central publishing to new Central Portal API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/documentnode/epub4j/commit/b153885ef8aefbe4063a40894c048a5cc2b5a354\"\u003e\u003ccode\u003eb153885\u003c/code\u003e\u003c/a\u003e Load sdkman environment before running gradle commands\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/documentnode/epub4j/compare/v4.2.2...v4.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.junrar:junrar` from 7.5.7 to 7.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/releases\"\u003ecom.github.junrar:junrar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.6.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Robin Schimpf\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.10\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier Roebroeck\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/blob/master/CHANGELOG.md\"\u003ecom.github.junrar:junrar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.10...v7.6.0\"\u003e7.6.0\u003c/a\u003e (2026-05-13)\u003c/h1\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.9...v7.5.10\"\u003e7.5.10\u003c/a\u003e (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.9\"\u003e7.5.9\u003c/a\u003e (2026-04-13)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/cb4b7fdb84269e95741fa22120e08ceb15a06152\"\u003e\u003ccode\u003ecb4b7fd\u003c/code\u003e\u003c/a\u003e build(deps): bump gradle-wrapper to 9.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/0bb56b3df4e3b6d14f73de92746a2eb47dd2d7a3\"\u003e\u003ccode\u003e0bb56b3\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.core:jackson-databind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/ca621b22421f9e846df23112b32113230610c8d9\"\u003e\u003ccode\u003eca621b2\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/e0874d213832bbeaa8eb265c79479b01b5fa7392\"\u003e\u003ccode\u003ee0874d2\u003c/code\u003e\u003c/a\u003e feat: support random access for files in solid RAR4 archives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/90f0548c728b0bf2e94f6e26f9e6396d9d0a7262\"\u003e\u003ccode\u003e90f0548\u003c/code\u003e\u003c/a\u003e build(deps): bump org.jreleaser from 1.23.0 to 1.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/83a5d085dc84991226229fef1515cc902d129241\"\u003e\u003ccode\u003e83a5d08\u003c/code\u003e\u003c/a\u003e build(deps): bump commons-io:commons-io from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/338efcb5472be051989fbafd7179d561c71722eb\"\u003e\u003ccode\u003e338efcb\u003c/code\u003e\u003c/a\u003e ci: replace deprecated action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/5270d235ade54d96dfc9958ab06f495fbbd169e7\"\u003e\u003ccode\u003e5270d23\u003c/code\u003e\u003c/a\u003e perf: replace RarCRC.checkCrc with java.util.zip.CRC32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/d5abcdb9af988ddfa76e98d80787e15525488332\"\u003e\u003ccode\u003ed5abcdb\u003c/code\u003e\u003c/a\u003e build(deps): bump com.github.ben-manes.versions from 0.53.0 to 0.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/edadb28896962fdcf754029bafd0994aaff24530\"\u003e\u003ccode\u003eedadb28\u003c/code\u003e\u003c/a\u003e chore(release): 7.5.10 [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.7...v7.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.21.2 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.1\u003c/strong\u003e is out now, adding support for the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and numerous bug fixes and improvements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jsoup.org/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\r\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\r\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\r\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\r\n  \u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eRegex.usingRe2j()\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.22.1 (2026-Jan-01)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\n  \u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eorg.jsoup.helper.Regex.usingRe2j()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an instance method \u003ccode\u003eParser#unescape(String, boolean)\u003c/code\u003e that unescapes HTML entities using the parser's configuration (e.g. to support error tracking), complementing the existing static utility \u003ccode\u003eParser.unescapeEntities(String, boolean)\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded a configurable maximum parser depth (to limit the number of open elements on stack) to both HTML and XML parsers. The HTML parser now defaults to a depth of 512 to match browser behavior, and protect against unbounded stack growth, while the XML parser keeps unlimited depth by default, but can opt into a limit via \u003ccode\u003eorg.jsoup.parser.Parser#setMaxDepth\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2421\"\u003e#2421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added CI coverage for JDK 25 \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2403\"\u003e#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added a CI fuzzer for contextual fragment parsing (in addition to existing full body HTML and XML fuzzers). [oss-fuzz \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/14041\"\u003e#14041\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/google/oss-fuzz/pull/14041\"\u003egoogle/oss-fuzz#14041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet a removal schedule of jsoup 1.24.1 for previously deprecated APIs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously cached child \u003ccode\u003eElements\u003c/code\u003e of an \u003ccode\u003eElement\u003c/code\u003e were not correctly invalidated in \u003ccode\u003eNode#replaceWith(Node)\u003c/code\u003e, which could lead to incorrect results when subsequently calling \u003ccode\u003eElement#children()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2391\"\u003e#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttribute selector values are now compared literally without trimming. Previously, jsoup trimmed whitespace from selector values and from element attribute values, which could cause mismatches with browser behavior (e.g. \u003ccode\u003e[attr=\u0026quot; foo \u0026quot;]\u003c/code\u003e). Now matches align with the CSS specification and browser engines. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2380\"\u003e#2380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using the JDK HttpClient, any system default proxy (\u003ccode\u003eProxySelector.getDefault()\u003c/code\u003e) was ignored. Now, the system proxy is used if a per-request proxy is not set. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2388\"\u003e#2388\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2390\"\u003e#2390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eValidationException\u003c/code\u003e could be thrown in the adoption agency algorithm with particularly broken input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2393\"\u003e#2393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNull characters in the HTML body were not consistently removed; and in foreign content were not correctly replaced. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2395\"\u003e#2395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn \u003ccode\u003eIndexOutOfBoundsException\u003c/code\u003e could be thrown when parsing a body fragment with crafted input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2397\"\u003e#2397\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2406\"\u003e#2406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using StructuralEvaluators (e.g., a \u003ccode\u003eparent child\u003c/code\u003e selector) across many retained threads, their memoized results could also be retained, increasing memory use. These results are now cleared immediately after use, reducing overall memory consumption. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2411\"\u003e#2411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCloning a \u003ccode\u003eParser\u003c/code\u003e now preserves any custom \u003ccode\u003eTagSet\u003c/code\u003e applied to the parser. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2422\"\u003e#2422\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2423\"\u003e#2423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.21.2...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 2.8.14 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/releases\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003espringdoc-openapi v3.0.3 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seregamorph\"\u003e\u003ccode\u003e@​seregamorph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/pull/3260\"\u003espringdoc/springdoc-openapi#3260\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ehttps://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003espringdoc-openapi v3.0.2 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3229\"\u003e#3229\u003c/a\u003e – Add support for Spring Framework API Versioning with Functional Endpoints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3208\"\u003e#3208\u003c/a\u003e – Add \u003ccode\u003espringdoc.swagger-ui.document-title\u003c/code\u003e property\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.3\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.43\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.0\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Scalar to version \u003cstrong\u003e0.5.55\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3232\"\u003e#3232\u003c/a\u003e – Gracefully handle springdoc endpoint paths during API version resolution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3230\"\u003e#3230\u003c/a\u003e – Scalar source URLs resolve to \u003ccode\u003enull/\u0026lt;groupName\u0026gt;\u003c/code\u003e on second request when using \u003ccode\u003eGroupedOpenApi\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3228\"\u003e#3228\u003c/a\u003e – springdoc-openapi-starter 3.x doesn't depend on \u003ccode\u003eorg.springframework.boot:spring-boot-starter\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/blob/v3.0.3/CHANGELOG.md\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.0.3] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.0.2] - 2026-02-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3229\"\u003e#3229\u003c/a\u003e – Add support for Spring Framework API Versioning with Functional Endpoints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3208\"\u003e#3208\u003c/a\u003e – Add \u003ccode\u003espringdoc.swagger-ui.document-title\u003c/code\u003e property\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.3\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.43\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.0\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Scalar to version \u003cstrong\u003e0.5.55\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3232\"\u003e#3232\u003c/a\u003e – Gracefully handle springdoc endpoint paths during API version resolution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3230\"\u003e#3230\u003c/a\u003e – Scalar source URLs resolve to \u003ccode\u003enull/\u0026lt;groupName\u0026gt;\u003c/code\u003e on second request when using \u003ccode\u003eGroupedOpenApi\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3228\"\u003e#3228\u003c/a\u003e – springdoc-openapi-starter 3.x doesn't depend on \u003ccode\u003eorg.springframework.boot:spring-boot-starter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3220\"\u003e#3220\u003c/a\u003e – Reachability metadata not compatible with GraalVM 25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3195\"\u003e#3195\u003c/a\u003e – Application won't compile when OpenApi and spring-boot-data-rest is present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3193\"\u003e#3193\u003c/a\u003e – \u003ccode\u003eOpenApi\u003c/code\u003e field in \u003ccode\u003eSpringDocConfigProperties\u003c/code\u003e does not comply with camel case naming conventions\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3c30283fb33ced3b8368c7a890ee05d23119322a\"\u003e\u003ccode\u003e3c30283\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release v3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4184c05db39e96e8d1ce1287d5f58f242a4c8165\"\u003e\u003ccode\u003e4184c05\u003c/code\u003e\u003c/a\u003e update .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/89745c20c3695b9b934cbf77f96ef1cd1df9fac7\"\u003e\u003ccode\u003e89745c2\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4d1a730134720740ed3b9a2831d14e97dbe28780\"\u003e\u003ccode\u003e4d1a730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e from seregamorph/SpringDocHateoasConfiguration-class...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/54e765036d9d49935a97e3ccebd875581efcc8ed\"\u003e\u003ccode\u003e54e7650\u003c/code\u003e\u003c/a\u003e ConditionalOnClass (HateoasProperties.class) in SpringDocHateoasConfiguration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/9f354b2a3cb92a8caa1d0518b1916ac4f79fbd71\"\u003e\u003ccode\u003e9f354b2\u003c/code\u003e\u003c/a\u003e Spring-boot upgrade to version 4.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/14df32f99179db89967a6260562775cd6b883128\"\u003e\u003ccode\u003e14df32f\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3ee9a44547f44fb4982c98b7a5dbc1f6f9aff1a3\"\u003e\u003ccode\u003e3ee9a44\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/df99408a7674af5ea3fc40f79d81bfef372e7c0e\"\u003e\u003ccode\u003edf99408\u003c/code\u003e\u003c/a\u003e upgrade swagger-ui to version 5.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/6ee70f4074e76d3d8554487e4318681d95e444d7\"\u003e\u003ccode\u003e6ee70f4\u003c/code\u003e\u003c/a\u003e upgrade swagger-api to version 2.2.47\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v2.8.14...v3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.tukaani:xz` from 1.11 to 1.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tukaani-project/xz-java/blob/master/NEWS.md\"\u003eorg.tukaani:xz's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.12 (2026-03-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix ArrayIndexOutOfBoundsException in the LZMA/LZMA2 encoder on\nx86-64 and ARM64 when running on Java 9 or newer. The affected\ncode isn't used on Java 8. The bug is present in versions 1.10\nand 1.11. If one cannot upgrade, one should set the property\n\u003ccode\u003eorg.tukaani.xz.MatchLengthFinder=Basic\u003c/code\u003e to disable the affected\ncode path.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix ArrayCache usage in LZMAInputStream. If ArrayCache was enabled,\ndecompression was likely to fail quickly when the cache returns a\ncached array. ArrayCache is disabled by default.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe binaries of 1.12 in the Maven Central require Java 8 and\ncontain optimized classes for Java \u0026gt;= 9 as multi-release JAR.\nThey were built with OpenJDK 21.0.10 on GNU/Linux and can be\nreproduced using the following command:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSOURCE_DATE_EPOCH=1772370000 TZ=UTC0 ant maven\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/107a519fac1e6789101ad9c234afe3dc407be7f5\"\u003e\u003ccode\u003e107a519\u003c/code\u003e\u003c/a\u003e Bump the version number to 1.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/3061152e66a8ea2cc6366fd5da21409b8a3d4788\"\u003e\u003ccode\u003e3061152\u003c/code\u003e\u003c/a\u003e Update NEWS.md for 1.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/0ecee25c1590dae305135317cf6e768f49093af7\"\u003e\u003ccode\u003e0ecee25\u003c/code\u003e\u003c/a\u003e Refactor EXTRA_SIZE to getExtraSize()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/ac1aeb197dd8589dc6892f13f5ef68801383ec34\"\u003e\u003ccode\u003eac1aeb1\u003c/code\u003e\u003c/a\u003e Fix ArrayIndexOutOfBoundsException in the LZMA/LZMA2 encoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/12c75fd1d06ef7db89335d3da1ca5bb91ab6ac0b\"\u003e\u003ccode\u003e12c75fd\u003c/code\u003e\u003c/a\u003e Fix ArrayCache usage with LZMAInputStream\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/e52d9ad621afcaa422668484bad91ce7ba0506ef\"\u003e\u003ccode\u003ee52d9ad\u003c/code\u003e\u003c/a\u003e SHA256SUMS: Add 1.11 files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/9a755ec5335de00ce365b365b72e4683e591171f\"\u003e\u003ccode\u003e9a755ec\u003c/code\u003e\u003c/a\u003e CI: Add missing SPDX tags\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tukaani-project/xz-java/compare/v1.11...v1.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tools.jackson:jackson-bom` from 3.0.4 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/c2ea79e9178f0aaa5e4f381c644140357bfc307e\"\u003e\u003ccode\u003ec2ea79e\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3906b27dcdde8fc6a4fef193147109b70bf2f0dc\"\u003e\u003ccode\u003e3906b27\u003c/code\u003e\u003c/a\u003e Prep for 3.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/b17b616c7dc264cfef26f9dd28eaf54bc40b5c4c\"\u003e\u003ccode\u003eb17b616\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/36cf9995cff15aa3e69786da1d6c52f208fddf8a\"\u003e\u003ccode\u003e36cf999\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0ae1c2ae270dabe8e21700cbcee1c266b54e84f0\"\u003e\u003ccode\u003e0ae1c2a\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3c171ebd5d6c5d8f6e8d4f3614cf9b4f0a8babb9\"\u003e\u003ccode\u003e3c171eb\u003c/code\u003e\u003c/a\u003e Prep for 3.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/8046ced071e0b36747bae0f0a96fa21914de1303\"\u003e\u003ccode\u003e8046ced\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ea00ca4cc59ba656a17a071e30a68387e51d3e0d\"\u003e\u003ccode\u003eea00ca4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0628060381a5b86e3fc07854a27b7453de559b7e\"\u003e\u003ccode\u003e0628060\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/22b8aeec79b87751a41c586404850c526eed1dbe\"\u003e\u003ccode\u003e22b8aee\u003c/code\u003e\u003c/a\u003e Prep for 3.1.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.0.4...jackson-bom-3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.ben-manes.caffeine:caffeine` from 3.2.0 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ben-manes/caffeine/releases\"\u003ecom.github.ben-manes.caffeine:caffeine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved access expiration's read performance by avoiding false sharing effects caused by the timestamp update\u003c/li\u003e\n\u003cli\u003eFixed head-of-line blocking of expiration queues caused by in-flight async entries (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed various minor issues found using AI audits\u003c/li\u003e\n\u003cli\u003eAdded \u003ca href=\"https://docs.oracle.com/en/java/javase/25/docs/api//java.base/java/io/ObjectInputFilter.html\"\u003eObjectInputFilter\u003c/a\u003e support to JCache\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.2.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed frequency tracking of weak keys to use the object's identity hash code (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1902\"\u003e#1902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for underscores in \u003ccode\u003eCaffeineSpec\u003c/code\u003e when using numeric literals (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1890\"\u003e#1890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the external api to no longer lock when querying for the maximum size or weighted size (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1897\"\u003e#1897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded detection and recovery when a custom \u003ccode\u003eCompletableFuture\u003c/code\u003e is in an inconsistent state (\u003ca href=\"https://redirect.github.com/quarkusio/quarkus/issues/50513\"\u003equarkus#50513\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed characteristics returned by Spliterators (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ecomputeIfAbsent\u003c/code\u003e for an async cache's synchronous view to retry if incomplete\u003c/li\u003e\n\u003cli\u003eImproved \u003ccode\u003eCaffeineSpec\u003c/code\u003e when being reflectively constructed (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1839\"\u003e#1839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the handling of negative durations with variable expiration\u003c/li\u003e\n\u003cli\u003eFixed intermittent null after replacing a weak/soft value (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1820\"\u003e#1820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/836b65c0a83e5d1641ded9c6de578654bc04b2e9\"\u003e\u003ccode\u003e836b65c\u003c/code\u003e\u003c/a\u003e use a consistent expiration tolerance calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0dc7daf962730048fe46ae4626827afbb97ddf92\"\u003e\u003ccode\u003e0dc7daf\u003c/code\u003e\u003c/a\u003e resurrect in-flight async entries on expiration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0bac8b54fd634ffe95d35ccd1d94daba95e7b369\"\u003e\u003ccode\u003e0bac8b5\u003c/code\u003e\u003c/a\u003e handle head-of-line blocking of expiration queues (fixes \u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/ff258366de0a89129152ead72524ce88f8fca67b\"\u003e\u003ccode\u003eff25836\u003c/code\u003e\u003c/a\u003e test polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f3a6176e2e3a7fe085214472858c6029c108fc3f\"\u003e\u003ccode\u003ef3a6176\u003c/code\u003e\u003c/a\u003e Fix JCache close/createCache races and recursive teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/622fbe7dbf7606f114b956205706935be2fcf3c8\"\u003e\u003ccode\u003e622fbe7\u003c/code\u003e\u003c/a\u003e Fix removal in identity views and widen hill-climber counters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/8da5a7a05d8b725c9dbd577be8ffaf2372aa7e23\"\u003e\u003ccode\u003e8da5a7a\u003c/code\u003e\u003c/a\u003e defer weighing the entry until after the putIfAbsent hit fast-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/94ad0ff8556c9923a8d9746ab85af9ee830dd051\"\u003e\u003ccode\u003e94ad0ff\u003c/code\u003e\u003c/a\u003e Record eviction stats before notifying the removal listener consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f94c0113d0c98dc0afaadf1f6748ea280aa4dff7\"\u003e\u003ccode\u003ef94c011\u003c/code\u003e\u003c/a\u003e Auto-assert eviction stats alongside notifications.withCause.exclusively\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/2e945e090fbff4f96251dfe1bacba3780a5bdb0c\"\u003e\u003ccode\u003e2e945e0\u003c/code\u003e\u003c/a\u003e Skip timestamp writes within tolerance on the read path.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ben-manes/caffeine/compare/v3.2.0...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.assertj:assertj-core` from 3.27.6 to 3.27.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/assertj/assertj/releases\"\u003eorg.assertj:assertj-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.27.7\u003c/h2\u003e\n\u003ch2\u003e:lock: Security\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix XXE vulnerability in \u003ccode\u003eisXmlEqualTo\u003c/code\u003e assertion (CVE-2026-24400)\n\u003cul\u003e\n\u003cli\u003eSee GHSA-rqfh-9r24-8c9r for details; many thanks to \u003ca href=\"https://github.com/wxt201\"\u003e\u003ccode\u003e@​wxt201\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Song-Li\"\u003e\u003ccode\u003e@​Song-Li\u003c/code\u003e\u003c/a\u003e for responsibly reporting it!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:no_entry_sign: Deprecated\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eXmlStringPrettyFormatter\u003c/code\u003e with no replacement\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:bug: Bug Fixes\u003c/h2\u003e\n\u003ch3\u003eGuava\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNavigation to \u003ccode\u003eassertj-core\u003c/code\u003e or \u003ccode\u003eguava\u003c/code\u003e types from \u003ccode\u003eassertj-guava\u003c/code\u003e Javadoc site has unnecessary header \u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3478\"\u003e#3478\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Byte Buddy 1.18.3\u003c/li\u003e\n\u003cli\u003eUpgrade to JUnit BOM 5.14.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGuava\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Guava 33.5.0-jre\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/e84071667f5f8f13084af9dfa54cee5fd9db18db\"\u003e\u003ccode\u003ee840716\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release assertj-build-3.27.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/85ca7eb6609bb179c043b85ae7d290523b1ba79a\"\u003e\u003ccode\u003e85ca7eb\u003c/code\u003e\u003c/a\u003e Deprecate \u003ccode\u003eXmlStringPrettyFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/77081dc5eb107141df80f95bd0149b468e451341\"\u003e\u003ccode\u003e77081dc\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/b68fc24a9de28f28a486fc5b887c1b8a003a5823\"\u003e\u003ccode\u003eb68fc24\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.31.9 to 4.31.10 in the github-actions group ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/0cf5bb6c50f6ead3deaa2a2ff50ef1e7d933c8a3\"\u003e\u003ccode\u003e0cf5bb6\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003ekotlin.version\u003c/code\u003e from 2.1.0 to 2.2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/d393ef1f5e48c89d47d7cf6d1eae359ceda0a126\"\u003e\u003ccode\u003ed393ef1\u003c/code\u003e\u003c/a\u003e Abort tests when symbolic links cannot be created (\u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3788\"\u003e#3788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/22124331e9922af5a43ab50f7a9a25b65be53be1\"\u003e\u003ccode\u003e2212433\u003c/code\u003e\u003c/a\u003e Add IntelliJ custom inspection for test class names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/5717d025cfe0f4c66de20f3253c0b0ecba259aa1\"\u003e\u003ccode\u003e5717d02\u003c/code\u003e\u003c/a\u003e Update JetBrains icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/a8ec20bd42ed01f9cc6f654046c7dd424b0af07c\"\u003e\u003ccode\u003ea8ec20b\u003c/code\u003e\u003c/a\u003e Add icon for JetBrains products\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/c05fb3d052b415fb2d6051df939f3b7903a76afe\"\u003e\u003ccode\u003ec05fb3d\u003c/code\u003e\u003c/a\u003e Bump Maven to 3.9.12 and Wrapper to 3.3.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/assertj/assertj/compare/assertj-build-3.27.6...assertj-build-3.27.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springframework.boot` from 4.0.2 to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spring-projects/spring-boot/releases\"\u003eorg.springframework.boot's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.6\u003c/h2\u003e\n\u003ch2\u003e:lady_beetle: Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50188\"\u003e#50188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eElasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50187\"\u003e#50187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationPidFileWriter does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50185\"\u003e#50185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRandomValuePropertySource is not suitable for secrets \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50183\"\u003e#50183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCassandra auto-configuration misconfigures CqlSessionBuilder \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50180\"\u003e#50180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationTemp does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50178\"\u003e#50178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemote DevTools performs comparison incorrectly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50176\"\u003e#50176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring.rabbitmq.ssl.verify-hostname is applied inconsistently \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50174\"\u003e#50174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50077\"\u003e#50077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClassic starters are missing several modules \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50071\"\u003e#50071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModule spring-boot-resttestclient is missing from spring-boot-starter-test-classic \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/50069\"\u003e#50069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotations like \u003ccode\u003e@Ssl\u003c/code\u003e don't work on \u003ccode\u003e@Bean\u003c/code\u003e methods when using \u003ccode\u003e@ServiceConnection\u003c/code\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50064\"\u003e#50064\u003c/a...\n\n_Description has been truncated_","html_url":"https://github.com/BlindMint/booklore/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlindMint%2Fbooklore/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"},{"uuid":"4499518853","node_id":"PR_kwDORprh4c7eL9QV","number":40,"state":"open","title":"chore(deps): bump the gradle-dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T03:12:50.000Z","updated_at":"2026-05-22T03:17:36.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-dependencies","update_count":15,"packages":[{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.7","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"org.flywaydb:flyway-mysql","old_version":"12.1.1","new_version":"12.6.2"},{"name":"org.projectlombok:lombok","old_version":"1.18.44","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"org.apache.pdfbox:jbig2-imageio","old_version":"3.0.4","new_version":"3.0.5"},{"name":"com.github.RouHim:jaudiotagger","old_version":"2.0.18","new_version":"2.0.21"},{"name":"com.github.junrar:junrar","old_version":"7.5.8","new_version":"7.6.0","repository_url":"https://github.com/junrar/junrar"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.springdoc:springdoc-openapi-starter-webmvc-ui","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/springdoc/springdoc-openapi"},{"name":"org.glassfish.jaxb:jaxb-runtime","old_version":"4.0.7","new_version":"4.0.8"},{"name":"tools.jackson:jackson-bom","old_version":"3.1.0","new_version":"3.1.3","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"com.github.ben-manes.caffeine:caffeine","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/ben-manes/caffeine"},{"name":"org.springframework.boot","old_version":"4.0.3","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"org.hibernate.orm","old_version":"7.3.0.Final","new_version":"7.3.5.Final"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"gradle-wrapper","old_version":"9.4.0","new_version":"9.5.1","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-dependencies group with 15 updates in the /booklore-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.7` | `3.5.8` |\n| org.flywaydb:flyway-mysql | `12.1.1` | `12.6.2` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.44` | `1.18.46` |\n| org.apache.pdfbox:jbig2-imageio | `3.0.4` | `3.0.5` |\n| com.github.RouHim:jaudiotagger | `2.0.18` | `2.0.21` |\n| [com.github.junrar:junrar](https://github.com/junrar/junrar) | `7.5.8` | `7.6.0` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) | `3.0.2` | `3.0.3` |\n| org.glassfish.jaxb:jaxb-runtime | `4.0.7` | `4.0.8` |\n| [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `3.1.0` | `3.1.3` |\n| [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) | `3.2.3` | `3.2.4` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `4.0.3` | `4.0.6` |\n| org.hibernate.orm | `7.3.0.Final` | `7.3.5.Final` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.0` | `9.5.1` |\n\n\nUpdates `org.mariadb.jdbc:mariadb-java-client` from 3.5.7 to 3.5.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/releases\"\u003eorg.mariadb.jdbc:mariadb-java-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Java 3.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md\"\u003eorg.mariadb.jdbc:mariadb-java-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/26b34a2f060070beb73515cfd2a49fabc8728843\"\u003e\u003ccode\u003e26b34a2\u003c/code\u003e\u003c/a\u003e Merge branch 'develop'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/06d6efee7838ab8f89ef0f7f362c6b4a95754630\"\u003e\u003ccode\u003e06d6efe\u003c/code\u003e\u003c/a\u003e bump CI actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a86a83c8fd1fa84d8d4349baab3b29df8f575192\"\u003e\u003ccode\u003ea86a83c\u003c/code\u003e\u003c/a\u003e bump 3.5.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/975f9919232b21f40d823423eac6e32d87ea8e35\"\u003e\u003ccode\u003e975f991\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to implement Codec directly and extract shared...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/75bb509521661603e0e90dd6dd5942d1382bf499\"\u003e\u003ccode\u003e75bb509\u003c/code\u003e\u003c/a\u003e [misc] code formatting cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/4c0b6a0ddd95f42fa866ce0d08e384caa2553d43\"\u003e\u003ccode\u003e4c0b6a0\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to extend UtilDateCodec and extract common dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a5b7fb1a26277a076052dbbd1a7ee2bacd4f602f\"\u003e\u003ccode\u003ea5b7fb1\u003c/code\u003e\u003c/a\u003e [misc] convert Reader and Writer from interfaces to final class implementatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/d31eb060fc66e9e37479e18a38bb1401d53ecb63\"\u003e\u003ccode\u003ed31eb06\u003c/code\u003e\u003c/a\u003e [misc] convert ReadableByteBuf from interface to final class implementation, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/11d45a9e6ea4d942e75747132bb8982471d890b8\"\u003e\u003ccode\u003e11d45a9\u003c/code\u003e\u003c/a\u003e [misc] optimize binary row decoder null bitmap checks and simplify signed Big...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/5aad14c381cbc2c4e0383ffed275306f359bd508\"\u003e\u003ccode\u003e5aad14c\u003c/code\u003e\u003c/a\u003e [misc] optimize BigInt column decoding and improve type safety in codec inter...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-mysql` from 12.1.1 to 12.6.2\n\nUpdates `org.projectlombok:lombok` from 1.18.44 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48c8f4b33ef9231ec2587a43d122\"\u003e\u003ccode\u003efcdab3f\u003c/code\u003e\u003c/a\u003e [version] pre-release version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/1cb7d49c5d2dc98af7a66413d8119dec285d0666\"\u003e\u003ccode\u003e1cb7d49\u003c/code\u003e\u003c/a\u003e [changelog]\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e Mention Jackson3 final touches in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/12a15b00555ec8097eca2bf7d77c2c2124e13e0e\"\u003e\u003ccode\u003e12a15b0\u003c/code\u003e\u003c/a\u003e Fix: Bump EA_JDK to 27 (25 and 26 have been released)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/2be766cfc2ef56f2d986f28f734c98535d611aee\"\u003e\u003ccode\u003e2be766c\u003c/code\u003e\u003c/a\u003e Merge branch 'jackson3-final-touches'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/290fa4c8539c7e97b47f7e80033e078127050eb5\"\u003e\u003ccode\u003e290fa4c\u003c/code\u003e\u003c/a\u003e [trivial] constantize the warning we spit out for ambiguous jackson2/3, and m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e6567b6621f86b43033ab4a75e0273780e18e998\"\u003e\u003ccode\u003ee6567b6\u003c/code\u003e\u003c/a\u003e test: Add Jackson 3 test cases and version ambiguity warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/45e72e241abe98dcfb66408402da825dd2b8e925\"\u003e\u003ccode\u003e45e72e2\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 databind/dataformat annotations to HandlerUtil copy lists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/184d42363d86446a63b6270ac1eb352dc43ae76c\"\u003e\u003ccode\u003e184d423\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 support to \u003ca href=\"https://github.com/Jacksonized\"\u003e\u003ccode\u003e@​Jacksonized\u003c/code\u003e\u003c/a\u003e handlers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e027ad0f1515bd33d4d329d90e59dccbaf44651e\"\u003e\u003ccode\u003ee027ad0\u003c/code\u003e\u003c/a\u003e refactored to ShadowClassLoader use Collections::enumeration instead of Vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectlombok/lombok/compare/v1.18.44...v1.18.46\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.pdfbox:jbig2-imageio` from 3.0.4 to 3.0.5\n\nUpdates `com.github.RouHim:jaudiotagger` from 2.0.18 to 2.0.21\n\nUpdates `com.github.junrar:junrar` from 7.5.8 to 7.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/releases\"\u003ecom.github.junrar:junrar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.6.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Robin Schimpf\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.10\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier Roebroeck\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/blob/master/CHANGELOG.md\"\u003ecom.github.junrar:junrar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.10...v7.6.0\"\u003e7.6.0\u003c/a\u003e (2026-05-13)\u003c/h1\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.9...v7.5.10\"\u003e7.5.10\u003c/a\u003e (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.9\"\u003e7.5.9\u003c/a\u003e (2026-04-13)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/cb4b7fdb84269e95741fa22120e08ceb15a06152\"\u003e\u003ccode\u003ecb4b7fd\u003c/code\u003e\u003c/a\u003e build(deps): bump gradle-wrapper to 9.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/0bb56b3df4e3b6d14f73de92746a2eb47dd2d7a3\"\u003e\u003ccode\u003e0bb56b3\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.core:jackson-databind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/ca621b22421f9e846df23112b32113230610c8d9\"\u003e\u003ccode\u003eca621b2\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/e0874d213832bbeaa8eb265c79479b01b5fa7392\"\u003e\u003ccode\u003ee0874d2\u003c/code\u003e\u003c/a\u003e feat: support random access for files in solid RAR4 archives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/90f0548c728b0bf2e94f6e26f9e6396d9d0a7262\"\u003e\u003ccode\u003e90f0548\u003c/code\u003e\u003c/a\u003e build(deps): bump org.jreleaser from 1.23.0 to 1.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/83a5d085dc84991226229fef1515cc902d129241\"\u003e\u003ccode\u003e83a5d08\u003c/code\u003e\u003c/a\u003e build(deps): bump commons-io:commons-io from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/338efcb5472be051989fbafd7179d561c71722eb\"\u003e\u003ccode\u003e338efcb\u003c/code\u003e\u003c/a\u003e ci: replace deprecated action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/5270d235ade54d96dfc9958ab06f495fbbd169e7\"\u003e\u003ccode\u003e5270d23\u003c/code\u003e\u003c/a\u003e perf: replace RarCRC.checkCrc with java.util.zip.CRC32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/d5abcdb9af988ddfa76e98d80787e15525488332\"\u003e\u003ccode\u003ed5abcdb\u003c/code\u003e\u003c/a\u003e build(deps): bump com.github.ben-manes.versions from 0.53.0 to 0.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/edadb28896962fdcf754029bafd0994aaff24530\"\u003e\u003ccode\u003eedadb28\u003c/code\u003e\u003c/a\u003e chore(release): 7.5.10 [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/releases\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003espringdoc-openapi v3.0.3 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seregamorph\"\u003e\u003ccode\u003e@​seregamorph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/pull/3260\"\u003espringdoc/springdoc-openapi#3260\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ehttps://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/blob/v3.0.3/CHANGELOG.md\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.0.3] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3c30283fb33ced3b8368c7a890ee05d23119322a\"\u003e\u003ccode\u003e3c30283\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release v3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4184c05db39e96e8d1ce1287d5f58f242a4c8165\"\u003e\u003ccode\u003e4184c05\u003c/code\u003e\u003c/a\u003e update .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/89745c20c3695b9b934cbf77f96ef1cd1df9fac7\"\u003e\u003ccode\u003e89745c2\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4d1a730134720740ed3b9a2831d14e97dbe28780\"\u003e\u003ccode\u003e4d1a730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e from seregamorph/SpringDocHateoasConfiguration-class...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/54e765036d9d49935a97e3ccebd875581efcc8ed\"\u003e\u003ccode\u003e54e7650\u003c/code\u003e\u003c/a\u003e ConditionalOnClass (HateoasProperties.class) in SpringDocHateoasConfiguration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/9f354b2a3cb92a8caa1d0518b1916ac4f79fbd71\"\u003e\u003ccode\u003e9f354b2\u003c/code\u003e\u003c/a\u003e Spring-boot upgrade to version 4.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/14df32f99179db89967a6260562775cd6b883128\"\u003e\u003ccode\u003e14df32f\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3ee9a44547f44fb4982c98b7a5dbc1f6f9aff1a3\"\u003e\u003ccode\u003e3ee9a44\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/df99408a7674af5ea3fc40f79d81bfef372e7c0e\"\u003e\u003ccode\u003edf99408\u003c/code\u003e\u003c/a\u003e upgrade swagger-ui to version 5.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/6ee70f4074e76d3d8554487e4318681d95e444d7\"\u003e\u003ccode\u003e6ee70f4\u003c/code\u003e\u003c/a\u003e upgrade swagger-api to version 2.2.47\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.glassfish.jaxb:jaxb-runtime` from 4.0.7 to 4.0.8\n\nUpdates `tools.jackson:jackson-bom` from 3.1.0 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/c2ea79e9178f0aaa5e4f381c644140357bfc307e\"\u003e\u003ccode\u003ec2ea79e\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3906b27dcdde8fc6a4fef193147109b70bf2f0dc\"\u003e\u003ccode\u003e3906b27\u003c/code\u003e\u003c/a\u003e Prep for 3.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/b17b616c7dc264cfef26f9dd28eaf54bc40b5c4c\"\u003e\u003ccode\u003eb17b616\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/36cf9995cff15aa3e69786da1d6c52f208fddf8a\"\u003e\u003ccode\u003e36cf999\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0ae1c2ae270dabe8e21700cbcee1c266b54e84f0\"\u003e\u003ccode\u003e0ae1c2a\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3c171ebd5d6c5d8f6e8d4f3614cf9b4f0a8babb9\"\u003e\u003ccode\u003e3c171eb\u003c/code\u003e\u003c/a\u003e Prep for 3.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/8046ced071e0b36747bae0f0a96fa21914de1303\"\u003e\u003ccode\u003e8046ced\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ea00ca4cc59ba656a17a071e30a68387e51d3e0d\"\u003e\u003ccode\u003eea00ca4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0628060381a5b86e3fc07854a27b7453de559b7e\"\u003e\u003ccode\u003e0628060\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/22b8aeec79b87751a41c586404850c526eed1dbe\"\u003e\u003ccode\u003e22b8aee\u003c/code\u003e\u003c/a\u003e Prep for 3.1.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.1.0...jackson-bom-3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.ben-manes.caffeine:caffeine` from 3.2.3 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ben-manes/caffeine/releases\"\u003ecom.github.ben-manes.caffeine:caffeine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved access expiration's read performance by avoiding false sharing effects caused by the timestamp update\u003c/li\u003e\n\u003cli\u003eFixed head-of-line blocking of expiration queues caused by in-flight async entries (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed various minor issues found using AI audits\u003c/li\u003e\n\u003cli\u003eAdded \u003ca href=\"https://docs.oracle.com/en/java/javase/25/docs/api//java.base/java/io/ObjectInputFilter.html\"\u003eObjectInputFilter\u003c/a\u003e support to JCache\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/836b65c0a83e5d1641ded9c6de578654bc04b2e9\"\u003e\u003ccode\u003e836b65c\u003c/code\u003e\u003c/a\u003e use a consistent expiration tolerance calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0dc7daf962730048fe46ae4626827afbb97ddf92\"\u003e\u003ccode\u003e0dc7daf\u003c/code\u003e\u003c/a\u003e resurrect in-flight async entries on expiration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0bac8b54fd634ffe95d35ccd1d94daba95e7b369\"\u003e\u003ccode\u003e0bac8b5\u003c/code\u003e\u003c/a\u003e handle head-of-line blocking of expiration queues (fixes \u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/ff258366de0a89129152ead72524ce88f8fca67b\"\u003e\u003ccode\u003eff25836\u003c/code\u003e\u003c/a\u003e test polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f3a6176e2e3a7fe085214472858c6029c108fc3f\"\u003e\u003ccode\u003ef3a6176\u003c/code\u003e\u003c/a\u003e Fix JCache close/createCache races and recursive teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/622fbe7dbf7606f114b956205706935be2fcf3c8\"\u003e\u003ccode\u003e622fbe7\u003c/code\u003e\u003c/a\u003e Fix removal in identity views and widen hill-climber counters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/8da5a7a05d8b725c9dbd577be8ffaf2372aa7e23\"\u003e\u003ccode\u003e8da5a7a\u003c/code\u003e\u003c/a\u003e defer weighing the entry until after the putIfAbsent hit fast-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/94ad0ff8556c9923a8d9746ab85af9ee830dd051\"\u003e\u003ccode\u003e94ad0ff\u003c/code\u003e\u003c/a\u003e Record eviction stats before notifying the removal listener consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f94c0113d0c98dc0afaadf1f6748ea280aa4dff7\"\u003e\u003ccode\u003ef94c011\u003c/code\u003e\u003c/a\u003e Auto-assert eviction stats alongside notifications.withCause.exclusively\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/2e945e090fbff4f96251dfe1bacba3780a5bdb0c\"\u003e\u003ccode\u003e2e945e0\u003c/code\u003e\u003c/a\u003e Skip timestamp writes within tolerance on the read path.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ben-manes/caffeine/compare/v3.2.3...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springframework.boot` from 4.0.3 to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spring-projects/spring-boot/releases\"\u003eorg.springframework.boot's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.6\u003c/h2\u003e\n\u003ch2\u003e:lady_beetle: Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50188\"\u003e#50188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eElasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50187\"\u003e#50187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationPidFileWriter does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50185\"\u003e#50185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRandomValuePropertySource is not suitable for secrets \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50183\"\u003e#50183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCassandra auto-configuration misconfigures CqlSessionBuilder \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50180\"\u003e#50180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationTemp does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50178\"\u003e#50178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemote DevTools performs comparison incorrectly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50176\"\u003e#50176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring.rabbitmq.ssl.verify-hostname is applied inconsistently \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50174\"\u003e#50174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50077\"\u003e#50077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClassic starters are missing several modules \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50071\"\u003e#50071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModule spring-boot-resttestclient is missing from spring-boot-starter-test-classic \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/50069\"\u003e#50069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotations like \u003ccode\u003e@Ssl\u003c/code\u003e don't work on \u003ccode\u003e@Bean\u003c/code\u003e methods when using \u003ccode\u003e@ServiceConnection\u003c/code\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50064\"\u003e#50064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnversRevisionRepositoriesRegistrar should reuse \u003ccode\u003e@EnableEnversRepositories\u003c/code\u003e rather than configuring the JPA counterpart \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50039\"\u003e#50039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebFlux Cloud Foundry links endpoint includes query string from received request in resolved links \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50017\"\u003e#50017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImports on a containing test class are ignored when a nested class has imports \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50012\"\u003e#50012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWith spring.jackson.use-jackson2-defaults set to true, FAIL_ON_UNKNOWN_PROPERTIES is enabled \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49951\"\u003e#49951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e500 response from env endpoint when supplied pattern is invalid \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49946\"\u003e#49946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49945\"\u003e#49945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP method is lost when configuring excludes in EndpointRequest \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49943\"\u003e#49943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonor HttpMethod for reactive additional endpoint paths \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49880\"\u003e#49880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/artemis image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49869\"\u003e#49869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/activemq image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49866\"\u003e#49866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49854\"\u003e#49854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAPI versioning path strategy should be applied path last as it is not meant to yield \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49800\"\u003e#49800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:notebook_with_decorative_cover: Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs to encourage Java fundamentals for beginners that prefer to learn that way \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50146\"\u003e#50146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP Service Interface Clients still document that API versioning can be configured via properties \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50126\"\u003e#50126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the observability section of the Lettuce documentation is broken \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50097\"\u003e#50097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJavadoc for StaticResourceLocation.FAVICON doesn't describe icons location \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50085\"\u003e#50085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMySamlRelyingPartyConfiguration is missing a Kotlin sample \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50024\"\u003e#50024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncorrect default value for management.httpexchanges.recording.include in configuration metadata \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50019\"\u003e#50019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the Kubernetes documentation when discussing startup probes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50015\"\u003e#50015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypo in JdbcSessionAutoConfiguration Javadoc \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49873\"\u003e#49873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify that configuration property default values are not available through the Environment \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49851\"\u003e#49851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument the need for Liquibase and Flyway starters \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49839\"\u003e#49839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKafka documentation refers to deprecated JSON serializer and deserializer classes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49826\"\u003e#49826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Elasticsearch Client 9.2.8 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50027\"\u003e#50027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Groovy 5.0.5 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49911\"\u003e#49911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Hibernate 7.2.12.Final \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50134\"\u003e#50134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Jackson Bom 3.1.2 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50051\"\u003e#50051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/jaxen-xpath/jaxen/releases/tag/v2.0.1\"\u003eJaxen 2.0.1\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50104\"\u003e#50104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/FirebirdSQL/jaybird/releases/tag/v6.0.5\"\u003eJaybird 6.0.5\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49914\"\u003e#49914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/8821ad2cd381bb4b9615a61479e1de7305a8ba39\"\u003e\u003ccode\u003e8821ad2\u003c/code\u003e\u003c/a\u003e Release v4.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9e4048a03f17adfe78057a3c4d5b4693305c0ae0\"\u003e\u003ccode\u003e9e4048a\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/20bb11c3984802990572ddbeae8b66885a8f2462\"\u003e\u003ccode\u003e20bb11c\u003c/code\u003e\u003c/a\u003e Next development version (v3.5.15-SNAPSHOT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/98daa8ea30f39a5b0ca6768b5cbc2dc8698ef4e1\"\u003e\u003ccode\u003e98daa8e\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9dc5aa2863f598a15d3dfa116f4b89249daba7e7\"\u003e\u003ccode\u003e9dc5aa2\u003c/code\u003e\u003c/a\u003e Polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/874f6294b91da18367b8b5ab7b2fad3fa23cfba6\"\u003e\u003ccode\u003e874f629\u003c/code\u003e\u003c/a\u003e Fix default security with actuator but without health\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/e41b3bf731d1134bc18ec1f68ac01e0fe1c54923\"\u003e\u003ccode\u003ee41b3bf\u003c/code\u003e\u003c/a\u003e Enable hostname verification for SSL connections to Elasticsearch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/ef8527bb0ef8f564f4f9c57a7be99a7aa96c6ab0\"\u003e\u003ccode\u003eef8527b\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/f533a4549c3999aac30cb5830f07dc304933e93d\"\u003e\u003ccode\u003ef533a45\u003c/code\u003e\u003c/a\u003e Do not follow symlinks when writing PID file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/4a7bd332b6d19fef1aa4cf28434985f2b03a2e0f\"\u003e\u003ccode\u003e4a7bd33\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spring-projects/spring-boot/compare/v4.0.3...v4.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.hibernate.orm` from 7.3.0.Final to 7.3.5.Final\n\nUpdates `com.github.ben-manes.versions` from 0.53.0 to 0.54.0\n\nUpdates `gradle-wrapper` from 9.4.0 to 9.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.5.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.5.1.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTask provenance in reports and failure messages\u003c/li\u003e\n\u003cli\u003eType-safe accessors for precompiled Kotlin Settings plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.5.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/atm1020\"\u003eatm1020\u003c/a\u003e,\n\u003ca href=\"https://github.com/mataha\"\u003emataha\u003c/a\u003e,\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/kelemen\"\u003eAttila Kelemen\u003c/a\u003e,\n\u003ca href=\"https://github.com/britter\"\u003eBenedikt Ritter\u003c/a\u003e,\n\u003ca href=\"https://github.com/Vampire\"\u003eBjörn Kautler\u003c/a\u003e,\n\u003ca href=\"https://github.com/budindepunk\"\u003eCaro Silva Rode\u003c/a\u003e,\n\u003ca href=\"https://github.com/chanani\"\u003eCHANHAN\u003c/a\u003e,\n\u003ca href=\"https://github.com/DmitryNez\"\u003eDmitry Nezavitin\u003c/a\u003e,\n\u003ca href=\"https://github.com/Juneezee\"\u003eEng Zer Jun\u003c/a\u003e,\n\u003ca href=\"https://github.com/KugelLibelle\"\u003eKugelLibelle\u003c/a\u003e,\n\u003ca href=\"https://github.com/vmadalin\"\u003eMadalin Valceleanu\u003c/a\u003e,\n\u003ca href=\"https://github.com/quijote\"\u003eMarkus Gaisbauer\u003c/a\u003e,\n\u003ca href=\"https://github.com/koppor\"\u003eOliver Kopp\u003c/a\u003e,\n\u003ca href=\"https://github.com/hfhbd\"\u003ePhilip Wedemann\u003c/a\u003e,\n\u003ca href=\"https://github.com/ploober\"\u003eploober\u003c/a\u003e,\n\u003ca href=\"https://github.com/rpalcolea\"\u003eRoberto Perez Alcolea\u003c/a\u003e,\n\u003ca href=\"https://github.com/R0h1tAnand\"\u003eRohit Anand\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/usv240\"\u003eUjwal Suresh Vanjare\u003c/a\u003e,\n\u003ca href=\"https://github.com/urdak\"\u003eVictor Merkulov\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.5.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew wrapper --gradle-version=9.5.1 \u0026amp;\u0026amp; ./gradlew wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.5.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.5.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/fd78213f09782e62ca4957f9cfd3d90c6c3f1767\"\u003e\u003ccode\u003efd78213\u003c/code\u003e\u003c/a\u003e Update Documentation Infrastructure: Fix scrolling issue in user manual (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37861\"\u003e#37861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/7758437128d1c52702786ad719a13ade1b860aa8\"\u003e\u003ccode\u003e7758437\u003c/code\u003e\u003c/a\u003e fix scroll\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/2fd605fdcd69fea10570e9eb1343bbd7ca01c9d0\"\u003e\u003ccode\u003e2fd605f\u003c/code\u003e\u003c/a\u003e Only try to run as worker thread in DefaultBuildOperationQueue (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37845\"\u003e#37845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/af6984901238402386ae263d746380504e5f9138\"\u003e\u003ccode\u003eaf69849\u003c/code\u003e\u003c/a\u003e Release notes for Gradle 9.5.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37853\"\u003e#37853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f4d9d03e9bb47d2d17b6d8314fdaa32c3d0b3c1e\"\u003e\u003ccode\u003ef4d9d03\u003c/code\u003e\u003c/a\u003e Release notes for Gradle 9.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/01eda3adf40dbe97e81475e813705409dcfe1091\"\u003e\u003ccode\u003e01eda3a\u003c/code\u003e\u003c/a\u003e Address review feedback on worker-lease retry changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/7024e15139b2db9df831dd15a8b9e9052acd9a51\"\u003e\u003ccode\u003e7024e15\u003c/code\u003e\u003c/a\u003e Revert enrich file visitor with size info on \u003ccode\u003erelease\u003c/code\u003e branch (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37848\"\u003e#37848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/d51476fda21330c037a04b43ec9a93a929d05b87\"\u003e\u003ccode\u003ed51476f\u003c/code\u003e\u003c/a\u003e Fix tryRunAsWorkerThread null-return test to match contract\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/090ebabc5b6f648e01c0269a321d80372fdbfe0f\"\u003e\u003ccode\u003e090ebab\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add getLength() to FilePropertyVisitor.VisitState\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bceab24677298144860f6919bdcb031e806dbf23\"\u003e\u003ccode\u003ebceab24\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix annotation\u0026quot;\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.0...v9.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Owemeone/grimmory/pull/40","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Owemeone%2Fgrimmory/issues/40","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/40/packages"},{"uuid":"4490923096","node_id":"PR_kwDODf4ejs7dv_2n","number":60,"state":"closed","title":"build(deps): bump the gradle group across 1 directory with 32 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-23T07:07:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-21T01:10:13.000Z","updated_at":"2026-05-23T07:07:51.000Z","time_to_close":194256,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"gradle","update_count":32,"packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"commons-io:commons-io","old_version":"2.21.0","new_version":"2.22.0"},{"name":"com.fasterxml.jackson:jackson-bom","old_version":"2.21.2","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"org.flywaydb:flyway-core","old_version":"12.3.0","new_version":"12.6.1"},{"name":"org.flywaydb:flyway-database-hsqldb","old_version":"12.3.0","new_version":"12.6.1"},{"name":"org.xerial:sqlite-jdbc","old_version":"3.51.3.0","new_version":"3.53.1.0","repository_url":"https://github.com/xerial/sqlite-jdbc"},{"name":"org.graalvm.js:js-community","old_version":"25.0.2","new_version":"25.0.3","repository_url":"https://github.com/oracle/graal"},{"name":"org.graalvm.js:js-scriptengine","old_version":"25.0.2","new_version":"25.0.3","repository_url":"https://github.com/graalvm/graaljs"},{"name":"com.graphql-java:graphql-java","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/graphql-java/graphql-java"},{"name":"org.apache.groovy:groovy-all","old_version":"5.0.5","new_version":"5.0.6","repository_url":"https://github.com/apache/groovy"},{"name":"io.grpc:grpc-protobuf","old_version":"1.80.0","new_version":"1.81.0","repository_url":"https://github.com/grpc/grpc-java"},{"name":"com.drewnoakes:metadata-extractor","old_version":"2.19.0","new_version":"2.20.0","repository_url":"https://github.com/drewnoakes/metadata-extractor"},{"name":"dev.langchain4j:langchain4j","old_version":"1.12.2","new_version":"1.15.0","repository_url":"https://github.com/langchain4j/langchain4j"},{"name":"dev.langchain4j:langchain4j-azure-open-ai","old_version":"1.12.2","new_version":"1.15.0","repository_url":"https://github.com/langchain4j/langchain4j"},{"name":"dev.langchain4j:langchain4j-ollama","old_version":"1.12.2","new_version":"1.15.0","repository_url":"https://github.com/langchain4j/langchain4j"},{"name":"dev.langchain4j:langchain4j-open-ai","old_version":"1.12.2","new_version":"1.15.0","repository_url":"https://github.com/langchain4j/langchain4j"},{"name":"dev.langchain4j:langchain4j-google-ai-gemini","old_version":"1.12.2","new_version":"1.15.0","repository_url":"https://github.com/langchain4j/langchain4j"},{"name":"org.bouncycastle:bcmail-jdk18on","old_version":"1.83","new_version":"1.84","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.bouncycastle:bcpkix-jdk18on","old_version":"1.83","new_version":"1.84","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.bouncycastle:bcprov-jdk18on","old_version":"1.83","new_version":"1.84","repository_url":"https://github.com/bcgit/bc-java"},{"name":"io.swagger:swagger-compat-spec-parser","old_version":"1.0.75","new_version":"1.0.76"},{"name":"io.swagger.parser.v3:swagger-parser","old_version":"2.1.39","new_version":"2.1.42","repository_url":"https://github.com/swagger-api/swagger-parser"},{"name":"org.thymeleaf:thymeleaf","old_version":"3.1.3.RELEASE","new_version":"3.1.5.RELEASE"},{"name":"org.glassfish.jaxb:jaxb-runtime","old_version":"4.0.7","new_version":"4.0.8"},{"name":"org.seleniumhq.selenium:selenium-java","old_version":"4.41.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"com.sun.xml.messaging.saaj:saaj-impl","old_version":"3.0.4","new_version":"3.0.5"},{"name":"org.slf4j:jul-to-slf4j","old_version":"2.0.17","new_version":"2.0.18"},{"name":"org.junit.jupiter:junit-jupiter","old_version":"6.0.3","new_version":"6.1.0","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"com.github.weisj:jsvg","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/weisJ/jsvg"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"io.freefair.lombok","old_version":"9.2.0","new_version":"9.5.0","repository_url":"https://github.com/freefair/gradle-plugins"},{"name":"org.sonarqube","old_version":"7.2.3.7755","new_version":"7.3.0.8198"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle group with 32 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| commons-io:commons-io | `2.21.0` | `2.22.0` |\n| [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `2.21.2` | `2.21.3` |\n| org.flywaydb:flyway-core | `12.3.0` | `12.6.1` |\n| org.flywaydb:flyway-database-hsqldb | `12.3.0` | `12.6.1` |\n| [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) | `3.51.3.0` | `3.53.1.0` |\n| [org.graalvm.js:js-community](https://github.com/oracle/graal) | `25.0.2` | `25.0.3` |\n| [org.graalvm.js:js-scriptengine](https://github.com/graalvm/graaljs) | `25.0.2` | `25.0.3` |\n| [com.graphql-java:graphql-java](https://github.com/graphql-java/graphql-java) | `25.0` | `26.0` |\n| [org.apache.groovy:groovy-all](https://github.com/apache/groovy) | `5.0.5` | `5.0.6` |\n| [io.grpc:grpc-protobuf](https://github.com/grpc/grpc-java) | `1.80.0` | `1.81.0` |\n| [com.drewnoakes:metadata-extractor](https://github.com/drewnoakes/metadata-extractor) | `2.19.0` | `2.20.0` |\n| [dev.langchain4j:langchain4j](https://github.com/langchain4j/langchain4j) | `1.12.2` | `1.15.0` |\n| [dev.langchain4j:langchain4j-azure-open-ai](https://github.com/langchain4j/langchain4j) | `1.12.2` | `1.15.0` |\n| [dev.langchain4j:langchain4j-ollama](https://github.com/langchain4j/langchain4j) | `1.12.2` | `1.15.0` |\n| [dev.langchain4j:langchain4j-open-ai](https://github.com/langchain4j/langchain4j) | `1.12.2` | `1.15.0` |\n| [dev.langchain4j:langchain4j-google-ai-gemini](https://github.com/langchain4j/langchain4j) | `1.12.2` | `1.15.0` |\n| [org.bouncycastle:bcmail-jdk18on](https://github.com/bcgit/bc-java) | `1.83` | `1.84` |\n| [org.bouncycastle:bcpkix-jdk18on](https://github.com/bcgit/bc-java) | `1.83` | `1.84` |\n| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.83` | `1.84` |\n| io.swagger:swagger-compat-spec-parser | `1.0.75` | `1.0.76` |\n| [io.swagger.parser.v3:swagger-parser](https://github.com/swagger-api/swagger-parser) | `2.1.39` | `2.1.42` |\n| org.thymeleaf:thymeleaf | `3.1.3.RELEASE` | `3.1.5.RELEASE` |\n| org.glassfish.jaxb:jaxb-runtime | `4.0.7` | `4.0.8` |\n| [org.seleniumhq.selenium:selenium-java](https://github.com/SeleniumHQ/selenium) | `4.41.0` | `4.44.0` |\n| com.sun.xml.messaging.saaj:saaj-impl | `3.0.4` | `3.0.5` |\n| org.slf4j:jul-to-slf4j | `2.0.17` | `2.0.18` |\n| [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) | `6.0.3` | `6.1.0` |\n| [com.github.weisj:jsvg](https://github.com/weisJ/jsvg) | `2.0.0` | `2.1.0` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [io.freefair.lombok](https://github.com/freefair/gradle-plugins) | `9.2.0` | `9.5.0` |\n| org.sonarqube | `7.2.3.7755` | `7.3.0.8198` |\n\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `commons-io:commons-io` from 2.21.0 to 2.22.0\n\nUpdates `com.fasterxml.jackson:jackson-bom` from 2.21.2 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/374fbd08ee91a6c91626bae1d6497df21c89b541\"\u003e\u003ccode\u003e374fbd0\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-2.21.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/7059df78cc36832349acad026169ff890f4c718c\"\u003e\u003ccode\u003e7059df7\u003c/code\u003e\u003c/a\u003e Prep for 2.21.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/2fd60bdab3228f6b99dce81326d9fd7eaf587401\"\u003e\u003ccode\u003e2fd60bd\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/b82a3640491f66be2e56bef377b5002cd9d1567b\"\u003e\u003ccode\u003eb82a364\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ef4e013e95fc64583b0a414711648a84fc50be46\"\u003e\u003ccode\u003eef4e013\u003c/code\u003e\u003c/a\u003e Merge branch '2.18' into 2.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/536ae51c1db9dfbfc8dda697ccfd6545cf626d2b\"\u003e\u003ccode\u003e536ae51\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/536c5339035643fdca46ddd947f253afd072f764\"\u003e\u003ccode\u003e536c533\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/426b778e5ea490d164e572a63319c7cf2f362f2f\"\u003e\u003ccode\u003e426b778\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-2.18.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/a73cda9be3e57f29c53fea748f1f867eaa1457ab\"\u003e\u003ccode\u003ea73cda9\u003c/code\u003e\u003c/a\u003e Prep for 2.18.7 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/76b4a05087a9e42eb1b26f59d5b7028b0496da5e\"\u003e\u003ccode\u003e76b4a05\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.21.2...jackson-bom-2.21.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-core` from 12.3.0 to 12.6.1\n\nUpdates `org.flywaydb:flyway-database-hsqldb` from 12.3.0 to 12.6.1\n\nUpdates `org.flywaydb:flyway-database-hsqldb` from 12.3.0 to 12.6.1\n\nUpdates `org.xerial:sqlite-jdbc` from 3.51.3.0 to 3.53.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xerial/sqlite-jdbc/releases\"\u003eorg.xerial:sqlite-jdbc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.53.1.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.1 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/8263322\"\u003e8263322\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔄️ Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erewrite amalgamation_version.sh for POSIX shell (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/52522d0\"\u003e52522d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix android usage (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7ef8e0f\"\u003e7ef8e0f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.14.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/a28d6ce\"\u003ea28d6ce\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.13.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/248e1e9\"\u003e248e1e9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.jreleaser:jreleaser-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/396fdf3\"\u003e396fdf3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.tngtech.archunit:archunit-junit5 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/458abe1\"\u003e458abe1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econditionally bootstrap SLF4J API JAR (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bc7d223\"\u003ebc7d223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake JAVA_CLASSPATH configurable (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/5aa7426\"\u003e5aa7426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Michael Osipov\u003c/p\u003e\n\u003ch2\u003eRelease 3.53.0.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejdbc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexpose wal_autocheckpoint pragma in SQLiteConfig (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/dd2adcc\"\u003edd2adcc\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1397\"\u003e#1397\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/baaf087\"\u003ebaaf087\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epublish multiple classifer jars (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bdd2b64\"\u003ebdd2b64\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1273\"\u003e#1273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter Android support (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7eb6f3f\"\u003e7eb6f3f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1378\"\u003e#1378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.sonatype.central:central-publishing-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/19259e5\"\u003e19259e5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/f572217\"\u003ef572217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/b01674f0bffc45b4c213dd873867e64b9194104b\"\u003e\u003ccode\u003eb01674f\u003c/code\u003e\u003c/a\u003e chore(release): 3.53.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/e6719db995a1fee385f0421cee1eaf78e3587013\"\u003e\u003ccode\u003ee6719db\u003c/code\u003e\u003c/a\u003e chore: update native libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/826332265f8f1069faeb4a61761a8651efaefb0c\"\u003e\u003ccode\u003e8263322\u003c/code\u003e\u003c/a\u003e feat(sqlite): upgrade to sqlite 3.53.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/396fdf30d850ca78dad59bccaafae25c1e86998a\"\u003e\u003ccode\u003e396fdf3\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump org.jreleaser:jreleaser-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/bc7d22394987d5c84706c844f0b95c7856e3f294\"\u003e\u003ccode\u003ebc7d223\u003c/code\u003e\u003c/a\u003e build: conditionally bootstrap SLF4J API JAR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/4cd221a72480a681f91f78f9d8a99372daf423ce\"\u003e\u003ccode\u003e4cd221a\u003c/code\u003e\u003c/a\u003e chore: remove execute bit on non-executable files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/5aa74267e6a01c071ec88d1882de8aeec0d8d22a\"\u003e\u003ccode\u003e5aa7426\u003c/code\u003e\u003c/a\u003e build: make JAVA_CLASSPATH configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/52522d02ee5cffa8f283054d8bf5a5165206caac\"\u003e\u003ccode\u003e52522d0\u003c/code\u003e\u003c/a\u003e refactor: rewrite amalgamation_version.sh for POSIX shell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/a28d6cef66da00f8559445dfacd9f34a871509d6\"\u003e\u003ccode\u003ea28d6ce\u003c/code\u003e\u003c/a\u003e build(deps): bump gummy-bears-api-24 to 0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/458abe135cad6e20f00504418a09946c81c8dbd7\"\u003e\u003ccode\u003e458abe1\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump com.tngtech.archunit:archunit-junit5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/xerial/sqlite-jdbc/compare/3.51.3.0...3.53.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.graalvm.js:js-community` from 25.0.2 to 25.0.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oracle/graal/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.graalvm.js:js-scriptengine` from 25.0.2 to 25.0.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oracle/graaljs/blob/vm-25.0.3/CHANGELOG.md\"\u003eorg.graalvm.js:js-scriptengine's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Node.js to version 22.22.0.\u003c/li\u003e\n\u003cli\u003eLimited Chrome inspector remote debugging to localhost.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 25.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eECMAScript 2025 mode/features enabled by default.\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 22.17.1.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-intl-duration-format\"\u003e\u003ccode\u003eIntl.DurationFormat\u003c/code\u003e\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.text-encoding\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.CONSTRAINED\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-defer-import-eval\"\u003e\u003ccode\u003eimport defer\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-upsert\"\u003e\u003ccode\u003eUpsert\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEnabled source phase imports from WebAssembly modules (\u003ccode\u003eimport source mod from \u0026quot;./mod.wasm\u0026quot;\u003c/code\u003e) by default if the \u003ccode\u003ejs.webassembly\u003c/code\u003e option is enabled and the \u003ccode\u003ejs.source-phase-imports\u003c/code\u003e option is not explicitly set to \u003ccode\u003efalse\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Node.js to version 22.13.1.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-is-error\"\u003e\u003ccode\u003eError.isError\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-math-sum\"\u003e\u003ccode\u003eMath.sumPrecise\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-promise-try\"\u003e\u003ccode\u003ePromise.try\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-atomics-microwait\"\u003e\u003ccode\u003eAtomics.pause\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-arraybuffer-base64\"\u003eUint8Array to/from base64 and hex\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-source-phase-imports\"\u003eSource Phase Imports\u003c/a\u003e proposal. It is available behind the experimental option (\u003ccode\u003e--js.source-phase-imports\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/WebAssembly/esm-integration\"\u003eWebAssembly/ES Module Integration\u003c/a\u003e proposal, allowing \u003ccode\u003e.wasm\u003c/code\u003e modules to be loaded via \u003ccode\u003eimport\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eImplemented basic Worker API (resembling the API available in \u003ccode\u003ed8\u003c/code\u003e). It is available behind the experimental option \u003ccode\u003e--js.worker\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded option \u003ccode\u003ejs.stack-trace-api\u003c/code\u003e that enables/disables \u003ccode\u003eError.captureStackTrace\u003c/code\u003e, \u003ccode\u003eError.prepareStackTrace\u003c/code\u003e and \u003ccode\u003eError.stackTraceLimit\u003c/code\u003e. These non-standard extensions are disabled by default (unless \u003ccode\u003ejs.v8-compat\u003c/code\u003e or \u003ccode\u003ejs.nashorn-compat\u003c/code\u003e is used).\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.webassembly\u003c/code\u003e stable.\u003c/li\u003e\n\u003cli\u003eMade options \u003ccode\u003ejs.load\u003c/code\u003e, \u003ccode\u003ejs.print\u003c/code\u003e, and \u003ccode\u003ejs.graal-builtin\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.locale\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e. Its value, if non-empty, must be a well-formed Unicode BCP 47 locale identifier and is now validated.\u003c/li\u003e\n\u003cli\u003eAdded an experimental \u003ccode\u003ejava.util.concurrent.Executor\u003c/code\u003e that can be used to post tasks into the event loop thread in \u003ccode\u003egraal-nodejs\u003c/code\u003e. It is available as \u003ccode\u003erequire('node:graal').eventLoopExecutor\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ccode\u003eTextDecoder\u003c/code\u003e and \u003ccode\u003eTextEncoder\u003c/code\u003e APIs of the \u003ca href=\"https://encoding.spec.whatwg.org/\"\u003eWHATWG Encoding Standard\u003c/a\u003e. They are available behind the experimental option (\u003ccode\u003e--js.text-encoding\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-regex-escaping\"\u003e\u003ccode\u003eRegExp.escape\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-regexp-modifiers\"\u003eRegular Expression Pattern Modifiers\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-iterator-sequencing\"\u003eIterator Sequencing\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eECMAScript 2024 mode/features enabled by default.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-redeclarable-global-eval-vars\"\u003eMake eval-introduced global vars redeclarable\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-float16array\"\u003eFloat16Array\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-array-from-async\"\u003eArray.fromAsync\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-resizablearraybuffer\"\u003eResizable and Growable ArrayBuffers\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 20.13.1.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.esm-eval-returns-exports\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/WebAssembly/threads\"\u003eWebAssembly threads\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-promise-with-resolvers\"\u003ePromise.withResolvers\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplementation of \u003ca href=\"https://github.com/tc39/proposal-async-iterator-helpers\"\u003eAsync Iterator Helpers\u003c/a\u003e proposal (that was split out from Iterator Helpers proposal) was moved behind the experimental option \u003ccode\u003e--js.async-iterator-helpers\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-is-usv-string\"\u003eWell-Formed Unicode Strings\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-json-parse-with-source\"\u003eJSON.parse source text access\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 18.18.2.\u003c/li\u003e\n\u003cli\u003eWebAssembly support in Node.js has been enabled by default. It can be disabled using the experimental option \u003ccode\u003e--js.webassembly=false\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/eba5be12437ddf85b56b6d50180ce93e6769f72b\"\u003e\u003ccode\u003eeba5be1\u003c/code\u003e\u003c/a\u003e release GraalVM 25.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/8df2eb01cb3db4a30762d4bf42d206048f251242\"\u003e\u003ccode\u003e8df2eb0\u003c/code\u003e\u003c/a\u003e [GR-74224] Backport to 25.0: Restrict Chrome Inspector to localhost.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/af7f1c39a9e4ec97b7566467751eac01a2052e5e\"\u003e\u003ccode\u003eaf7f1c3\u003c/code\u003e\u003c/a\u003e [GR-73523] Backport to 25.0: Fix PE bailout in eval().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/768265bdcffb8e3f68f76fc072b286263daff706\"\u003e\u003ccode\u003e768265b\u003c/code\u003e\u003c/a\u003e Run basic smoke tests in the gate.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/3a36e8d60d2662fe0f940a5e95b100bd262225c0\"\u003e\u003ccode\u003e3a36e8d\u003c/code\u003e\u003c/a\u003e Restrict Chrome Inspector to localhost\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/131723667b91e4a6d4a454775768332c4d2996d7\"\u003e\u003ccode\u003e1317236\u003c/code\u003e\u003c/a\u003e Add regression test for eval() compilation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/f4583082cb7e3214bcc348d8826f2f78e95952ba\"\u003e\u003ccode\u003ef458308\u003c/code\u003e\u003c/a\u003e ScriptNode.runEval should create function object behind a TruffleBoundary.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/45949a471dc38a93dc07db5b3ce9a3f15dc1e95a\"\u003e\u003ccode\u003e45949a4\u003c/code\u003e\u003c/a\u003e [GR-72571] Backport to 25.0: Transient aux-engine-cache test failure.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/6e789095b2500bc40245b393ff29a56b790dfc1b\"\u003e\u003ccode\u003e6e78909\u003c/code\u003e\u003c/a\u003e Work around transient aux-engine-cache test failure due to speculative optimi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/bae1c8504b284238aa1f3140abddbb2592d7b82a\"\u003e\u003ccode\u003ebae1c85\u003c/code\u003e\u003c/a\u003e [GR-72939] Backport to 25.0.3: Upgrading Node.js version used by graal-nodejs...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/graalvm/graaljs/compare/vm-25.0.2...vm-25.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.graalvm.js:js-scriptengine` from 25.0.2 to 25.0.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oracle/graaljs/blob/vm-25.0.3/CHANGELOG.md\"\u003eorg.graalvm.js:js-scriptengine's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Node.js to version 22.22.0.\u003c/li\u003e\n\u003cli\u003eLimited Chrome inspector remote debugging to localhost.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 25.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eECMAScript 2025 mode/features enabled by default.\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 22.17.1.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-intl-duration-format\"\u003e\u003ccode\u003eIntl.DurationFormat\u003c/code\u003e\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.text-encoding\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.CONSTRAINED\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-defer-import-eval\"\u003e\u003ccode\u003eimport defer\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-upsert\"\u003e\u003ccode\u003eUpsert\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEnabled source phase imports from WebAssembly modules (\u003ccode\u003eimport source mod from \u0026quot;./mod.wasm\u0026quot;\u003c/code\u003e) by default if the \u003ccode\u003ejs.webassembly\u003c/code\u003e option is enabled and the \u003ccode\u003ejs.source-phase-imports\u003c/code\u003e option is not explicitly set to \u003ccode\u003efalse\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Node.js to version 22.13.1.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-is-error\"\u003e\u003ccode\u003eError.isError\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-math-sum\"\u003e\u003ccode\u003eMath.sumPrecise\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-promise-try\"\u003e\u003ccode\u003ePromise.try\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-atomics-microwait\"\u003e\u003ccode\u003eAtomics.pause\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-arraybuffer-base64\"\u003eUint8Array to/from base64 and hex\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-source-phase-imports\"\u003eSource Phase Imports\u003c/a\u003e proposal. It is available behind the experimental option (\u003ccode\u003e--js.source-phase-imports\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/WebAssembly/esm-integration\"\u003eWebAssembly/ES Module Integration\u003c/a\u003e proposal, allowing \u003ccode\u003e.wasm\u003c/code\u003e modules to be loaded via \u003ccode\u003eimport\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eImplemented basic Worker API (resembling the API available in \u003ccode\u003ed8\u003c/code\u003e). It is available behind the experimental option \u003ccode\u003e--js.worker\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded option \u003ccode\u003ejs.stack-trace-api\u003c/code\u003e that enables/disables \u003ccode\u003eError.captureStackTrace\u003c/code\u003e, \u003ccode\u003eError.prepareStackTrace\u003c/code\u003e and \u003ccode\u003eError.stackTraceLimit\u003c/code\u003e. These non-standard extensions are disabled by default (unless \u003ccode\u003ejs.v8-compat\u003c/code\u003e or \u003ccode\u003ejs.nashorn-compat\u003c/code\u003e is used).\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.webassembly\u003c/code\u003e stable.\u003c/li\u003e\n\u003cli\u003eMade options \u003ccode\u003ejs.load\u003c/code\u003e, \u003ccode\u003ejs.print\u003c/code\u003e, and \u003ccode\u003ejs.graal-builtin\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.locale\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e. Its value, if non-empty, must be a well-formed Unicode BCP 47 locale identifier and is now validated.\u003c/li\u003e\n\u003cli\u003eAdded an experimental \u003ccode\u003ejava.util.concurrent.Executor\u003c/code\u003e that can be used to post tasks into the event loop thread in \u003ccode\u003egraal-nodejs\u003c/code\u003e. It is available as \u003ccode\u003erequire('node:graal').eventLoopExecutor\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ccode\u003eTextDecoder\u003c/code\u003e and \u003ccode\u003eTextEncoder\u003c/code\u003e APIs of the \u003ca href=\"https://encoding.spec.whatwg.org/\"\u003eWHATWG Encoding Standard\u003c/a\u003e. They are available behind the experimental option (\u003ccode\u003e--js.text-encoding\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-regex-escaping\"\u003e\u003ccode\u003eRegExp.escape\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-regexp-modifiers\"\u003eRegular Expression Pattern Modifiers\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-iterator-sequencing\"\u003eIterator Sequencing\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eECMAScript 2024 mode/features enabled by default.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-redeclarable-global-eval-vars\"\u003eMake eval-introduced global vars redeclarable\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-float16array\"\u003eFloat16Array\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-array-from-async\"\u003eArray.fromAsync\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-resizablearraybuffer\"\u003eResizable and Growable ArrayBuffers\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 20.13.1.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.esm-eval-returns-exports\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/WebAssembly/threads\"\u003eWebAssembly threads\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-promise-with-resolvers\"\u003ePromise.withResolvers\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplementation of \u003ca href=\"https://github.com/tc39/proposal-async-iterator-helpers\"\u003eAsync Iterator Helpers\u003c/a\u003e proposal (that was split out from Iterator Helpers proposal) was moved behind the experimental option \u003ccode\u003e--js.async-iterator-helpers\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-is-usv-string\"\u003eWell-Formed Unicode Strings\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-json-parse-with-source\"\u003eJSON.parse source text access\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 18.18.2.\u003c/li\u003e\n\u003cli\u003eWebAssembly support in Node.js has been enabled by default. It can be disabled using the experimental option \u003ccode\u003e--js.webassembly=false\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/eba5be12437ddf85b56b6d50180ce93e6769f72b\"\u003e\u003ccode\u003eeba5be1\u003c/code\u003e\u003c/a\u003e release GraalVM 25.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/8df2eb01cb3db4a30762d4bf42d206048f251242\"\u003e\u003ccode\u003e8df2eb0\u003c/code\u003e\u003c/a\u003e [GR-74224] Backport to 25.0: Restrict Chrome Inspector to localhost.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/af7f1c39a9e4ec97b7566467751eac01a2052e5e\"\u003e\u003ccode\u003eaf7f1c3\u003c/code\u003e\u003c/a\u003e [GR-73523] Backport to 25.0: Fix PE bailout in eval().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/768265bdcffb8e3f68f76fc072b286263daff706\"\u003e\u003ccode\u003e768265b\u003c/code\u003e\u003c/a\u003e Run basic smoke tests in the gate.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/3a36e8d60d2662fe0f940a5e95b100bd262225c0\"\u003e\u003ccode\u003e3a36e8d\u003c/code\u003e\u003c/a\u003e Restrict Chrome Inspector to localhost\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/131723667b91e4a6d4a454775768332c4d2996d7\"\u003e\u003ccode\u003e1317236\u003c/code\u003e\u003c/a\u003e Add regression test for eval() compilation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/f4583082cb7e3214bcc348d8826f2f78e95952ba\"\u003e\u003ccode\u003ef458308\u003c/code\u003e\u003c/a\u003e ScriptNode.runEval should create function object behind a TruffleBoundary.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/45949a471dc38a93dc07db5b3ce9a3f15dc1e95a\"\u003e\u003ccode\u003e45949a4\u003c/code\u003e\u003c/a\u003e [GR-72571] Backport to 25.0: Transient aux-engine-cache test failure.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/6e789095b2500bc40245b393ff29a56b790dfc1b\"\u003e\u003ccode\u003e6e78909\u003c/code\u003e\u003c/a\u003e Work around transient aux-engine-cache test failure due to speculative optimi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/bae1c8504b284238aa1f3140abddbb2592d7b82a\"\u003e\u003ccode\u003ebae1c85\u003c/code\u003e\u003c/a\u003e [GR-72939] Backport to 25.0.3: Upgrading Node.js version used by graal-nodejs...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/graalvm/graaljs/compare/vm-25.0.2...vm-25.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.graphql-java:graphql-java` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/graphql-java/graphql-java/releases\"\u003ecom.graphql-java:graphql-java's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eThis is the 26.0 release of graphql-java. Highlights are summarized below; the full list of merged PRs is at the end.\u003c/p\u003e\n\u003ch2\u003e⚠️ Breaking Changes\u003c/h2\u003e\n\u003ch3\u003eQuery complexity limits are now enforced by default\u003c/h3\u003e\n\u003cp\u003eNew \u003ccode\u003eQueryComplexityLimits\u003c/code\u003e validation checks \u003ccode\u003emaxDepth\u003c/code\u003e (default \u003cstrong\u003e100\u003c/strong\u003e) and \u003ccode\u003emaxFieldsCount\u003c/code\u003e (default \u003cstrong\u003e100,000\u003c/strong\u003e) as part of standard validation. Queries exceeding these limits will now fail with new \u003ccode\u003eMaxQueryDepthExceeded\u003c/code\u003e / \u003ccode\u003eMaxQueryFieldsExceeded\u003c/code\u003e validation errors.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet custom limits via \u003ccode\u003eGraphQLContext\u003c/code\u003e using \u003ccode\u003eQueryComplexityLimits.KEY\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDisable entirely with \u003ccode\u003eQueryComplexityLimits.NONE\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIntroduced in \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4256\"\u003e#4256\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eValidation rule filtering API changed\u003c/h3\u003e\n\u003cp\u003eIn \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4228\"\u003e#4228\u003c/a\u003e the rule-filter predicate changed from \u003ccode\u003ePredicate\u0026lt;Class\u0026lt;?\u0026gt;\u0026gt;\u003c/code\u003e to \u003ccode\u003ePredicate\u0026lt;OperationValidationRule\u0026gt;\u003c/code\u003e in \u003ccode\u003eValidator.validateDocument(...)\u003c/code\u003e and \u003ccode\u003eParseAndValidate.parseAndValidate(...)\u003c/code\u003e. Callers that filtered by class (e.g. \u003ccode\u003erule -\u0026gt; rule != NoUnusedFragments.class\u003c/code\u003e) must migrate to the enum (\u003ccode\u003erule -\u0026gt; rule != OperationValidationRule.NO_UNUSED_FRAGMENTS\u003c/code\u003e). The \u003ccode\u003e@Internal\u003c/code\u003e classes \u003ccode\u003eAbstractRule\u003c/code\u003e and \u003ccode\u003eRulesVisitor\u003c/code\u003e were removed.\u003c/p\u003e\n\u003ch3\u003eBuilt-in directive handling consolidated (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4229\"\u003e#4229\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDirectiveInfo\u003c/code\u003e was removed. Replace usages:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDirectiveInfo.isGraphqlSpecifiedDirective(...)\u003c/code\u003e → \u003ccode\u003eDirectives.isBuiltInDirective(...)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDirectiveInfo.GRAPHQL_SPECIFICATION_DIRECTIVES\u003c/code\u003e → \u003ccode\u003eDirectives.BUILT_IN_DIRECTIVES\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDirectiveInfo.GRAPHQL_SPECIFICATION_DIRECTIVE_MAP\u003c/code\u003e → \u003ccode\u003eDirectives.BUILT_IN_DIRECTIVES_MAP\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDirective ordering is now consistent: all 7 built-in directives appear first, followed by user-defined directives.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eGraphQLSchema.Builder.clearDirectives()\u003c/code\u003e was initially removed then re-added in \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4276\"\u003e#4276\u003c/a\u003e with new semantics — it clears all \u003ccode\u003eadditionalDirectives\u003c/code\u003e, but built-in directives are always re-added automatically at build time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOneOf inhabitability validation (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4248\"\u003e#4248\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eNew validator rejects OneOf input types that cannot be populated with a finite value (e.g. \u003ccode\u003einput A @oneOf { a: A }\u003c/code\u003e). Schemas that previously validated may now be rejected.\u003c/p\u003e\n\u003ch3\u003eNon-null field validation for code-built schemas (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4194\"\u003e#4194\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eCode-built schemas now perform the same deprecated-on-non-null field validation as SDL-built ones. Schemas relying on the gap may now fail validation.\u003c/p\u003e\n\u003ch3\u003e\u003ccode\u003eGraphQLSchema.getCodeRegistry()\u003c/code\u003e is no longer \u003ccode\u003e@Nullable\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4247\"\u003e#4247\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eThe return type was incorrectly annotated nullable. Callers may now drop redundant null checks; downstream nullness tooling will reflect the change.\u003c/p\u003e\n\u003ch3\u003eJSpecify nullability annotations rolled out broadly\u003c/h3\u003e\n\u003cp\u003eWaves 2 and 3 (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4184\"\u003e#4184\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4274\"\u003e#4274\u003c/a\u003e) plus many individual PRs annotated hundreds of classes across \u003ccode\u003egraphql.analysis\u003c/code\u003e, \u003ccode\u003egraphql.execution\u003c/code\u003e, \u003ccode\u003egraphql.language\u003c/code\u003e, \u003ccode\u003egraphql.schema\u003c/code\u003e and others with \u003ccode\u003e@NullMarked\u003c/code\u003e/\u003ccode\u003e@NullUnmarked\u003c/code\u003e/\u003ccode\u003e@Nullable\u003c/code\u003e. Kotlin and other null-aware callers will now see stricter nullability contracts; code that relied on previously-permissive signatures may need adjustment.\u003c/p\u003e\n\u003ch2\u003e✨ New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eGraphQLSchema.FastBuilder\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4197\"\u003e#4197\u003c/a\u003e) — a more restrictive but \u003cstrong\u003e~5× faster\u003c/strong\u003e schema builder that reduces both time and memory for large schemas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eQuery complexity limits\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4256\"\u003e#4256\u003c/a\u003e) — depth/field-count guardrails baked into validation (see breaking changes above for the enforcement side).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eQueryAppliedDirective\u003c/code\u003e on operations and documents\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4297\"\u003e#4297\u003c/a\u003e) — directives applied at the operation/document level are now exposed as \u003ccode\u003eQueryAppliedDirective\u003c/code\u003es.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew instrumentation hook for post-exception-handling results\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4206\"\u003e#4206\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4207\"\u003e#4207\u003c/a\u003e) — observe the \u003ccode\u003eDataFetcherResult\u003c/code\u003e after \u003ccode\u003eDataFetcherExceptionHandler\u003c/code\u003e has mapped exceptions to errors. \u003ccode\u003eChainedInstrumentation\u003c/code\u003e delegates the new hook correctly.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGeneric \u003ccode\u003eDataFetcherResult.newBuilder(T data)\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4254\"\u003e#4254\u003c/a\u003e) — removes the need for explicit type witnesses on the common \u003ccode\u003eDataFetcherResult.\u0026lt;T\u0026gt;newResult().data(x)...\u003c/code\u003e pattern.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRe-added \u003ccode\u003eGraphQLSchema.Builder.clearDirectives()\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4276\"\u003e#4276\u003c/a\u003e) — useful with \u003ccode\u003eGraphQLSchema.transform\u003c/code\u003e to rewrite non-built-in directives; built-ins are always re-added.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003etoString()\u003c/code\u003e on AST directives holders\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4195\"\u003e#4195\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚡ Performance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eIncremental \u003ccode\u003e@defer\u003c/code\u003e execution starts earlier\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4174\"\u003e#4174\u003c/a\u003e) — begins processing deferred payloads as soon as the first incremental call is detected instead of waiting for the initial result to complete.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eValidation consolidation\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4228\"\u003e#4228\u003c/a\u003e) — all operation validation rules run in a single \u003ccode\u003eOperationValidator\u003c/code\u003e pass, significantly cutting validation overhead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/86afa76971b94b7887c1c3b0e5afa996ef46805b\"\u003e\u003ccode\u003e86afa76\u003c/code\u003e\u003c/a\u003e Update test baseline [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/95f49d95945b34ca45e9e1cc23ce1368309632fc\"\u003e\u003ccode\u003e95f49d9\u003c/code\u003e\u003c/a\u003e Bump JaCoCo to 0.8.14 for Java 25 class file support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/3af0c5cc61331ade2787bb3a0891e19750357345\"\u003e\u003ccode\u003e3af0c5c\u003c/code\u003e\u003c/a\u003e Update test baseline [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/a6cc631e328d7d01ea261aa21d9225294adfd155\"\u003e\u003ccode\u003ea6cc631\u003c/code\u003e\u003c/a\u003e JSpecify big wave 3 (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4274\"\u003e#4274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/d26e4d61dfa90f092b36e0756bfae31655d17751\"\u003e\u003ccode\u003ed26e4d6\u003c/code\u003e\u003c/a\u003e Update test baseline [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/c86eb07d9d99be6f15e1caeb7958be109cdd6ef8\"\u003e\u003ccode\u003ec86eb07\u003c/code\u003e\u003c/a\u003e Add JSpecify annotations to 10 language package classes (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4219\"\u003e#4219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/b1543882a65b1af4207c0a0626b04ae797c3a2bb\"\u003e\u003ccode\u003eb154388\u003c/code\u003e\u003c/a\u003e Update test baseline [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/aafbbd54f0591cc1c34de9c7d8451aff09bb4b8f\"\u003e\u003ccode\u003eaafbbd5\u003c/code\u003e\u003c/a\u003e Add JSpecify annotations to 10 language package classes (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4218\"\u003e#4218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/3e15aed1209b59e71bedf8ad6e3e46ba5b28a177\"\u003e\u003ccode\u003e3e15aed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4359\"\u003e#4359\u003c/a\u003e from graphql-java/dependabot/github_actions/actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/e0ca0613e1c15a7a6c4d012e1ebba37e091ac682\"\u003e\u003ccode\u003ee0ca061\u003c/code\u003e\u003c/a\u003e Bump org.apache.groovy:groovy from 5.0.4 to 5.0.5 (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4363\"\u003e#4363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/graphql-java/graphql-java/compare/v25.0...v26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.groovy:groovy-all` from 5.0.5 to 5.0.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/apache/groovy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.grpc:grpc-protobuf` from 1.80.0 to 1.81.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc-java/releases\"\u003eio.grpc:grpc-protobuf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eV1.81.0\u003c/h2\u003e\n\u003cp\u003eIn this release we drop support for Android API level 22 or lower (Lollipop or earlier), following Google Play Service’s \u003ca href=\"https://developers.google.com/android/guides/setup\"\u003ediscontinued updates for Lollipop (API levels 21 \u0026amp; 22)\u003c/a\u003e and now requires a minimum of API level 23 (Android 6.0 Marshmallow).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAPI Changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eapi: Deprecate LoadBalancer.handleResolvedAddresses(). Developers maintaining custom LoadBalancer implementations should transition to using LoadBalancer.acceptResolvedAddresses(). Unlike the deprecated method, acceptResolvedAddresses() returns a Status object, allowing the load balancer to explicitly report success or reject the update if the provided addresses or configuration are invalid. (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/11623\"\u003e#11623\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBehavior Changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ecore: Enable dns \u0026quot;caching\u0026quot; on Android for 30 seconds to reduce CPU impact of a refresh loop with an LB policy (0675f70af). DnsNameResolver ignores re-resolution requests on OpenJDK-like platforms if it has been too soon since the last DNS query because InetAddress.getAllByName() has a cache with a fixed entry lifetime, but this logic was disabled for Android which does not have that style of cache. Android’s cache uses the result TTL, which will rarely be less than 30 seconds. This change would probably be most noticeable when 1) changing to a different network (e.g., from wifi to mobile), 2) the server has different addresses for different networks, and 3) the app is not using AndroidChannelBuilder with an \u003ccode\u003eandroid.context.Context\u003c/code\u003e. For reference, it seems Chrome caches for 1 minute\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eopentelemetry: Fix baggage propagation, the baggage propagation for opentelemetry introduced in \u003ca href=\"https://redirect.github.com/grpc/grpc-java/pull/12389\"\u003e#12389\u003c/a\u003e was broken. The context is decided once and used for all recording for the call, thus guaranteeing all record()s have consistent information.\u003c/li\u003e\n\u003cli\u003ecore: Address a race condition where \u003ccode\u003eManagedChannelOrphanWrapper\u003c/code\u003e could incorrectly log a \u0026quot;not shutdown properly\u0026quot; warning during garbage collection when using directExecutor(). (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12705\"\u003e#12705\u003c/a\u003e) (d459338d9)\u003c/li\u003e\n\u003cli\u003exds: Fix xDS HTTP CONNECT's transport socket name bug which is now corrected to use \u003ccode\u003etypeUrl\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12740\"\u003e#12740\u003c/a\u003e) (eac9fe961)\u003c/li\u003e\n\u003cli\u003exds: Fix an issue where subchannel metrics were dropping their association with the \u003ccode\u003ebackend_service\u003c/code\u003e. This ensures xDS load balancing metrics are reported accurately. (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12735\"\u003e#12735\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Features\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enetty: Add tcp metrics, by implementing a few of the metrics defined in \u003ca href=\"https://redirect.github.com/grpc/proposal/pull/519\"\u003eA80\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eapi: Add a CallOption for a custom label on per-RPC metrics (0e39b2967). This CallOption is copied by grpc-opentelemetry to the \u003ccode\u003egrpc.client.call.custom\u003c/code\u003e label as defined by \u003ca href=\"https://github.com/grpc/proposal/blob/master/A108-otel-custom-per-call-label.md\"\u003egRFC A108\u003c/a\u003e. See also the \u003ca href=\"https://grpc.io/docs/guides/opentelemetry-metrics/\"\u003egRPC OpenTelemetry Metrics guide\u003c/a\u003e (update \u003ca href=\"https://redirect.github.com/grpc/grpc.io/pull/1505\"\u003ein-progress\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003exds: Add support for Weighted Round Robin (WRR) load balancing driven by custom backend metrics, implementing the behavior defined in gRFC A114. (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12645\"\u003e#12645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eutils: Update \u003ccode\u003eAdvancedTlsX509KeyManager\u003c/code\u003e so that developers can now preserve and use key aliases when dynamically reloading TLS certificates. (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12686\"\u003e#12686\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the \u0026quot;Outgoing Flow Control\u0026quot; section in the Manual Flow Control example to say onNext() does not block, but rather queues the messages in memory and advises developers to use CallStreamObserver.isReady() to prevent this memory exhaustion (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12700\"\u003e#12700\u003c/a\u003e) (a3a9ffcbe) (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12726\"\u003e#12726\u003c/a\u003e) (65ae2efda)\u003c/li\u003e\n\u003cli\u003eexamples: Clean up Health example, and document need for grpc-services (3ed732fc0)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDependencies\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Dependencies (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12719\"\u003e#12719\u003c/a\u003e) (16e17abba). Google-auth-library: 1.42.1, animal-sniffer: 1.27, assertj-core:3.27.7, error_prone_annotations:2.48.0, proto-google-common-protos:2.64.1, google-cloud-logging:3.23.10, jetty-http2-server:12.1.7, jetty-ee10-servlet:12.1.7, lincheck:3.4, opentelemetry-api:1.60.1, opentelemetry-exporter-prometheus:1.60.1-alpha, opentelemetry-gcp-resources:1.54.0-alpha, opentelemetry-sdk-extension-autoconfigure:1.60.1, opentelemetry-sdk-testing:1.60.1, robolectric:4.16.1, tomcat-embed-core:10.1.52, tomcat-embed-core9: 9.0.115,\u003c/li\u003e\n\u003cli\u003eUpgrade Netty to 4.1.132 and netty-tcnative to 2.0.75 (1528f809c)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eThanks to\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/becomeStar\"\u003e\u003ccode\u003e@​becomeStar\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benjaminp\"\u003e\u003ccode\u003e@​benjaminp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoeCqupt\"\u003e\u003ccode\u003e@​JoeCqupt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kainsin\"\u003e\u003ccode\u003e@​Kainsin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/merlimat\"\u003e\u003ccode\u003e@​merlimat\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SreeramdasLavanya\"\u003e\u003ccode\u003e@​SreeramdasLavanya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/themechbro\"\u003e\u003ccode\u003e@​themechbro\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zhangweikop\"\u003e\u003ccode\u003e@​zhangweikop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/6951542f66c59f63cbf5348b38a2306a3964adda\"\u003e\u003ccode\u003e6951542\u003c/code\u003e\u003c/a\u003e Bump version to 1.81.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/e94188e81298c36ac9654dc76025940171abc0a4\"\u003e\u003ccode\u003ee94188e\u003c/code\u003e\u003c/a\u003e Update README etc to reference 1.81.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/4813c6d06089d49a479f7f1786297dc3d8c0e549\"\u003e\u003ccode\u003e4813c6d\u003c/code\u003e\u003c/a\u003e core,xds: Fix backend_service plumbing for subchannel metrics (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12735\"\u003e#12735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/6737eb583a273dd13bf9e7b82cc1d9df75e551bd\"\u003e\u003ccode\u003e6737eb5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Replace javax ThreadSafe annotation with errorprone ThreadSafe (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/1274\"\u003e#1274\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/ef3531325ba98fa043f6f7f16fa0715e9296d7a3\"\u003e\u003ccode\u003eef35313\u003c/code\u003e\u003c/a\u003e Replace javax ThreadSafe annotation with errorprone ThreadSafe (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12742\"\u003e#12742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/3ed732fc09c41b185cd03fdd6864c4ebb82f3a80\"\u003e\u003ccode\u003e3ed732f\u003c/code\u003e\u003c/a\u003e examples: Clean up Health, and document need for grpc-services\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/eac9fe9612881d54d51ddc5496599ba9a8201021\"\u003e\u003ccode\u003eeac9fe9\u003c/code\u003e\u003c/a\u003e xds: fix xDS HTTP CONNECT's transport socket name bug (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12740\"\u003e#12740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/1528f809c9e506cf2e7052e3f41fd8b75636d3d3\"\u003e\u003ccode\u003e1528f80\u003c/code\u003e\u003c/a\u003e Upgrade Netty to 4.1.132 and netty-tcnative to 2.0.75\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/d057a7ebee2945fc0a9ca58b36afdb5b37a99680\"\u003e\u003ccode\u003ed057a7e\u003c/code\u003e\u003c/a\u003e [xds] Implement A114: WRR support for custom backend metrics (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12645\"\u003e#12645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/842636f88452c30769a5561f7659db6e4f9fc2a0\"\u003e\u003ccode\u003e842636f\u003c/code\u003e\u003c/a\u003e xds: Add configuration objects for ExtAuthz, GrpcService and Bootstrap change...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc-java/compare/v1.80.0...v1.81.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.drewnoakes:metadata-extractor` from 2.19.0 to 2.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/drewnoakes/metadata-extractor/releases\"\u003ecom.drewnoakes:metadata-extractor's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify string creation by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/637\"\u003edrewnoakes/metadata-extractor#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCopy paste error fixed by \u003ca href=\"https://github.com/GRuppert\"\u003e\u003ccode\u003e@​GRuppert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/641\"\u003edrewnoakes/metadata-extractor#641\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded code to parse OM System II makernote (uses Olympus II makernote) by \u003ca href=\"https://github.com/AndyDragon\"\u003e\u003ccode\u003e@​AndyDragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/642\"\u003edrewnoakes/metadata-extractor#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd HEIC/HEIF to README by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/645\"\u003edrewnoakes/metadata-extractor#645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrim trailing null bytes from some string values by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/647\"\u003edrewnoakes/metadata-extractor#647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed parsing of illegal dates + handle known null value by \u003ca href=\"https://github.com/StefanOltmann\"\u003e\u003ccode\u003e@​StefanOltmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/650\"\u003edrewnoakes/metadata-extractor#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport AVIF / AV1 images by \u003ca href=\"https://github.com/StefanOltmann\"\u003e\u003ccode\u003e@​StefanOltmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/649\"\u003edrewnoakes/metadata-extractor#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emaven.yml fixed after branch rename by \u003ca href=\"https://github.com/StefanOltmann\"\u003e\u003ccode\u003e@​StefanOltmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/652\"\u003edrewnoakes/metadata-extractor#652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed wrong date/time when timezone is null by \u003ca href=\"https://github.com/StefanOltmann\"\u003e\u003ccode\u003e@​StefanOltmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/651\"\u003edrewnoakes/metadata-extractor#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate lengths before parsing JPEG data by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/653\"\u003edrewnoakes/metadata-extractor#653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Automatic-Module-Name by \u003ca href=\"https://github.com/tsmock\"\u003e\u003ccode\u003e@​tsmock\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/621\"\u003edrewnoakes/metadata-extractor#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PDF support to detectFileType by \u003ca href=\"https://github.com/max-peroch\"\u003e\u003ccode\u003e@​max-peroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/665\"\u003edrewnoakes/metadata-extractor#665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix of \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/issues/676\"\u003e#676\u003c/a\u003e by \u003ca href=\"https://github.com/ogawaffm\"\u003e\u003ccode\u003e@​ogawaffm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/677\"\u003edrewnoakes/metadata-extractor#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/issues/685\"\u003e#685\u003c/a\u003e | Fix StringIndexOutOfBoundsException in ICC DESC tag processing by \u003ca href=\"https://github.com/DAN-MU-ZI\"\u003e\u003ccode\u003e@​DAN-MU-ZI\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/687\"\u003edrewnoakes/metadata-extractor#687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump Java version to 1.8 by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/696\"\u003edrewnoakes/metadata-extractor#696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rounding error in shutter speed description by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/695\"\u003edrewnoakes/metadata-extractor#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend file type detection by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/697\"\u003edrewnoakes/metadata-extractor#697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue \u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/ricekot/zap-extensions/pull/60","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricekot%2Fzap-extensions/issues/60","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/60/packages"},{"uuid":"4442091877","node_id":"PR_kwDOP3VK-c7bVHXb","number":413,"state":"closed","title":"Bump the gradle-updates group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-21T01:34:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-14T00:27:03.000Z","updated_at":"2026-05-21T01:34:54.000Z","time_to_close":608869,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"gradle-updates","update_count":12,"packages":[{"name":"tools.jackson.core:jackson-core","old_version":"3.1.2","new_version":"3.1.3","repository_url":"https://github.com/FasterXML/jackson-core"},{"name":"io.sentry:sentry-bom","old_version":"8.38.0","new_version":"8.41.0","repository_url":"https://github.com/getsentry/sentry-java"},{"name":"au.com.dius.pact.consumer:junit5","old_version":"4.6.20","new_version":"4.7.1","repository_url":"https://github.com/pact-foundation/pact-jvm"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"io.sentry.jvm.gradle","old_version":"6.4.0","new_version":"6.6.0","repository_url":"https://github.com/getsentry/sentry-android-gradle-plugin"},{"name":"au.com.dius.pact","old_version":"4.6.20","new_version":"4.7.1"},{"name":"com.deque.html.axe-core:playwright","old_version":"4.11.1","new_version":"4.11.3","repository_url":"https://github.com/dequelabs/axe-core-maven-html"},{"name":"com.fasterxml.jackson.core:jackson-databind","old_version":"2.21.2","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson"},{"name":"org.postgresql:postgresql","old_version":"42.7.10","new_version":"42.7.11","repository_url":"https://github.com/pgjdbc/pgjdbc"},{"name":"org.projectlombok:lombok","old_version":"1.18.44","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"gradle-wrapper","old_version":"9.4.1","new_version":"9.5.0","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-updates group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tools.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) | `3.1.2` | `3.1.3` |\n| [io.sentry:sentry-bom](https://github.com/getsentry/sentry-java) | `8.38.0` | `8.41.0` |\n| [au.com.dius.pact.consumer:junit5](https://github.com/pact-foundation/pact-jvm) | `4.6.20` | `4.7.1` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [io.sentry.jvm.gradle](https://github.com/getsentry/sentry-android-gradle-plugin) | `6.4.0` | `6.6.0` |\n| au.com.dius.pact | `4.6.20` | `4.7.1` |\n| [com.deque.html.axe-core:playwright](https://github.com/dequelabs/axe-core-maven-html) | `4.11.1` | `4.11.3` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.21.2` | `2.21.3` |\n| [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) | `42.7.10` | `42.7.11` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.44` | `1.18.46` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.1` | `9.5.0` |\n\n\nUpdates `tools.jackson.core:jackson-core` from 3.1.2 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/6956129ace69d7d28dfde174be6490e1707b43ae\"\u003e\u003ccode\u003e6956129\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/2796462b783180ad13cc9c8a6dbe1e8efe221e62\"\u003e\u003ccode\u003e2796462\u003c/code\u003e\u003c/a\u003e Prep for 3.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/87c70b305d74b3bfff32fab0daebfec12f6a8301\"\u003e\u003ccode\u003e87c70b3\u003c/code\u003e\u003c/a\u003e Merge branch '2.x' into 3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/f21195dc779d1fcf7e25dd1ba445bbd524536efc\"\u003e\u003ccode\u003ef21195d\u003c/code\u003e\u003c/a\u003e Merge branch '2.21' into 2.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/59fb9cc1bbe4424221b171e88b37bcbdbdba1c50\"\u003e\u003ccode\u003e59fb9cc\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/3cb88d1cf3bc30e9629af25f0f503db236b508e2\"\u003e\u003ccode\u003e3cb88d1\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/5815636064ca5f5f2f5af0a91c7ad96368c239e7\"\u003e\u003ccode\u003e5815636\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.21.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/6e728f9bde605f98e34d67d5db0a1b530b0a9bfd\"\u003e\u003ccode\u003e6e728f9\u003c/code\u003e\u003c/a\u003e Prep for 2.21.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/4e30cf21ca4faeffa062ae13730fade890ce2540\"\u003e\u003ccode\u003e4e30cf2\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/1429fffeca1eee24d7c3d7a0887c5ac10cac7a58\"\u003e\u003ccode\u003e1429fff\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-core/compare/jackson-core-3.1.2...jackson-core-3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tools.jackson.core:jackson-databind` from 3.1.2 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.sentry:sentry-bom` from 8.38.0 to 8.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-java/releases\"\u003eio.sentry:sentry-bom's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.41.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSession Replay: experimental support for capturing \u003ccode\u003eSurfaceView\u003c/code\u003e content (e.g. Unity, video players, maps) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5333\"\u003e#5333\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eTo enable, set \u003ccode\u003eoptions.sessionReplay.isCaptureSurfaceViews = true\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eOr via manifest: \u003ccode\u003e\u0026lt;meta-data android:name=\u0026quot;io.sentry.session-replay.capture-surface-views\u0026quot; android:value=\u0026quot;true\u0026quot; /\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWarning:\u003c/strong\u003e masking granularity is at the SurfaceView level only — the SDK cannot mask individual elements rendered inside the SurfaceView (e.g. native Unity UI, map labels, video frames). Only enable for SurfaceViews whose content is safe to record.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSentry.feedback()\u003c/code\u003e API for \u003ccode\u003eshow()\u003c/code\u003e and \u003ccode\u003ecapture()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5349\"\u003e#5349\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSentry.showUserFeedbackDialog()\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentry.feedback().show()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentry.captureFeedback()\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentry.feedback().capture()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentry.captureUserFeedback()\u003c/code\u003e and \u003ccode\u003eUserFeedback\u003c/code\u003e are deprecated in favor of \u003ccode\u003eSentry.feedback().capture()\u003c/code\u003e with the new \u003ccode\u003eFeedback\u003c/code\u003e type\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentryUserFeedbackDialog\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentryUserFeedbackForm\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAll deprecated APIs will be removed in the next major version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eSentryUserFeedbackButton\u003c/code\u003e (View-based and Compose-based) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5350\"\u003e#5350\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eIt will be removed in the next major version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd per-form shake-to-show support for \u003ccode\u003eSentryUserFeedbackForm\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5353\"\u003e#5353\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eUseful for enabling shake-to-report on specific screens instead of globally\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003eSentryUserFeedbackForm.Builder(activity)\n  .configurator { it.isUseShakeGesture = true }\n  .create()\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support for Kafka (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5249\"\u003e#5249\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eYou will need to add the \u003ccode\u003esentry-kafka\u003c/code\u003e dependency and opt-in via the new option.\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003eoptions.setEnableQueueTracing(true)\u003c/code\u003e on \u003ccode\u003eSentry.init\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eOr set \u003ccode\u003esentry.enable-queue-tracing=true\u003c/code\u003e in \u003ccode\u003eapplication.properties\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFor Spring Boot Kafka is auto instrumented and no further configuration is needed.\n\u003cul\u003e\n\u003cli\u003ealso see \u003ca href=\"https://docs.sentry.io/platforms/java/guides/spring-boot/integrations/kafka/\"\u003ehttps://docs.sentry.io/platforms/java/guides/spring-boot/integrations/kafka/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003ekafka-clients\u003c/code\u003e directly\n\u003cul\u003e\n\u003cli\u003eyou need to wrap your \u003ccode\u003eKafkaProducer\u003c/code\u003e via \u003ccode\u003eSentryKafkaProducer.wrap(kafkaProducer)\u003c/code\u003e to get \u003ccode\u003equeue.publish\u003c/code\u003e spans\u003c/li\u003e\n\u003cli\u003eand you may use our \u003ccode\u003eSentryKafkaConsumerTracing.withTracing\u003c/code\u003e helper to instrument the consumer side manually.\u003c/li\u003e\n\u003cli\u003ealso see \u003ca href=\"https://docs.sentry.io/platforms/java/integrations/kafka/\"\u003ehttps://docs.sentry.io/platforms/java/integrations/kafka/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix soft input keyboard not being shown on the Feedback form (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5359\"\u003e#5359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix shake-to-report not triggering on some devices due to high acceleration threshold (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5366\"\u003e#5366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix feedback form retaining previous message when shown again via shake (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5366\"\u003e#5366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid stack overflow when deserializing large flat JSON objects (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5361\"\u003e#5361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump Native SDK from v0.13.7 to v0.14.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5334\"\u003e#5334\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5365\"\u003e#5365\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0140\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/compare/0.13.7...0.14.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump Gradle from v9.4.1 to v9.5.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5344\"\u003e#5344\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/blob/master/CHANGELOG.md#v950\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.1...v9.5.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.40.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md\"\u003eio.sentry:sentry-bom's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.41.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSession Replay: experimental support for capturing \u003ccode\u003eSurfaceView\u003c/code\u003e content (e.g. Unity, video players, maps) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5333\"\u003e#5333\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eTo enable, set \u003ccode\u003eoptions.sessionReplay.isCaptureSurfaceViews = true\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eOr via manifest: \u003ccode\u003e\u0026lt;meta-data android:name=\u0026quot;io.sentry.session-replay.capture-surface-views\u0026quot; android:value=\u0026quot;true\u0026quot; /\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWarning:\u003c/strong\u003e masking granularity is at the SurfaceView level only — the SDK cannot mask individual elements rendered inside the SurfaceView (e.g. native Unity UI, map labels, video frames). Only enable for SurfaceViews whose content is safe to record.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSentry.feedback()\u003c/code\u003e API for \u003ccode\u003eshow()\u003c/code\u003e and \u003ccode\u003ecapture()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5349\"\u003e#5349\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSentry.showUserFeedbackDialog()\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentry.feedback().show()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentry.captureFeedback()\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentry.feedback().capture()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentry.captureUserFeedback()\u003c/code\u003e and \u003ccode\u003eUserFeedback\u003c/code\u003e are deprecated in favor of \u003ccode\u003eSentry.feedback().capture()\u003c/code\u003e with the new \u003ccode\u003eFeedback\u003c/code\u003e type\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentryUserFeedbackDialog\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentryUserFeedbackForm\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAll deprecated APIs will be removed in the next major version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eSentryUserFeedbackButton\u003c/code\u003e (View-based and Compose-based) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5350\"\u003e#5350\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eIt will be removed in the next major version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd per-form shake-to-show support for \u003ccode\u003eSentryUserFeedbackForm\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5353\"\u003e#5353\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eUseful for enabling shake-to-report on specific screens instead of globally\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003eSentryUserFeedbackForm.Builder(activity)\n  .configurator { it.isUseShakeGesture = true }\n  .create()\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support for Kafka (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5249\"\u003e#5249\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eYou will need to add the \u003ccode\u003esentry-kafka\u003c/code\u003e dependency and opt-in via the new option.\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003eoptions.setEnableQueueTracing(true)\u003c/code\u003e on \u003ccode\u003eSentry.init\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eOr set \u003ccode\u003esentry.enable-queue-tracing=true\u003c/code\u003e in \u003ccode\u003eapplication.properties\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFor Spring Boot Kafka is auto instrumented and no further configuration is needed.\n\u003cul\u003e\n\u003cli\u003ealso see \u003ca href=\"https://docs.sentry.io/platforms/java/guides/spring-boot/integrations/kafka/\"\u003ehttps://docs.sentry.io/platforms/java/guides/spring-boot/integrations/kafka/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003ekafka-clients\u003c/code\u003e directly\n\u003cul\u003e\n\u003cli\u003eyou need to wrap your \u003ccode\u003eKafkaProducer\u003c/code\u003e via \u003ccode\u003eSentryKafkaProducer.wrap(kafkaProducer)\u003c/code\u003e to get \u003ccode\u003equeue.publish\u003c/code\u003e spans\u003c/li\u003e\n\u003cli\u003eand you may use our \u003ccode\u003eSentryKafkaConsumerTracing.withTracing\u003c/code\u003e helper to instrument the consumer side manually.\u003c/li\u003e\n\u003cli\u003ealso see \u003ca href=\"https://docs.sentry.io/platforms/java/integrations/kafka/\"\u003ehttps://docs.sentry.io/platforms/java/integrations/kafka/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix soft input keyboard not being shown on the Feedback form (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5359\"\u003e#5359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix shake-to-report not triggering on some devices due to high acceleration threshold (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5366\"\u003e#5366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix feedback form retaining previous message when shown again via shake (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5366\"\u003e#5366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid stack overflow when deserializing large flat JSON objects (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5361\"\u003e#5361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump Native SDK from v0.13.7 to v0.14.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5334\"\u003e#5334\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5365\"\u003e#5365\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0140\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/compare/0.13.7...0.14.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump Gradle from v9.4.1 to v9.5.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5344\"\u003e#5344\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/blob/master/CHANGELOG.md#v950\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.1...v9.5.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/6219eb3d898ce527b1024eaa75e6a3ee5e985601\"\u003e\u003ccode\u003e6219eb3\u003c/code\u003e\u003c/a\u003e release: 8.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/566492415f8cb9a2596b13798f4088f3d5b7f614\"\u003e\u003ccode\u003e5664924\u003c/code\u003e\u003c/a\u003e Fix Changelog (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5381\"\u003e#5381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/7ce4e911688f63d921a37f085dba629a097d9680\"\u003e\u003ccode\u003e7ce4e91\u003c/code\u003e\u003c/a\u003e feat(replay): Capture SurfaceView content (experimental) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5333\"\u003e#5333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/d446e68d100ab9363b233ae6b98698bb13782049\"\u003e\u003ccode\u003ed446e68\u003c/code\u003e\u003c/a\u003e chore(codeowners): Add Nelson and Adam (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5369\"\u003e#5369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/11ad3372fed13e4508810060fd3997fb786ac176\"\u003e\u003ccode\u003e11ad337\u003c/code\u003e\u003c/a\u003e feat(core): Queue Instrumentation for Kafka (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5249\"\u003e#5249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/0188f486bee02039e435beaa70a120f93bcf390c\"\u003e\u003ccode\u003e0188f48\u003c/code\u003e\u003c/a\u003e chore: Fix entry in \u003ccode\u003eCHANGELOG\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/83a416d1cfa89e79f71fd8eb9fe05d8e5058f665\"\u003e\u003ccode\u003e83a416d\u003c/code\u003e\u003c/a\u003e fix: Avoid stack overflow when deserializing large flat JSON objects (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5361\"\u003e#5361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/e3e78e1c6cc641228dd910ee39c28ed6cf1ee710\"\u003e\u003ccode\u003ee3e78e1\u003c/code\u003e\u003c/a\u003e fix(feedback): Improve shake detection sensitivity (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5366\"\u003e#5366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/d25ef951db8d52542757932b3dbe4497e60f8465\"\u003e\u003ccode\u003ed25ef95\u003c/code\u003e\u003c/a\u003e chore(deps): update Native SDK to v0.14.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5365\"\u003e#5365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/c7ed38cb3bf1241be0ebf27a7df97a2b13b118e8\"\u003e\u003ccode\u003ec7ed38c\u003c/code\u003e\u003c/a\u003e feat(ci): Notify linked issues on release (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5367\"\u003e#5367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-java/compare/8.38.0...8.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `au.com.dius.pact.consumer:junit5` from 4.6.20 to 4.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pact-foundation/pact-jvm/releases\"\u003eau.com.dius.pact.consumer:junit5's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.7.1\u003c/h2\u003e\n\u003ch2\u003eFeature release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e0cdd0e3b3 - chore: Corrected all the doctests after update to the readmes\u003c/li\u003e\n\u003cli\u003ea34e72a72 - chore: Add TOC to the consumer and provider readmes\u003c/li\u003e\n\u003cli\u003ef695f6d79 - feat: Update readmes with details on using external references\u003c/li\u003e\n\u003cli\u003e3cb5eb590 - feat: Display references in the verifier output\u003c/li\u003e\n\u003cli\u003e170b27669 - feat: Add a method to the DSL interaction builders to capture external references\u003c/li\u003e\n\u003cli\u003eb43d22530 - feat: Add a method V4Interaction to capture external references\u003c/li\u003e\n\u003cli\u003e130aaa28b - chore: Add tests for V4Interaction and child classes\u003c/li\u003e\n\u003cli\u003e4ee8ddd5d - chore: fix typo breaking internal build (Kevin Rohan Vaz)\u003c/li\u003e\n\u003cli\u003e76cabe478 - feat: Add doctests for the readme code blocks \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1352\"\u003e#1352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ee2ee20b00 - feat: Add a Kotlin consumer DSL \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1352\"\u003e#1352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e39c734aa8 - feat: add arrayContains as a matching rule expression\u003c/li\u003e\n\u003cli\u003e2de7c5022 - refactor: deduplicate write logic in MERGE branch (biergit)\u003c/li\u003e\n\u003cli\u003e332f3b305 - fix: write through RandomAccessFile instead of opening a competing file handle (biergit)\u003c/li\u003e\n\u003cli\u003e66e25c362 - Refactor writePact to handle empty pactFile case (biergit)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0 Release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e00a50289f - chore: remove beta flag from 4.7.x version\u003c/li\u003e\n\u003cli\u003e95af91301 - chore: Update supported JDK versions table\u003c/li\u003e\n\u003cli\u003e1a684e1a3 - chore: Correct the doctests for line endings on Windows\u003c/li\u003e\n\u003cli\u003e468b9a38c - chore: Add doctests for consumer and consumer/junit5\u003c/li\u003e\n\u003cli\u003e12e3c37be - chore: Add Gradle task to generate tests off readme code blocks\u003c/li\u003e\n\u003cli\u003e119efb3e0 - feat: Check for \u003ccode\u003e@Ignore\u003c/code\u003e on the Pact method in the post spec check stage\u003c/li\u003e\n\u003cli\u003e629350842 - chore: Update main readme\u003c/li\u003e\n\u003cli\u003e06deeb5ab - feat: Check for the mock server field and raise an exception if it is missing\u003c/li\u003e\n\u003cli\u003ed39f691d8 - feat: rename annotation so it does not have the same name as the JUnit one\u003c/li\u003e\n\u003cli\u003e977572cf6 - feat: Add a consumer spock module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0-beta.6\u003c/h2\u003e\n\u003ch2\u003eMaintenance Release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e698c1b2a1 - chore: Update readme after upgrading Kotlin to 2.3.10\u003c/li\u003e\n\u003cli\u003e0a983466e - chore: Upgrade Kotlin to 2.3.10\u003c/li\u003e\n\u003cli\u003ee9f112aac - feat: add support for custom headers with the PactBroker annotation \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1835\"\u003e#1835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ef0283de99 - feat(consumer): Make the mock server log entries for requests and responses clearer in the log output\u003c/li\u003e\n\u003cli\u003ebdb9db101 - chore(consumer): Add test for MockServerLog\u003c/li\u003e\n\u003cli\u003e7cf4acc16 - feat(consumer): Make the mock server log entries for requests and responses clearer in the log output\u003c/li\u003e\n\u003cli\u003e451d7f0e6 - fix: Replace Generex with a custom random string generator \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1848\"\u003e#1848\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e5caa7c5e9 - feat: Add a JUnit 5 filter by interation type \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1894\"\u003e#1894\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0-beta.5\u003c/h2\u003e\n\u003ch2\u003eBugfix Release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efff39e5f7 - fix: HttpHeaders.containsKey() which was removed in Spring Framework 7, causing NoSuchMethodError at runtime \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1902\"\u003e#1902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ef27d9aaff - fix: Switch from the use of URL to URI in Gradle plugin to support Gradle 9+/JVM 25 \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1892\"\u003e#1892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e161c08324 - Revert \u0026quot;fix: Switch from the use of URL to URI in Gradle plugin to support Gradle 9+/JVM 25 \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1892\"\u003e#1892\u003c/a\u003e\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pact-foundation/pact-jvm/blob/master/CHANGELOG.md\"\u003eau.com.dius.pact.consumer:junit5's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.7.1 - Feature release\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ed38c2f13e - chore: add todo file to track things to do (Ronald Holshausen, Thu Apr 30 10:51:54 2026 +1000)\u003c/li\u003e\n\u003cli\u003ea489e72bb - Merge pull request \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1908\"\u003e#1908\u003c/a\u003e from pact-foundation/kotlin-dsl (Ronald Holshausen, Thu Apr 30 10:49:22 2026 +1000)\u003c/li\u003e\n\u003cli\u003e0e8d6ecf9 - Merge pull request \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1901\"\u003e#1901\u003c/a\u003e from biergit/patch-3 (Ronald Holshausen, Thu Apr 30 10:44:20 2026 +1000)\u003c/li\u003e\n\u003cli\u003e0cdd0e3b3 - chore: Corrected all the doctests after update to the readmes (Ronald Holshausen, Wed Apr 29 15:32:33 2026 +1000)\u003c/li\u003e\n\u003cli\u003ea34e72a72 - chore: Add TOC to the consumer and provider readmes (Ronald Holshausen, Wed Apr 29 11:49:37 2026 +1000)\u003c/li\u003e\n\u003cli\u003ef695f6d79 - feat: Update readmes with details on using external references (Ronald Holshausen, Wed Apr 29 11:36:19 2026 +1000)\u003c/li\u003e\n\u003cli\u003e3cb5eb590 - feat: Display references in the verifier output (Ronald Holshausen, Wed Apr 29 11:20:43 2026 +1000)\u003c/li\u003e\n\u003cli\u003e170b27669 - feat: Add a method to the DSL interaction builders to capture external references (Ronald Holshausen, Tue Apr 28 17:22:36 2026 +1000)\u003c/li\u003e\n\u003cli\u003eb43d22530 - feat: Add a method V4Interaction to capture external references (Ronald Holshausen, Tue Apr 28 17:15:27 2026 +1000)\u003c/li\u003e\n\u003cli\u003e130aaa28b - chore: Add tests for V4Interaction and child classes (Ronald Holshausen, Tue Apr 28 17:01:34 2026 +1000)\u003c/li\u003e\n\u003cli\u003ec22838534 - Merge pull request \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1909\"\u003e#1909\u003c/a\u003e from kevinrvaz/chore/fix_minor_typo (Ronald Holshausen, Thu Apr 23 13:02:51 2026 +1000)\u003c/li\u003e\n\u003cli\u003e4ee8ddd5d - chore: fix typo breaking internal build (Kevin Rohan Vaz, Thu Apr 23 08:13:00 2026 +0530)\u003c/li\u003e\n\u003cli\u003e76cabe478 - feat: Add doctests for the readme code blocks \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1352\"\u003e#1352\u003c/a\u003e (Ronald Holshausen, Thu Apr 23 11:19:19 2026 +1000)\u003c/li\u003e\n\u003cli\u003ee2ee20b00 - feat: Add a Kotlin consumer DSL \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1352\"\u003e#1352\u003c/a\u003e (Ronald Holshausen, Thu Apr 23 10:39:13 2026 +1000)\u003c/li\u003e\n\u003cli\u003e3798d97b8 - Merge pull request \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1907\"\u003e#1907\u003c/a\u003e from pact-foundation/feat/array-contains-matching-expression (Ronald Holshausen, Wed Apr 22 17:40:56 2026 +1000)\u003c/li\u003e\n\u003cli\u003e39c734aa8 - feat: add arrayContains as a matching rule expression (Ronald Holshausen, Wed Apr 22 17:19:53 2026 +1000)\u003c/li\u003e\n\u003cli\u003e41c2c39b3 - chore: Update project documentation (Ronald Holshausen, Wed Apr 22 15:43:17 2026 +1000)\u003c/li\u003e\n\u003cli\u003ea09b4ee27 - bump version to 4.7.1 (Ronald Holshausen, Tue Apr 21 10:59:57 2026 +1000)\u003c/li\u003e\n\u003cli\u003e2de7c5022 - refactor: deduplicate write logic in MERGE branch (biergit, Fri Apr 17 15:00:56 2026 +0200)\u003c/li\u003e\n\u003cli\u003e332f3b305 - fix: write through RandomAccessFile instead of opening a competing file handle (biergit, Fri Apr 17 14:36:59 2026 +0200)\u003c/li\u003e\n\u003cli\u003e66e25c362 - Refactor writePact to handle empty pactFile case (biergit, Fri Mar 13 14:30:13 2026 +0100)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.7.0 - 4.7.0 Release\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e00a50289f - chore: remove beta flag from 4.7.x version (Ronald Holshausen, Tue Apr 21 10:25:35 2026 +1000)\u003c/li\u003e\n\u003cli\u003e95af91301 - chore: Update supported JDK versions table (Ronald Holshausen, Tue Apr 21 10:17:06 2026 +1000)\u003c/li\u003e\n\u003cli\u003e1a684e1a3 - chore: Correct the doctests for line endings on Windows (Ronald Holshausen, Mon Apr 20 16:58:34 2026 +1000)\u003c/li\u003e\n\u003cli\u003e468b9a38c - chore: Add doctests for consumer and consumer/junit5 (Ronald Holshausen, Mon Apr 20 16:20:13 2026 +1000)\u003c/li\u003e\n\u003cli\u003e12e3c37be - chore: Add Gradle task to generate tests off readme code blocks (Ronald Holshausen, Mon Apr 20 14:44:48 2026 +1000)\u003c/li\u003e\n\u003cli\u003e119efb3e0 - feat: Check for \u003ccode\u003e@Ignore\u003c/code\u003e on the Pact method in the post spec check stage (Ronald Holshausen, Mon Apr 20 13:37:11 2026 +1000)\u003c/li\u003e\n\u003cli\u003e629350842 - chore: Update main readme (Ronald Holshausen, Mon Apr 20 13:24:19 2026 +1000)\u003c/li\u003e\n\u003cli\u003e06deeb5ab - feat: Check for the mock server field and raise an exception if it is missing (Ronald Holshausen, Mon Apr 20 13:23:03 2026 +1000)\u003c/li\u003e\n\u003cli\u003ed39f691d8 - feat: rename annotation so it does not have the same name as the JUnit one (Ronald Holshausen, Mon Apr 20 13:08:25 2026 +1000)\u003c/li\u003e\n\u003cli\u003e977572cf6 - feat: Add a consumer spock module (Ronald Holshausen, Mon Apr 20 13:00:58 2026 +1000)\u003c/li\u003e\n\u003cli\u003ea1b2abf32 - bump version to 4.7.0-beta.7 (Ronald Holshausen, Fri Apr 17 11:42:01 2026 +1000)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.7.0-beta.6 - Maintenance Release\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e698c1b2a1 - chore: Update readme after upgrading Kotlin to 2.3.10 (Ronald Holshausen, Fri Apr 17 10:56:41 2026 +1000)\u003c/li\u003e\n\u003cli\u003e0a983466e - chore: Upgrade Kotlin to 2.3.10 (Ronald Holshausen, Fri Apr 17 10:56:01 2026 +1000)\u003c/li\u003e\n\u003cli\u003ee9f112aac - feat: add support for custom headers with the PactBroker annotation \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1835\"\u003e#1835\u003c/a\u003e (Ronald Holshausen, Fri Apr 17 10:38:54 2026 +1000)\u003c/li\u003e\n\u003cli\u003ef0283de99 - feat(consumer): Make the mock server log entries for requests and responses clearer in the log output (Ronald Holshausen, Fri Apr 17 09:32:07 2026 +1000)\u003c/li\u003e\n\u003cli\u003ebdb9db101 - chore(consumer): Add test for MockServerLog (Ronald Holshausen, Thu Apr 16 17:22:04 2026 +1000)\u003c/li\u003e\n\u003cli\u003e64b5af54c - Merge branch 'master' into v4.7.x (Ronald Holshausen, Thu Apr 16 17:15:19 2026 +1000)\u003c/li\u003e\n\u003cli\u003e7cf4acc16 - feat(consumer): Make the mock server log entries for requests and responses clearer in the log output (Ronald Holshausen, Thu Apr 16 16:51:38 2026 +1000)\u003c/li\u003e\n\u003cli\u003e451d7f0e6 - fix: Replace Generex with a custom random string generator \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1848\"\u003e#1848\u003c/a\u003e (Ronald Holshausen, Thu Apr 16 15:58:56 2026 +1000)\u003c/li\u003e\n\u003cli\u003ed5bb09476 - bump version to 4.7.0-beta.6 (Ronald Holshausen, Thu Apr 16 14:28:00 2026 +1000)\u003c/li\u003e\n\u003cli\u003ec2ffe0c55 - Merge pull request \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1904\"\u003e#1904\u003c/a\u003e from kevinrvaz/docs/update_docs_for_docusaurus_update (Ronald Holshausen, Thu Apr 16 09:34:27 2026 +1000)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pact-foundation/pact-jvm/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.sentry.jvm.gradle` from 6.4.0 to 6.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/releases\"\u003eio.sentry.jvm.gradle's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump ComposablePreviewScanner from v0.8.1 to v0.8.2 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1174\"\u003e#1174\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sergio-sastre/ComposablePreviewScanner/blob/master/CHANGELOG.md#082\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sergio-sastre/ComposablePreviewScanner/compare/0.8.1...0.8.2\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump CLI from v3.4.0 to v3.4.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1175\"\u003e#1175\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#341\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/compare/3.4.0...3.4.1\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.5.0\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump CLI from v3.3.5 to v3.4.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1156\"\u003e#1156\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#340\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/compare/3.3.5...3.4.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump Android SDK from v8.38.0 to v8.40.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1153\"\u003e#1153\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1161\"\u003e#1161\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#8400\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/compare/8.38.0...8.40.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/blob/main/CHANGELOG.md\"\u003eio.sentry.jvm.gradle's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump ComposablePreviewScanner from v0.8.1 to v0.9.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1174\"\u003e#1174\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1176\"\u003e#1176\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sergio-sastre/ComposablePreviewScanner/blob/master/CHANGELOG.md#090\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sergio-sastre/ComposablePreviewScanner/compare/0.8.1...0.9.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump CLI from v3.4.0 to v3.4.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1175\"\u003e#1175\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#341\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/compare/3.4.0...3.4.1\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.5.0\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump CLI from v3.3.5 to v3.4.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1156\"\u003e#1156\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#340\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/compare/3.3.5...3.4.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump Android SDK from v8.38.0 to v8.40.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1153\"\u003e#1153\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1161\"\u003e#1161\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#8400\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/compare/8.38.0...8.40.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/c615323c5d879dc6296d068295bbd00fb7470ae9\"\u003e\u003ccode\u003ec615323\u003c/code\u003e\u003c/a\u003e release: 6.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/0e85cc6618a30bceea8b9df9fd19dd6b1780feaf\"\u003e\u003ccode\u003e0e85cc6\u003c/code\u003e\u003c/a\u003e chore: update plugin-build/sentry-cli.properties to 3.4.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/a74a5d6fc3813996d1142ac8b202570759c550aa\"\u003e\u003ccode\u003ea74a5d6\u003c/code\u003e\u003c/a\u003e chore: update plugin-build/composable-preview-scanner.properties to 0.8.2 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/1024da85c39fe7f479914689d311b85380777325\"\u003e\u003ccode\u003e1024da8\u003c/code\u003e\u003c/a\u003e feat(deps): Auto-update ComposablePreviewScanner version (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1173\"\u003e#1173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/e31b8344a978a09a85894f177a129f0a3a85ddb8\"\u003e\u003ccode\u003ee31b834\u003c/code\u003e\u003c/a\u003e chore(ci): Unify release build command and artifact upload (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/f2f447b995022ca702c6d3e2417a9e8d22340609\"\u003e\u003ccode\u003ef2f447b\u003c/code\u003e\u003c/a\u003e build(ci): Upload sentry-snapshots-runtime zip for craft (EME-1055) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1169\"\u003e#1169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/8fa3d2df3c509e5502e60c2b122d6ffbcb19c9f8\"\u003e\u003ccode\u003e8fa3d2d\u003c/code\u003e\u003c/a\u003e feat(matrix): Fetch AGP\u0026lt;-\u0026gt;Kotlin compat dynamically (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/d7afb6d90a5c084ed6eb5f32901fe46687bbcbd5\"\u003e\u003ccode\u003ed7afb6d\u003c/code\u003e\u003c/a\u003e test(gradle): Add isolated-projects compatibility test (EME-1072) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1160\"\u003e#1160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/7938856b62e8b46a1249f1475b497ef40448a3c0\"\u003e\u003ccode\u003e7938856\u003c/code\u003e\u003c/a\u003e feat(snapshots): Restructure sidecar JSON to match ingestion schema (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1162\"\u003e#1162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/055f0a6e5864179d6dad4f31c51bbad7f6449eae\"\u003e\u003ccode\u003e055f0a6\u003c/code\u003e\u003c/a\u003e refactor(snapshots): Group preview options under a previews sub-extension (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/compare/6.4.0...6.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `au.com.dius.pact` from 4.6.20 to 4.7.1\n\nUpdates `com.deque.html.axe-core:playwright` from 4.11.1 to 4.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/releases\"\u003ecom.deque.html.axe-core:playwright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 4.11.3\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/580\"\u003e#580\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/f7de945a0887567a65695b2a7bfb53c16a98d914\"\u003ef7de945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/585\"\u003e#585\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/a20927e2945f758cc770107afbd2307cab2e8b4f\"\u003ea20927e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/598\"\u003e#598\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/98e2472b67e0255ed6b1fb15bb65f17b5db77050\"\u003e98e2472\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 4.11.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/580\"\u003e#580\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/f7de945a0887567a65695b2a7bfb53c16a98d914\"\u003ef7de945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/585\"\u003e#585\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/a20927e2945f758cc770107afbd2307cab2e8b4f\"\u003ea20927e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/blob/develop/CHANGELOG.md\"\u003ecom.deque.html.axe-core:playwright's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/compare/v4.11.2...v4.11.3\"\u003e4.11.3\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/580\"\u003e#580\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/f7de945a0887567a65695b2a7bfb53c16a98d914\"\u003ef7de945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/585\"\u003e#585\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/a20927e2945f758cc770107afbd2307cab2e8b4f\"\u003ea20927e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/598\"\u003e#598\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/98e2472b67e0255ed6b1fb15bb65f17b5db77050\"\u003e98e2472\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/compare/v4.11.1...v4.11.2\"\u003e4.11.2\u003c/a\u003e (2026-04-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/580\"\u003e#580\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/f7de945a0887567a65695b2a7bfb53c16a98d914\"\u003ef7de945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/585\"\u003e#585\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/a20927e2945f758cc770107afbd2307cab2e8b4f\"\u003ea20927e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/08a29bbb03ec7abb78a47a2969104a6a6fbf02a3\"\u003e\u003ccode\u003e08a29bb\u003c/code\u003e\u003c/a\u003e chore: release v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/603\"\u003e#603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/bad807af19dae69464edd14ba94419e2eb7d59d5\"\u003e\u003ccode\u003ebad807a\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/600\"\u003e#600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/18830a820d0607941685bec6b22efcf5cea6e67f\"\u003e\u003ccode\u003e18830a8\u003c/code\u003e\u003c/a\u003e Merge branch 'release' into release-2026-04-29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/d52a30f3ef29be14e3519265dd13f01cb6105b4e\"\u003e\u003ccode\u003ed52a30f\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/98e2472b67e0255ed6b1fb15bb65f17b5db77050\"\u003e\u003ccode\u003e98e2472\u003c/code\u003e\u003c/a\u003e fix: Update axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/eceefb47696088328c2b96b786c228976ae952af\"\u003e\u003ccode\u003eeceefb4\u003c/code\u003e\u003c/a\u003e ci: change secret for updating axe-core to use pat (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/599\"\u003e#599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/695dbd9c2f4b11c52d67e5264664a37042233c90\"\u003e\u003ccode\u003e695dbd9\u003c/code\u003e\u003c/a\u003e chore: add create-release workflow (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/596\"\u003e#596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/6f8c7818ecd096bdc40f4c42aedd7b0f4ed5dda9\"\u003e\u003ccode\u003e6f8c781\u003c/code\u003e\u003c/a\u003e chore: merge master into develop (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/595\"\u003e#595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/eeebc9327b8b8f8660c90639d5269cd2d85e3f45\"\u003e\u003ccode\u003eeeebc93\u003c/code\u003e\u003c/a\u003e chore: Release 4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/e0563005d6537d1b2cd794ec743eddc98521526c\"\u003e\u003ccode\u003ee056300\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/compare/v4.11.1...v4.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.21.2 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.postgresql:postgresql` from 42.7.10 to 42.7.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pgjdbc/pgjdbc/releases\"\u003eorg.postgresql:postgresql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev42.7.11\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Limit SCRAM PBKDF2 iterations accepted from the server.\npgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.\nSee the \u003ca href=\"https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-98qh-xjc8-98pq\"\u003eSecurity Advisory\u003c/a\u003e for more detail.\nThe following \u003ca href=\"https://nvd.nist.gov/vuln/detail/CVE-2026-42198\"\u003eCVE-2026-42198\u003c/a\u003e has been issued.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add sources and javadocs to shaded published lib generation \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4043\"\u003e#4043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate Changelog and website for release of 42.7.11 \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4042\"\u003e#4042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix scram fix location in changelog and update published artifact developer list \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4041\"\u003e#4041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict test with scram_iterations to v16+ and release notes \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4040\"\u003e#4040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): update ubuntu:24.04 docker digest to 84e77de \u003ca href=\"https://github.com/renovate-bot\"\u003e\u003ccode\u003e@​renovate-bot\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4017\"\u003e#4017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: add tests for QueryExecutor#getTransactionState \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4006\"\u003e#4006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/create-github-app-token action to v2.2.2 \u003ca href=\"https://github.com/renovate-bot\"\u003e\u003ccode\u003e@​renovate-bot\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3983\"\u003e#3983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: fix flaky CopyBothResponseTest by using WAL flush LSN \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3979\"\u003e#3979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: fix flaky replication restart tests by waiting for confirmed_flush_lsn \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3975\"\u003e#3975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: fix flaky LogicalReplicationStatusTest by polling pg_stat_replication \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3974\"\u003e#3974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: replace Appveyor with ikalnytskyi/action-setup-postgres \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: move test table creation from \u003ca href=\"https://github.com/BeforeEach\"\u003e\u003ccode\u003e@​BeforeEach\u003c/code\u003e\u003c/a\u003e to \u003ca href=\"https://github.com/BeforeAll\"\u003e\u003ccode\u003e@​BeforeAll\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn jsonb as PGObject fixes Issue \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3926\"\u003e#3926\u003c/a\u003e \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3956\"\u003e#3956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate docker scripts  \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3958\"\u003e#3958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimplement require_auth, this is pretty much how libpq does this.  \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3895\"\u003e#3895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: add SCRAM authentication test setup section to TESTING.md \u003ca href=\"https://github.com/emmaeng700\"\u003e\u003ccode\u003e@​emmaeng700\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd RequireServerVersion annotation for tests \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3939\"\u003e#3939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure extended protocol messages end with Sync message \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3728\"\u003e#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: enable cursor-based fetching in extended protocol when transaction started via SQL command \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: retry with SSL on IOException when sslMode=ALLOW \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3973\"\u003e#3973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: catch SecurityException from setContextClassLoader on ForkJoinPool workers \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use compareTo for LogSequenceNumber comparison \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3961\"\u003e#3961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: release COPY lock on IOException to prevent connection hang (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3957\"\u003e#3957\u003c/a\u003e) \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3960\"\u003e#3960\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: replace \u003ca href=\"https://github.com/exception\"\u003e\u003ccode\u003e@​exception\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/throws\"\u003e\u003ccode\u003e@​throws\u003c/code\u003e\u003c/a\u003e in getBoolean javadoc \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4035\"\u003e#4035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use \u003ccode\u003e@​vlsi/github-actions-random-matrix\u003c/code\u003e npm package \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4008\"\u003e#4008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use tag names for pinning github actions, pin ikalnytskyi/action-setup-postgres \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4007\"\u003e#4007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: bump errorprone to 2.48.0 \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4005\"\u003e#4005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: add \u003ca href=\"https://github.com/DisableLogger\"\u003e\u003ccode\u003e@​DisableLogger\u003c/code\u003e\u003c/a\u003e annotation to suppress expected log warnings in tests \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3971\"\u003e#3971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: suppress deprecations in test code to reduce build verbosity \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3972\"\u003e#3972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: replace log warning in ConnectionFactory.closeStream with Throwable.addSuppressed \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3970\"\u003e#3970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use greedy pairwise coverage for CI matrix generation \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3965\"\u003e#3965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use full version tags in GitHub Actions comments \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3963\"\u003e#3963\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⬆️ Dependencies\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md\"\u003eorg.postgresql:postgresql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[42.7.11] (2026-04-28)\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: Limit SCRAM PBKDF2 iterations accepted from the server.\npgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.\nSee the \u003ca href=\"https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-98qh-xjc8-98pq\"\u003eSecurity Advisory\u003c/a\u003e for more detail.\nThe following \u003ca href=\"https://nvd.nist.gov/vuln/detail/CVE-2026-42198\"\u003eCVE-2026-42198\u003c/a\u003e has been issued.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: implement require_auth connection property, aligning with libpq behavior [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3895\"\u003e#3895\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3895\"\u003epgjdbc/pgjdbc#3895\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace Appveyor CI with ikalnytskyi/action-setup-postgres [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3966\"\u003e#3966\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3966\"\u003epgjdbc/pgjdbc#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: upgrade Gradle to v9 [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3978\"\u003e#3978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3978\"\u003epgjdbc/pgjdbc#3978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure extended protocol messages end with Sync message [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3728\"\u003e#3728\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3728\"\u003epgjdbc/pgjdbc#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: enable cursor-based fetching in extended protocol when transaction started via SQL command [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3996\"\u003e#3996\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3996\"\u003epgjdbc/pgjdbc#3996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: retry with SSL on IOException when sslMode=ALLOW [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3973\"\u003e#3973\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3973\"\u003epgjdbc/pgjdbc#3973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: make sure the driver honours connectTimeout when retrying the connection [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3968\"\u003epgjdbc/pgjdbc#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3968\"\u003epgjdbc/pgjdbc#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: catch SecurityException from setContextClassLoader on ForkJoinPool workers [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-amend-a-claim/pull/413","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-amend-a-claim/issues/413","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/413/packages"},{"uuid":"4403511891","node_id":"PR_kwDORvJjTc7ZYe1x","number":26,"state":"closed","title":"chore(deps): bump the gradle-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-22T03:12:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-08T03:12:00.000Z","updated_at":"2026-05-22T03:12:38.000Z","time_to_close":1209636,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-dependencies","update_count":17,"packages":[{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.7","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"org.flywaydb:flyway-mysql","old_version":"12.0.3","new_version":"12.5.0"},{"name":"org.projectlombok:lombok","old_version":"1.18.42","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"org.apache.pdfbox:pdfbox","old_version":"3.0.6","new_version":"3.0.7"},{"name":"com.github.RouHim:jaudiotagger","old_version":"2.0.16","new_version":"2.0.19"},{"name":"com.github.junrar:junrar","old_version":"7.5.8","new_version":"7.5.10","repository_url":"https://github.com/junrar/junrar"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.springdoc:springdoc-openapi-starter-webmvc-ui","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/springdoc/springdoc-openapi"},{"name":"org.glassfish.jaxb:jaxb-runtime","old_version":"4.0.6","new_version":"4.0.8"},{"name":"tools.jackson:jackson-bom","old_version":"3.1.0","new_version":"3.1.3","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"com.github.ben-manes.caffeine:caffeine","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/ben-manes/caffeine"},{"name":"org.springframework.boot","old_version":"4.0.3","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"org.hibernate.orm","old_version":"7.2.6.Final","new_version":"7.3.3.Final"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"gradle-wrapper","old_version":"9.4.0","new_version":"9.5.0","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-dependencies group with 15 updates in the /booklore-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.7` | `3.5.8` |\n| org.flywaydb:flyway-mysql | `12.0.3` | `12.5.0` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.42` | `1.18.46` |\n| org.apache.pdfbox:pdfbox | `3.0.6` | `3.0.7` |\n| com.github.RouHim:jaudiotagger | `2.0.16` | `2.0.19` |\n| [com.github.junrar:junrar](https://github.com/junrar/junrar) | `7.5.8` | `7.5.10` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) | `3.0.2` | `3.0.3` |\n| org.glassfish.jaxb:jaxb-runtime | `4.0.6` | `4.0.8` |\n| [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `3.1.0` | `3.1.3` |\n| [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) | `3.2.3` | `3.2.4` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `4.0.3` | `4.0.6` |\n| org.hibernate.orm | `7.2.6.Final` | `7.3.3.Final` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.0` | `9.5.0` |\n\n\nUpdates `org.mariadb.jdbc:mariadb-java-client` from 3.5.7 to 3.5.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/releases\"\u003eorg.mariadb.jdbc:mariadb-java-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Java 3.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md\"\u003eorg.mariadb.jdbc:mariadb-java-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/26b34a2f060070beb73515cfd2a49fabc8728843\"\u003e\u003ccode\u003e26b34a2\u003c/code\u003e\u003c/a\u003e Merge branch 'develop'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/06d6efee7838ab8f89ef0f7f362c6b4a95754630\"\u003e\u003ccode\u003e06d6efe\u003c/code\u003e\u003c/a\u003e bump CI actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a86a83c8fd1fa84d8d4349baab3b29df8f575192\"\u003e\u003ccode\u003ea86a83c\u003c/code\u003e\u003c/a\u003e bump 3.5.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/975f9919232b21f40d823423eac6e32d87ea8e35\"\u003e\u003ccode\u003e975f991\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to implement Codec directly and extract shared...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/75bb509521661603e0e90dd6dd5942d1382bf499\"\u003e\u003ccode\u003e75bb509\u003c/code\u003e\u003c/a\u003e [misc] code formatting cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/4c0b6a0ddd95f42fa866ce0d08e384caa2553d43\"\u003e\u003ccode\u003e4c0b6a0\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to extend UtilDateCodec and extract common dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a5b7fb1a26277a076052dbbd1a7ee2bacd4f602f\"\u003e\u003ccode\u003ea5b7fb1\u003c/code\u003e\u003c/a\u003e [misc] convert Reader and Writer from interfaces to final class implementatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/d31eb060fc66e9e37479e18a38bb1401d53ecb63\"\u003e\u003ccode\u003ed31eb06\u003c/code\u003e\u003c/a\u003e [misc] convert ReadableByteBuf from interface to final class implementation, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/11d45a9e6ea4d942e75747132bb8982471d890b8\"\u003e\u003ccode\u003e11d45a9\u003c/code\u003e\u003c/a\u003e [misc] optimize binary row decoder null bitmap checks and simplify signed Big...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/5aad14c381cbc2c4e0383ffed275306f359bd508\"\u003e\u003ccode\u003e5aad14c\u003c/code\u003e\u003c/a\u003e [misc] optimize BigInt column decoding and improve type safety in codec inter...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-mysql` from 12.0.3 to 12.5.0\n\nUpdates `org.projectlombok:lombok` from 1.18.42 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.44 (March 11th, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Jacksonized\u003c/code\u003e now supports both Jackson2 and Jackson3; you'll get a warning until you configure which one (or even both!) you want lombok to generate. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3950\"\u003e#3950\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: On JDK25, \u003ccode\u003eval\u003c/code\u003e and \u003ccode\u003e@ExtensionMethod\u003c/code\u003e could sometimes cause erroneous errors (in that you see errors but compilation succeeds anyway) using javac. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3947\"\u003e#3947\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e + fields marked \u003ccode\u003etransient\u003c/code\u003e would result in those transient fields being serialised which is surprising (and thus undesired) behaviour. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3936\"\u003e#3936\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48c8f4b33ef9231ec2587a43d122\"\u003e\u003ccode\u003efcdab3f\u003c/code\u003e\u003c/a\u003e [version] pre-release version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/1cb7d49c5d2dc98af7a66413d8119dec285d0666\"\u003e\u003ccode\u003e1cb7d49\u003c/code\u003e\u003c/a\u003e [changelog]\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e Mention Jackson3 final touches in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/12a15b00555ec8097eca2bf7d77c2c2124e13e0e\"\u003e\u003ccode\u003e12a15b0\u003c/code\u003e\u003c/a\u003e Fix: Bump EA_JDK to 27 (25 and 26 have been released)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/2be766cfc2ef56f2d986f28f734c98535d611aee\"\u003e\u003ccode\u003e2be766c\u003c/code\u003e\u003c/a\u003e Merge branch 'jackson3-final-touches'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/290fa4c8539c7e97b47f7e80033e078127050eb5\"\u003e\u003ccode\u003e290fa4c\u003c/code\u003e\u003c/a\u003e [trivial] constantize the warning we spit out for ambiguous jackson2/3, and m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e6567b6621f86b43033ab4a75e0273780e18e998\"\u003e\u003ccode\u003ee6567b6\u003c/code\u003e\u003c/a\u003e test: Add Jackson 3 test cases and version ambiguity warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/45e72e241abe98dcfb66408402da825dd2b8e925\"\u003e\u003ccode\u003e45e72e2\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 databind/dataformat annotations to HandlerUtil copy lists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/184d42363d86446a63b6270ac1eb352dc43ae76c\"\u003e\u003ccode\u003e184d423\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 support to \u003ca href=\"https://github.com/Jacksonized\"\u003e\u003ccode\u003e@​Jacksonized\u003c/code\u003e\u003c/a\u003e handlers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e027ad0f1515bd33d4d329d90e59dccbaf44651e\"\u003e\u003ccode\u003ee027ad0\u003c/code\u003e\u003c/a\u003e refactored to ShadowClassLoader use Collections::enumeration instead of Vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectlombok/lombok/compare/v1.18.42...v1.18.46\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.pdfbox:pdfbox` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:pdfbox-io` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:xmpbox` from 3.0.6 to 3.0.7\n\nUpdates `com.github.RouHim:jaudiotagger` from 2.0.16 to 2.0.19\n\nUpdates `com.github.junrar:junrar` from 7.5.8 to 7.5.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/releases\"\u003ecom.github.junrar:junrar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.5.10\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier Roebroeck\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.9\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.3.1 to 9.4.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/5ff5c7e\"\u003e5ff5c7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.21.0 to 5.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d9e9e49\"\u003ed9e9e49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump ch.qos.logback:logback-classic from 1.5.26 to 1.5.32 (\u003ca href=\"https://github.com/junrar/junrar/commits/935ece8\"\u003e935ece8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.22.0 to 1.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/000fcdb\"\u003e000fcdb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://github.com/junrar/junrar/commits/2c83103\"\u003e2c83103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Ryan Campbell\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/blob/master/CHANGELOG.md\"\u003ecom.github.junrar:junrar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.9...v7.5.10\"\u003e7.5.10\u003c/a\u003e (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.9\"\u003e7.5.9\u003c/a\u003e (2026-04-13)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.3.1 to 9.4.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/5ff5c7e\"\u003e5ff5c7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.21.0 to 5.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d9e9e49\"\u003ed9e9e49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump ch.qos.logback:logback-classic from 1.5.26 to 1.5.32 (\u003ca href=\"https://github.com/junrar/junrar/commits/935ece8\"\u003e935ece8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.22.0 to 1.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/000fcdb\"\u003e000fcdb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://github.com/junrar/junrar/commits/2c83103\"\u003e2c83103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/e36ee091ad7311a021e1c928ada103a3eab2d890\"\u003e\u003ccode\u003ee36ee09\u003c/code\u003e\u003c/a\u003e ci: publish test results\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/154e3bf7b05bb6dcad5437a8fd8e99a8da916373\"\u003e\u003ccode\u003e154e3bf\u003c/code\u003e\u003c/a\u003e test: disable test on windows due to path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/d77e9a83eb721cd51f9c23d7869d0e6ad7f952d7\"\u003e\u003ccode\u003ed77e9a8\u003c/code\u003e\u003c/a\u003e fix: better handling of files outside directory when extracting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/a60857b35c17dbd5354a37816421d7b051a8ba03\"\u003e\u003ccode\u003ea60857b\u003c/code\u003e\u003c/a\u003e ci: update homebrew action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/72cd364f47bd396e208cd82ca7aa98759ab84f01\"\u003e\u003ccode\u003e72cd364\u003c/code\u003e\u003c/a\u003e chore(release): 7.5.9 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/7e1b5581f9d622b96e9e2a8574188027e7642634\"\u003e\u003ccode\u003e7e1b558\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/f800f10fa46f803f1220f508a40f59af29eb5118\"\u003e\u003ccode\u003ef800f10\u003c/code\u003e\u003c/a\u003e build(deps): bump org.mockito:mockito-core from 5.22.0 to 5.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/1886aecf253467ff8f98fc1187237605cf59fbb0\"\u003e\u003ccode\u003e1886aec\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.core:jackson-databind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/832f6857128bcd678d76bf263f8ee1533a1e8a86\"\u003e\u003ccode\u003e832f685\u003c/code\u003e\u003c/a\u003e build(deps): bump gradle-wrapper from 9.4.0 to 9.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/9b69c6b708dd88b925ba91fde563869cc0f8f586\"\u003e\u003ccode\u003e9b69c6b\u003c/code\u003e\u003c/a\u003e fix: ArrayIndexOutOfBoundsException in solid RAR v20 archive extraction\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/releases\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003espringdoc-openapi v3.0.3 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seregamorph\"\u003e\u003ccode\u003e@​seregamorph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/pull/3260\"\u003espringdoc/springdoc-openapi#3260\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ehttps://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/blob/v3.0.3/CHANGELOG.md\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.0.3] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3c30283fb33ced3b8368c7a890ee05d23119322a\"\u003e\u003ccode\u003e3c30283\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release v3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4184c05db39e96e8d1ce1287d5f58f242a4c8165\"\u003e\u003ccode\u003e4184c05\u003c/code\u003e\u003c/a\u003e update .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/89745c20c3695b9b934cbf77f96ef1cd1df9fac7\"\u003e\u003ccode\u003e89745c2\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4d1a730134720740ed3b9a2831d14e97dbe28780\"\u003e\u003ccode\u003e4d1a730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e from seregamorph/SpringDocHateoasConfiguration-class...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/54e765036d9d49935a97e3ccebd875581efcc8ed\"\u003e\u003ccode\u003e54e7650\u003c/code\u003e\u003c/a\u003e ConditionalOnClass (HateoasProperties.class) in SpringDocHateoasConfiguration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/9f354b2a3cb92a8caa1d0518b1916ac4f79fbd71\"\u003e\u003ccode\u003e9f354b2\u003c/code\u003e\u003c/a\u003e Spring-boot upgrade to version 4.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/14df32f99179db89967a6260562775cd6b883128\"\u003e\u003ccode\u003e14df32f\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3ee9a44547f44fb4982c98b7a5dbc1f6f9aff1a3\"\u003e\u003ccode\u003e3ee9a44\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/df99408a7674af5ea3fc40f79d81bfef372e7c0e\"\u003e\u003ccode\u003edf99408\u003c/code\u003e\u003c/a\u003e upgrade swagger-ui to version 5.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/6ee70f4074e76d3d8554487e4318681d95e444d7\"\u003e\u003ccode\u003e6ee70f4\u003c/code\u003e\u003c/a\u003e upgrade swagger-api to version 2.2.47\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.glassfish.jaxb:jaxb-runtime` from 4.0.6 to 4.0.8\n\nUpdates `tools.jackson:jackson-bom` from 3.1.0 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/c2ea79e9178f0aaa5e4f381c644140357bfc307e\"\u003e\u003ccode\u003ec2ea79e\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3906b27dcdde8fc6a4fef193147109b70bf2f0dc\"\u003e\u003ccode\u003e3906b27\u003c/code\u003e\u003c/a\u003e Prep for 3.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/b17b616c7dc264cfef26f9dd28eaf54bc40b5c4c\"\u003e\u003ccode\u003eb17b616\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/36cf9995cff15aa3e69786da1d6c52f208fddf8a\"\u003e\u003ccode\u003e36cf999\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0ae1c2ae270dabe8e21700cbcee1c266b54e84f0\"\u003e\u003ccode\u003e0ae1c2a\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3c171ebd5d6c5d8f6e8d4f3614cf9b4f0a8babb9\"\u003e\u003ccode\u003e3c171eb\u003c/code\u003e\u003c/a\u003e Prep for 3.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/8046ced071e0b36747bae0f0a96fa21914de1303\"\u003e\u003ccode\u003e8046ced\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ea00ca4cc59ba656a17a071e30a68387e51d3e0d\"\u003e\u003ccode\u003eea00ca4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0628060381a5b86e3fc07854a27b7453de559b7e\"\u003e\u003ccode\u003e0628060\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/22b8aeec79b87751a41c586404850c526eed1dbe\"\u003e\u003ccode\u003e22b8aee\u003c/code\u003e\u003c/a\u003e Prep for 3.1.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.1.0...jackson-bom-3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.ben-manes.caffeine:caffeine` from 3.2.3 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ben-manes/caffeine/releases\"\u003ecom.github.ben-manes.caffeine:caffeine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved access expiration's read performance by avoiding false sharing effects caused by the timestamp update\u003c/li\u003e\n\u003cli\u003eFixed head-of-line blocking of expiration queues caused by in-flight async entries (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed various minor issues found using AI audits\u003c/li\u003e\n\u003cli\u003eAdded \u003ca href=\"https://docs.oracle.com/en/java/javase/25/docs/api//java.base/java/io/ObjectInputFilter.html\"\u003eObjectInputFilter\u003c/a\u003e support to JCache\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/836b65c0a83e5d1641ded9c6de578654bc04b2e9\"\u003e\u003ccode\u003e836b65c\u003c/code\u003e\u003c/a\u003e use a consistent expiration tolerance calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0dc7daf962730048fe46ae4626827afbb97ddf92\"\u003e\u003ccode\u003e0dc7daf\u003c/code\u003e\u003c/a\u003e resurrect in-flight async entries on expiration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0bac8b54fd634ffe95d35ccd1d94daba95e7b369\"\u003e\u003ccode\u003e0bac8b5\u003c/code\u003e\u003c/a\u003e handle head-of-line blocking of expiration queues (fixes \u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/ff258366de0a89129152ead72524ce88f8fca67b\"\u003e\u003ccode\u003eff25836\u003c/code\u003e\u003c/a\u003e test polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f3a6176e2e3a7fe085214472858c6029c108fc3f\"\u003e\u003ccode\u003ef3a6176\u003c/code\u003e\u003c/a\u003e Fix JCache close/createCache races and recursive teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/622fbe7dbf7606f114b956205706935be2fcf3c8\"\u003e\u003ccode\u003e622fbe7\u003c/code\u003e\u003c/a\u003e Fix removal in identity views and widen hill-climber counters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/8da5a7a05d8b725c9dbd577be8ffaf2372aa7e23\"\u003e\u003ccode\u003e8da5a7a\u003c/code\u003e\u003c/a\u003e defer weighing the entry until after the putIfAbsent hit fast-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/94ad0ff8556c9923a8d9746ab85af9ee830dd051\"\u003e\u003ccode\u003e94ad0ff\u003c/code\u003e\u003c/a\u003e Record eviction stats before notifying the removal listener consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f94c0113d0c98dc0afaadf1f6748ea280aa4dff7\"\u003e\u003ccode\u003ef94c011\u003c/code\u003e\u003c/a\u003e Auto-assert eviction stats alongside notifications.withCause.exclusively\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/2e945e090fbff4f96251dfe1bacba3780a5bdb0c\"\u003e\u003ccode\u003e2e945e0\u003c/code\u003e\u003c/a\u003e Skip timestamp writes within tolerance on the read path.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ben-manes/caffeine/compare/v3.2.3...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springframework.boot` from 4.0.3 to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spring-projects/spring-boot/releases\"\u003eorg.springframework.boot's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.6\u003c/h2\u003e\n\u003ch2\u003e:lady_beetle: Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50188\"\u003e#50188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eElasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50187\"\u003e#50187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationPidFileWriter does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50185\"\u003e#50185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRandomValuePropertySource is not suitable for secrets \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50183\"\u003e#50183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCassandra auto-configuration misconfigures CqlSessionBuilder \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50180\"\u003e#50180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationTemp does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50178\"\u003e#50178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemote DevTools performs comparison incorrectly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50176\"\u003e#50176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring.rabbitmq.ssl.verify-hostname is applied inconsistently \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50174\"\u003e#50174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50077\"\u003e#50077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClassic starters are missing several modules \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50071\"\u003e#50071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModule spring-boot-resttestclient is missing from spring-boot-starter-test-classic \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/50069\"\u003e#50069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotations like \u003ccode\u003e@Ssl\u003c/code\u003e don't work on \u003ccode\u003e@Bean\u003c/code\u003e methods when using \u003ccode\u003e@ServiceConnection\u003c/code\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50064\"\u003e#50064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnversRevisionRepositoriesRegistrar should reuse \u003ccode\u003e@EnableEnversRepositories\u003c/code\u003e rather than configuring the JPA counterpart \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50039\"\u003e#50039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebFlux Cloud Foundry links endpoint includes query string from received request in resolved links \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50017\"\u003e#50017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImports on a containing test class are ignored when a nested class has imports \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50012\"\u003e#50012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWith spring.jackson.use-jackson2-defaults set to true, FAIL_ON_UNKNOWN_PROPERTIES is enabled \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49951\"\u003e#49951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e500 response from env endpoint when supplied pattern is invalid \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49946\"\u003e#49946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49945\"\u003e#49945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP method is lost when configuring excludes in EndpointRequest \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49943\"\u003e#49943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonor HttpMethod for reactive additional endpoint paths \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49880\"\u003e#49880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/artemis image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49869\"\u003e#49869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/activemq image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49866\"\u003e#49866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49854\"\u003e#49854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAPI versioning path strategy should be applied path last as it is not meant to yield \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49800\"\u003e#49800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:notebook_with_decorative_cover: Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs to encourage Java fundamentals for beginners that prefer to learn that way \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50146\"\u003e#50146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP Service Interface Clients still document that API versioning can be configured via properties \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50126\"\u003e#50126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the observability section of the Lettuce documentation is broken \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50097\"\u003e#50097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJavadoc for StaticResourceLocation.FAVICON doesn't describe icons location \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50085\"\u003e#50085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMySamlRelyingPartyConfiguration is missing a Kotlin sample \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50024\"\u003e#50024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncorrect default value for management.httpexchanges.recording.include in configuration metadata \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50019\"\u003e#50019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the Kubernetes documentation when discussing startup probes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50015\"\u003e#50015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypo in JdbcSessionAutoConfiguration Javadoc \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49873\"\u003e#49873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify that configuration property default values are not available through the Environment \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49851\"\u003e#49851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument the need for Liquibase and Flyway starters \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49839\"\u003e#49839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKafka documentation refers to deprecated JSON serializer and deserializer classes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49826\"\u003e#49826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Elasticsearch Client 9.2.8 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50027\"\u003e#50027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Groovy 5.0.5 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49911\"\u003e#49911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Hibernate 7.2.12.Final \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50134\"\u003e#50134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Jackson Bom 3.1.2 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50051\"\u003e#50051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/jaxen-xpath/jaxen/releases/tag/v2.0.1\"\u003eJaxen 2.0.1\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50104\"\u003e#50104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/FirebirdSQL/jaybird/releases/tag/v6.0.5\"\u003eJaybird 6.0.5\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49914\"\u003e#49914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/8821ad2cd381bb4b9615a61479e1de7305a8ba39\"\u003e\u003ccode\u003e8821ad2\u003c/code\u003e\u003c/a\u003e Release v4.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9e4048a03f17adfe78057a3c4d5b4693305c0ae0\"\u003e\u003ccode\u003e9e4048a\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/20bb11c3984802990572ddbeae8b66885a8f2462\"\u003e\u003ccode\u003e20bb11c\u003c/code\u003e\u003c/a\u003e Next development version (v3.5.15-SNAPSHOT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/98daa8ea30f39a5b0ca6768b5cbc2dc8698ef4e1\"\u003e\u003ccode\u003e98daa8e\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9dc5aa2863f598a15d3dfa116f4b89249daba7e7\"\u003e\u003ccode\u003e9dc5aa2\u003c/code\u003e\u003c/a\u003e Polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/874f6294b91da18367b8b5ab7b2fad3fa23cfba6\"\u003e\u003ccode\u003e874f629\u003c/code\u003e\u003c/a\u003e Fix default security with actuator but without health\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/e41b3bf731d1134bc18ec1f68ac01e0fe1c54923\"\u003e\u003ccode\u003ee41b3bf\u003c/code\u003e\u003c/a\u003e Enable hostname verification for SSL connections to Elasticsearch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/ef8527bb0ef8f564f4f9c57a7be99a7aa96c6ab0\"\u003e\u003ccode\u003eef8527b\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/f533a4549c3999aac30cb5830f07dc304933e93d\"\u003e\u003ccode\u003ef533a45\u003c/code\u003e\u003c/a\u003e Do not follow symlinks when writing PID file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/4a7bd332b6d19fef1aa4cf28434985f2b03a2e0f\"\u003e\u003ccode\u003e4a7bd33\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spring-projects/spring-boot/compare/v4.0.3...v4.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.hibernate.orm` from 7.2.6.Final to 7.3.3.Final\n\nUpdates `com.github.ben-manes.versions` from 0.53.0 to 0.54.0\n\nUpdates `gradle-wrapper` from 9.4.0 to 9.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.5.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.5.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTask provenance in reports and failure messages\u003c/li\u003e\n\u003cli\u003eType-safe accessors for precompiled Kotlin Settings plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.5.0/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/atm1020\"\u003eatm1020\u003c/a\u003e,\n\u003ca href=\"https://github.com/mataha\"\u003emataha\u003c/a\u003e,\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/kelemen\"\u003eAttila Kelemen\u003c/a\u003e,\n\u003ca href=\"https://github.com/britter\"\u003eBenedikt Ritter\u003c/a\u003e,\n\u003ca href=\"https://github.com/Vampire\"\u003eBjörn Kautler\u003c/a\u003e,\n\u003ca href=\"https://github.com/budindepunk\"\u003eCaro Silva Rode\u003c/a\u003e,\n\u003ca href=\"https://github.com/chanani\"\u003eCHANHAN\u003c/a\u003e,\n\u003ca href=\"https://github.com/DmitryNez\"\u003eDmitry Nezavitin\u003c/a\u003e,\n\u003ca href=\"https://github.com/Juneezee\"\u003eEng Zer Jun\u003c/a\u003e,\n\u003ca href=\"https://github.com/KugelLibelle\"\u003eKugelLibelle\u003c/a\u003e,\n\u003ca href=\"https://github.com/vmadalin\"\u003eMadalin Valceleanu\u003c/a\u003e,\n\u003ca href=\"https://github.com/quijote\"\u003eMarkus Gaisbauer\u003c/a\u003e,\n\u003ca href=\"https://github.com/koppor\"\u003eOliver Kopp\u003c/a\u003e,\n\u003ca href=\"https://github.com/hfhbd\"\u003ePhilip Wedemann\u003c/a\u003e,\n\u003ca href=\"https://github.com/ploober\"\u003eploober\u003c/a\u003e,\n\u003ca href=\"https://github.com/rpalcolea\"\u003eRoberto Perez Alcolea\u003c/a\u003e,\n\u003ca href=\"https://github.com/R0h1tAnand\"\u003eRohit Anand\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/usv240\"\u003eUjwal Suresh Vanjare\u003c/a\u003e,\n\u003ca href=\"https://github.com/urdak\"\u003eVictor Merkulov\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.5.0 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew wrapper --gradle-version=9.5.0 \u0026amp;\u0026amp; ./gradlew wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.5.0/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.5.0/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.5.0 RC4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/3fe117d68f3907790f3809f121aa36303a9151f8\"\u003e\u003ccode\u003e3fe117d\u003c/code\u003e\u003c/a\u003e Update jdks.yaml (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37703\"\u003e#37703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/33d145af6fbe7cf7c9d84646b6d7f32fea91d5e2\"\u003e\u003ccode\u003e33d145a\u003c/code\u003e\u003c/a\u003e Update jdks.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f7a05d1ed48442eb5da4d6e2b6593da55cdec1da\"\u003e\u003ccode\u003ef7a05d1\u003c/code\u003e\u003c/a\u003e Update Gradle wrapper to version 9.5.0-rc-4 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37654\"\u003e#37654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/266facdcbcb0b4c60120cc118eaf0f652bfcdfe5\"\u003e\u003ccode\u003e266facd\u003c/code\u003e\u003c/a\u003e Update Gradle wrapper to version 9.5.0-rc-4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/0ad6dd8e143455707e444aa7e3d38327a3366513\"\u003e\u003ccode\u003e0ad6dd8\u003c/code\u003e\u003c/a\u003e Suppress OSC taskbar reset on plain/piped stdout (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37646\"\u003e#37646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/966025d5850d46c9158a2f25e4096222277ecf57\"\u003e\u003ccode\u003e966025d\u003c/code\u003e\u003c/a\u003e Suppress OSC taskbar reset on plain/piped stdout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/e7455734449e422accebf44cf7b31bf93e3a770c\"\u003e\u003ccode\u003ee745573\u003c/code\u003e\u003c/a\u003e Polish IP docs (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37642\"\u003e#37642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/d5cfd079acd2c8f1182edd6ec23dbab571132d0a\"\u003e\u003ccode\u003ed5cfd07\u003c/code\u003e\u003c/a\u003e Ensure BuildOperationQueue will progress without extra leases (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37629\"\u003e#37629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/acdf0c36fa13ba09a7ff5b51f79b9af4b1a097ee\"\u003e\u003ccode\u003eacdf0c3\u003c/code\u003e\u003c/a\u003e Ensure BuildOperationQueue will progress without extra leases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f7d0e4f6f7896426a8b24091388e4c252b62faef\"\u003e\u003ccode\u003ef7d0e4f\u003c/code\u003e\u003c/a\u003e Rename anchor\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.0...v9.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/cdome/ollumi/pull/26","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdome%2Follumi/issues/26","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/26/packages"},{"uuid":"4401255468","node_id":"PR_kwDOAICTps7ZRW7T","number":2199,"state":"open","title":"build(deps-dev): bump org.jsoup:jsoup from 1.21.1 to 1.22.2 in /mockserver","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-07T18:58:36.000Z","updated_at":"2026-05-07T21:45:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"org.jsoup:jsoup","old_version":"1.21.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"}],"path":"/mockserver","ecosystem":"maven"},"body":"Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.21.1 to 1.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.1\u003c/strong\u003e is out now, adding support for the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and numerous bug fixes and improvements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jsoup.org/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\r\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\r\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\r\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\r\n  \u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eRegex.usingRe2j()\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.22.1 (2026-Jan-01)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\n  \u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eorg.jsoup.helper.Regex.usingRe2j()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an instance method \u003ccode\u003eParser#unescape(String, boolean)\u003c/code\u003e that unescapes HTML entities using the parser's configuration (e.g. to support error tracking), complementing the existing static utility \u003ccode\u003eParser.unescapeEntities(String, boolean)\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded a configurable maximum parser depth (to limit the number of open elements on stack) to both HTML and XML parsers. The HTML parser now defaults to a depth of 512 to match browser behavior, and protect against unbounded stack growth, while the XML parser keeps unlimited depth by default, but can opt into a limit via \u003ccode\u003eorg.jsoup.parser.Parser#setMaxDepth\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2421\"\u003e#2421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added CI coverage for JDK 25 \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2403\"\u003e#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added a CI fuzzer for contextual fragment parsing (in addition to existing full body HTML and XML fuzzers). [oss-fuzz \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/14041\"\u003e#14041\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/google/oss-fuzz/pull/14041\"\u003egoogle/oss-fuzz#14041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet a removal schedule of jsoup 1.24.1 for previously deprecated APIs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously cached child \u003ccode\u003eElements\u003c/code\u003e of an \u003ccode\u003eElement\u003c/code\u003e were not correctly invalidated in \u003ccode\u003eNode#replaceWith(Node)\u003c/code\u003e, which could lead to incorrect results when subsequently calling \u003ccode\u003eElement#children()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2391\"\u003e#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttribute selector values are now compared literally without trimming. Previously, jsoup trimmed whitespace from selector values and from element attribute values, which could cause mismatches with browser behavior (e.g. \u003ccode\u003e[attr=\u0026quot; foo \u0026quot;]\u003c/code\u003e). Now matches align with the CSS specification and browser engines. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2380\"\u003e#2380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using the JDK HttpClient, any system default proxy (\u003ccode\u003eProxySelector.getDefault()\u003c/code\u003e) was ignored. Now, the system proxy is used if a per-request proxy is not set. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2388\"\u003e#2388\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2390\"\u003e#2390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eValidationException\u003c/code\u003e could be thrown in the adoption agency algorithm with particularly broken input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2393\"\u003e#2393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNull characters in the HTML body were not consistently removed; and in foreign content were not correctly replaced. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2395\"\u003e#2395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn \u003ccode\u003eIndexOutOfBoundsException\u003c/code\u003e could be thrown when parsing a body fragment with crafted input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2397\"\u003e#2397\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2406\"\u003e#2406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using StructuralEvaluators (e.g., a \u003ccode\u003eparent child\u003c/code\u003e selector) across many retained threads, their memoized results could also be retained, increasing memory use. These results are now cleared immediately after use, reducing overall memory consumption. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2411\"\u003e#2411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCloning a \u003ccode\u003eParser\u003c/code\u003e now preserves any custom \u003ccode\u003eTagSet\u003c/code\u003e applied to the parser. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2422\"\u003e#2422\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2423\"\u003e#2423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.21.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/mock-server/mockserver-monorepo/pull/2199","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mock-server%2Fmockserver-monorepo/issues/2199","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2199/packages"},{"uuid":"4391129491","node_id":"PR_kwDOBQcfMM7YwMSb","number":79,"state":"closed","title":"Bump the build-dependencies group across 1 directory with 46 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-07T22:30:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-06T11:58:09.000Z","updated_at":"2026-05-07T22:30:53.000Z","time_to_close":124363,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"build-dependencies","update_count":46,"packages":[{"name":"com.gradle.develocity","old_version":"4.3.2","new_version":"4.4.1"},{"name":"com.gradle.common-custom-user-data-gradle-plugin","old_version":"2.4.0","new_version":"2.6.0"},{"name":"org.checkerframework:checker-qual-android","old_version":"3.53.1","new_version":"4.1.0","repository_url":"https://github.com/typetools/checker-framework"},{"name":"org.checkerframework:checker","old_version":"3.53.1","new_version":"4.1.0","repository_url":"https://github.com/typetools/checker-framework"},{"name":"org.ehcache:ehcache","old_version":"3.11.1","new_version":"3.12.0","repository_url":"https://github.com/ehcache/ehcache3"},{"name":"org.junit.jupiter:junit-jupiter","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-api","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-engine","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-params","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.vintage:junit-vintage-engine","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.platform:junit-platform-launcher","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"ch.qos.logback:logback-classic","old_version":"1.5.18","new_version":"1.5.32","repository_url":"https://github.com/qos-ch/logback"},{"name":"org.jboss.byteman:byteman-bmunit","old_version":"4.0.24","new_version":"4.0.26"},{"name":"org.mockito:mockito-core","old_version":"5.20.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.mockito:mockito-junit-jupiter","old_version":"5.20.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.jboss.weld.se:weld-se-shaded","old_version":"6.0.3.Final","new_version":"6.0.4.Final"},{"name":"org.dom4j:dom4j","old_version":"2.1.3","new_version":"2.2.0","repository_url":"https://github.com/dom4j/dom4j"},{"name":"org.orbisgis:h2gis","old_version":"2.2.4","new_version":"2.2.5","repository_url":"https://github.com/orbisgis/H2GIS"},{"name":"org.postgresql:postgresql","old_version":"42.7.8","new_version":"42.7.11","repository_url":"https://github.com/pgjdbc/pgjdbc"},{"name":"com.enterprisedb:edb-jdbc","old_version":"42.7.3.3","new_version":"42.7.3.4","repository_url":"https://github.com/EnterpriseDB/edb-jdbc"},{"name":"com.mysql:mysql-connector-j","old_version":"9.6.0","new_version":"9.7.0","repository_url":"https://github.com/mysql/mysql-connector-j"},{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.5","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"com.oracle.database.jdbc:ojdbc-provider-jackson-oson","old_version":"1.0.4","new_version":"1.0.6","repository_url":"https://github.com/oracle/ojdbc-extensions"},{"name":"com.microsoft.sqlserver:mssql-jdbc","old_version":"13.2.1.jre11","new_version":"13.4.0.jre11","repository_url":"https://github.com/Microsoft/mssql-jdbc"},{"name":"com.ibm.db2:jcc","old_version":"12.1.3.0","new_version":"12.1.4.0"},{"name":"com.sap.cloud.db.jdbc:ngdbc","old_version":"2.26.11","new_version":"2.28.7"},{"name":"com.teradata.jdbc:terajdbc","old_version":"20.00.00.51","new_version":"20.00.00.54","repository_url":"https://github.com/Teradata/jdbc-driver"},{"name":"com.ibm.informix:jdbc","old_version":"15.0.0.2","new_version":"15.0.1.1"},{"name":"org.firebirdsql.jdbc:jaybird","old_version":"6.0.3","new_version":"6.0.5","repository_url":"https://github.com/FirebirdSQL/jaybird"},{"name":"com.altibase:altibase-jdbc","old_version":"7.3.0.1.1","new_version":"8.1.0.0.1"},{"name":"com.google.cloud:google-cloud-spanner-jdbc","old_version":"2.35.5","new_version":"2.38.0","repository_url":"https://github.com/googleapis/google-cloud-java"},{"name":"org.apache.maven:maven-core","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-artifact","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-embedder","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-compat","old_version":"3.9.14","new_version":"3.9.15","repository_url":"https://github.com/apache/maven"},{"name":"org.apache.maven.plugin-tools:maven-plugin-tools-annotations","old_version":"3.15.1","new_version":"3.15.2","repository_url":"https://github.com/apache/maven-plugin-tools"},{"name":"org.apache.maven.resolver:maven-resolver-transport-http","old_version":"1.9.24","new_version":"1.9.27"},{"name":"org.apache.maven.resolver:maven-resolver-connector-basic","old_version":"1.9.24","new_version":"1.9.27","repository_url":"https://github.com/apache/maven-resolver"},{"name":"de.thetaphi:forbiddenapis","old_version":"3.8","new_version":"3.10"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.asciidoctor:asciidoctorj","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/asciidoctor/asciidoctorj"},{"name":"com.diffplug.spotless","old_version":"8.3.0","new_version":"8.4.0"},{"name":"com.gradle.plugin-publish","old_version":"2.0.0","new_version":"2.1.1"},{"name":"org.jetbrains.kotlin.jvm","old_version":"2.0.20","new_version":"2.3.21"},{"name":"biz.aQute.bnd","old_version":"7.2.1","new_version":"7.2.3"},{"name":"biz.aQute.bnd.builder","old_version":"7.2.1","new_version":"7.2.3"}],"path":null,"ecosystem":"maven"},"body":"Bumps the build-dependencies group with 46 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| com.gradle.develocity | `4.3.2` | `4.4.1` |\n| com.gradle.common-custom-user-data-gradle-plugin | `2.4.0` | `2.6.0` |\n| [org.checkerframework:checker-qual-android](https://github.com/typetools/checker-framework) | `3.53.1` | `4.1.0` |\n| [org.checkerframework:checker](https://github.com/typetools/checker-framework) | `3.53.1` | `4.1.0` |\n| [org.ehcache:ehcache](https://github.com/ehcache/ehcache3) | `3.11.1` | `3.12.0` |\n| [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.platform:junit-platform-launcher](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) | `1.5.18` | `1.5.32` |\n| org.jboss.byteman:byteman-bmunit | `4.0.24` | `4.0.26` |\n| [org.mockito:mockito-core](https://github.com/mockito/mockito) | `5.20.0` | `5.23.0` |\n| [org.mockito:mockito-junit-jupiter](https://github.com/mockito/mockito) | `5.20.0` | `5.23.0` |\n| org.jboss.weld.se:weld-se-shaded | `6.0.3.Final` | `6.0.4.Final` |\n| [org.dom4j:dom4j](https://github.com/dom4j/dom4j) | `2.1.3` | `2.2.0` |\n| [org.orbisgis:h2gis](https://github.com/orbisgis/H2GIS) | `2.2.4` | `2.2.5` |\n| [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) | `42.7.8` | `42.7.11` |\n| [com.enterprisedb:edb-jdbc](https://github.com/EnterpriseDB/edb-jdbc) | `42.7.3.3` | `42.7.3.4` |\n| [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) | `9.6.0` | `9.7.0` |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.5` | `3.5.8` |\n| [com.oracle.database.jdbc:ojdbc-provider-jackson-oson](https://github.com/oracle/ojdbc-extensions) | `1.0.4` | `1.0.6` |\n| [com.microsoft.sqlserver:mssql-jdbc](https://github.com/Microsoft/mssql-jdbc) | `13.2.1.jre11` | `13.4.0.jre11` |\n| com.ibm.db2:jcc | `12.1.3.0` | `12.1.4.0` |\n| com.sap.cloud.db.jdbc:ngdbc | `2.26.11` | `2.28.7` |\n| [com.teradata.jdbc:terajdbc](https://github.com/Teradata/jdbc-driver) | `20.00.00.51` | `20.00.00.54` |\n| com.ibm.informix:jdbc | `15.0.0.2` | `15.0.1.1` |\n| [org.firebirdsql.jdbc:jaybird](https://github.com/FirebirdSQL/jaybird) | `6.0.3` | `6.0.5` |\n| com.altibase:altibase-jdbc | `7.3.0.1.1` | `8.1.0.0.1` |\n| [com.google.cloud:google-cloud-spanner-jdbc](https://github.com/googleapis/google-cloud-java) | `2.35.5` | `2.38.0` |\n| org.apache.maven:maven-core | `3.9.14` | `3.9.15` |\n| org.apache.maven:maven-artifact | `3.9.14` | `3.9.15` |\n| org.apache.maven:maven-embedder | `3.9.14` | `3.9.15` |\n| [org.apache.maven:maven-compat](https://github.com/apache/maven) | `3.9.14` | `3.9.15` |\n| [org.apache.maven.plugin-tools:maven-plugin-tools-annotations](https://github.com/apache/maven-plugin-tools) | `3.15.1` | `3.15.2` |\n| org.apache.maven.resolver:maven-resolver-transport-http | `1.9.24` | `1.9.27` |\n| [org.apache.maven.resolver:maven-resolver-connector-basic](https://github.com/apache/maven-resolver) | `1.9.24` | `1.9.27` |\n| de.thetaphi:forbiddenapis | `3.8` | `3.10` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.asciidoctor:asciidoctorj](https://github.com/asciidoctor/asciidoctorj) | `3.0.0` | `3.0.1` |\n| com.diffplug.spotless | `8.3.0` | `8.4.0` |\n| com.gradle.plugin-publish | `2.0.0` | `2.1.1` |\n| org.jetbrains.kotlin.jvm | `2.0.20` | `2.3.21` |\n| biz.aQute.bnd | `7.2.1` | `7.2.3` |\n| biz.aQute.bnd.builder | `7.2.1` | `7.2.3` |\n\n\nUpdates `com.gradle.develocity` from 4.3.2 to 4.4.1\n\nUpdates `com.gradle.common-custom-user-data-gradle-plugin` from 2.4.0 to 2.6.0\n\nUpdates `org.checkerframework:checker-qual-android` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker-qual-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker-qual-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.checkerframework:checker` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.checkerframework:checker` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.ehcache:ehcache` from 3.11.1 to 3.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/f4a96f47758e8d0bbe3de81c371bdbb33d620b88\"\u003e\u003ccode\u003ef4a96f4\u003c/code\u003e\u003c/a\u003e Set ehcacheVersion to 3.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/ae90183364e2b67e5bc07c01be6f055b0d193099\"\u003e\u003ccode\u003eae90183\u003c/code\u003e\u003c/a\u003e TDB-20139 restore sonatype deployment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/bc9309ba47ad255872017ca71ba29240d1800c17\"\u003e\u003ccode\u003ebc9309b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3318\"\u003e#3318\u003c/a\u003e from ehcache/upgrade/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/2754c27f3bd53d620d8f4837c7c9e33337cc7c11\"\u003e\u003ccode\u003e2754c27\u003c/code\u003e\u003c/a\u003e CVE-2025-67030: Update plexus-utils to 3.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/87270e4b3b93742c8e3e5dcae733ee1f10f4ad6e\"\u003e\u003ccode\u003e87270e4\u003c/code\u003e\u003c/a\u003e CVE-2026-1605: Update Jetty to 12.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/0be598f1212d72f003700153f8faccebc09effc2\"\u003e\u003ccode\u003e0be598f\u003c/code\u003e\u003c/a\u003e Ignoring CVE-2025-67030\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/59cc21116254b6b1b5970b79272f0b3abfbc6808\"\u003e\u003ccode\u003e59cc211\u003c/code\u003e\u003c/a\u003e Upgrade platform and core\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/2badca4e5a7bb3039ae7521e83c6bf114655cf74\"\u003e\u003ccode\u003e2badca4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3311\"\u003e#3311\u003c/a\u003e from aurbroszniowski/TDB-19854-upgrade-dependencies-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/d532bbce9f72a1e253c4df1fbe6230a96b1e953c\"\u003e\u003ccode\u003ed532bbc\u003c/code\u003e\u003c/a\u003e TDB-19854\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/b6df7aac037d55ee350d242d9b6edd69f6913dbc\"\u003e\u003ccode\u003eb6df7aa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3310\"\u003e#3310\u003c/a\u003e from ehcache/platform-5.11.6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ehcache/ehcache3/compare/v3.11.1...v3.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-api` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-params` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-params's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.vintage:junit-vintage-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.vintage:junit-vintage-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-api` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-params` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-params's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.vintage:junit-vintage-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.vintage:junit-vintage-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.platform:junit-platform-launcher` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.platform:junit-platform-launcher's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ch.qos.logback:logback-classic` from 1.5.18 to 1.5.32\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/qos-ch/logback/releases\"\u003ech.qos.logback:logback-classic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eLogback 1.5.32\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-16 Release of logback version 1.5.32\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• In \u003ccode\u003eDefaultProcessor, \u003c/code\u003efixed incorrect check for dependencies contained within a parent model. Previous only the direct children were scanned. This fixes \u003ca href=\"https://redirect.github.com/qos-ch/logback-access/issues/34\"\u003elogback-access/issues/34\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit e807335a67535b4eacce94e942c0bcb649665d93 associated with the tag v_1.5.32. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback  1.5.31\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-14 Release of logback version 1.5.31\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Fixed missing META-INF/services directory in logback-classic.jar. This issue rendered logback-classic version 1.5.30 unusable with SLF4J.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit 168e42f9f9a18a3ffdf31eb2bfe80a71e33ecd8b associated with the tag v_1.5.31. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.30\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-14 Release of logback  version 1.5.30\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• \u003cstrong\u003eIn this version, logback-classic.jar was missing the META-INF/services directory, making it unusable with SLF4J. Version 1.5.31 (released later on the same day) fixes this issue.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Fix scanning issue when an included file becomes available at a later time. This problem was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1021\"\u003eissues/1021\u003c/a\u003e by Sergey Nazarov.\u003c/p\u003e\n\u003cp\u003e• Standardized code for version checking across modules.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit 44164f10ca3fb44ce0e68519f13564b87e3aca61 associated with the tag v_1.5.30. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.29\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-09 Release of logback version 1.5.29\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• In response to \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1017\"\u003eissues/1017\u003c/a\u003e, appender names and appender references are once again subject to variable substitution, reverting the change introduced in version 1.5.28.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.28\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-06 Release of logback version 1.5.28\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Appender names or appender references are no longer subject to variable substitution.\u003c/p\u003e\n\u003cp\u003e• Fixed issue with configurations with conditionals encompassing appenders. This was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1016\"\u003eissues/1016\u003c/a\u003e reported by Sergey Sazonov.\u003c/p\u003e\n\u003cp\u003e• The \u003c!-- raw HTML omitted --\u003e element now admits a 'scan' attribute which can be used to override the 'scan' attribute in the \u003c!-- raw HTML omitted --\u003e element.\u003c/p\u003e\n\u003cp\u003e• Fixed NullPointerException thrown by VersionUtil.checkForVersionEquality method occurring with GraalVM Native Images. This issue was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1014\"\u003eissues/1014\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit e7a1855ab562bb102333f754603ff89359bf3cfc associated with the tag v_1.5.28. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.27\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-01-30 Release of logback version 1.5.27\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Updated license to Eclipse Public License version 2.0 from version 1.0, retaining the GPL 2.1 dual-license.\u003c/p\u003e\n\u003cp\u003e• Fixed missing MDC data transmitted by \u003ccode\u003eSocketAppender\u003c/code\u003e reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1010\"\u003eissues/1010\u003c/a\u003e by Lars Vogel.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qos-ch/logback/commit/e807335a67535b4eacce94e942c0bcb649665d93\"\u003e\u003ccode\u003ee807335\u003c/code\u003e\u003c/a\u003e prepare release 1.5.32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https:...\n\n_Description has been truncated_","html_url":"https://github.com/marko-bekhta/hibernate-orm/pull/79","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/marko-bekhta%2Fhibernate-orm/issues/79","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/79/packages"},{"uuid":"4390841867","node_id":"PR_kwDOAA6qDM7YvP0h","number":12330,"state":"closed","title":"Bump the build-dependencies group across 1 directory with 46 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-07T00:53:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-06T11:06:24.000Z","updated_at":"2026-05-07T00:53:54.000Z","time_to_close":49648,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"build-dependencies","update_count":46,"packages":[{"name":"com.gradle.develocity","old_version":"4.3.2","new_version":"4.4.1"},{"name":"com.gradle.common-custom-user-data-gradle-plugin","old_version":"2.4.0","new_version":"2.6.0"},{"name":"org.checkerframework:checker-qual-android","old_version":"3.53.1","new_version":"4.1.0","repository_url":"https://github.com/typetools/checker-framework"},{"name":"org.checkerframework:checker","old_version":"3.53.1","new_version":"4.1.0","repository_url":"https://github.com/typetools/checker-framework"},{"name":"org.ehcache:ehcache","old_version":"3.11.1","new_version":"3.12.0","repository_url":"https://github.com/ehcache/ehcache3"},{"name":"org.junit.jupiter:junit-jupiter","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-api","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-engine","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-params","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.vintage:junit-vintage-engine","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.platform:junit-platform-launcher","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"ch.qos.logback:logback-classic","old_version":"1.5.18","new_version":"1.5.32","repository_url":"https://github.com/qos-ch/logback"},{"name":"org.jboss.byteman:byteman-bmunit","old_version":"4.0.24","new_version":"4.0.26"},{"name":"org.mockito:mockito-core","old_version":"5.20.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.mockito:mockito-junit-jupiter","old_version":"5.20.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.jboss.weld.se:weld-se-shaded","old_version":"6.0.3.Final","new_version":"6.0.4.Final"},{"name":"org.dom4j:dom4j","old_version":"2.1.3","new_version":"2.2.0","repository_url":"https://github.com/dom4j/dom4j"},{"name":"org.orbisgis:h2gis","old_version":"2.2.4","new_version":"2.2.5","repository_url":"https://github.com/orbisgis/H2GIS"},{"name":"org.postgresql:postgresql","old_version":"42.7.8","new_version":"42.7.11","repository_url":"https://github.com/pgjdbc/pgjdbc"},{"name":"com.enterprisedb:edb-jdbc","old_version":"42.7.3.3","new_version":"42.7.3.4","repository_url":"https://github.com/EnterpriseDB/edb-jdbc"},{"name":"com.mysql:mysql-connector-j","old_version":"9.6.0","new_version":"9.7.0","repository_url":"https://github.com/mysql/mysql-connector-j"},{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.5","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"com.oracle.database.jdbc:ojdbc-provider-jackson-oson","old_version":"1.0.4","new_version":"1.0.6","repository_url":"https://github.com/oracle/ojdbc-extensions"},{"name":"com.microsoft.sqlserver:mssql-jdbc","old_version":"13.2.1.jre11","new_version":"13.4.0.jre11","repository_url":"https://github.com/Microsoft/mssql-jdbc"},{"name":"com.ibm.db2:jcc","old_version":"12.1.3.0","new_version":"12.1.4.0"},{"name":"com.sap.cloud.db.jdbc:ngdbc","old_version":"2.26.11","new_version":"2.28.7"},{"name":"com.teradata.jdbc:terajdbc","old_version":"20.00.00.51","new_version":"20.00.00.54","repository_url":"https://github.com/Teradata/jdbc-driver"},{"name":"com.ibm.informix:jdbc","old_version":"15.0.0.2","new_version":"15.0.1.1"},{"name":"org.firebirdsql.jdbc:jaybird","old_version":"6.0.3","new_version":"6.0.5","repository_url":"https://github.com/FirebirdSQL/jaybird"},{"name":"com.altibase:altibase-jdbc","old_version":"7.3.0.1.1","new_version":"8.1.0.0.1"},{"name":"com.google.cloud:google-cloud-spanner-jdbc","old_version":"2.35.5","new_version":"2.38.0","repository_url":"https://github.com/googleapis/google-cloud-java"},{"name":"org.apache.maven:maven-core","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-artifact","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-embedder","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-compat","old_version":"3.9.14","new_version":"3.9.15","repository_url":"https://github.com/apache/maven"},{"name":"org.apache.maven.plugin-tools:maven-plugin-tools-annotations","old_version":"3.15.1","new_version":"3.15.2","repository_url":"https://github.com/apache/maven-plugin-tools"},{"name":"org.apache.maven.resolver:maven-resolver-transport-http","old_version":"1.9.24","new_version":"1.9.27"},{"name":"org.apache.maven.resolver:maven-resolver-connector-basic","old_version":"1.9.24","new_version":"1.9.27","repository_url":"https://github.com/apache/maven-resolver"},{"name":"de.thetaphi:forbiddenapis","old_version":"3.8","new_version":"3.10"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.asciidoctor:asciidoctorj","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/asciidoctor/asciidoctorj"},{"name":"com.diffplug.spotless","old_version":"8.3.0","new_version":"8.4.0"},{"name":"com.gradle.plugin-publish","old_version":"2.0.0","new_version":"2.1.1"},{"name":"org.jetbrains.kotlin.jvm","old_version":"2.0.20","new_version":"2.3.21"},{"name":"biz.aQute.bnd","old_version":"7.2.1","new_version":"7.2.3"},{"name":"biz.aQute.bnd.builder","old_version":"7.2.1","new_version":"7.2.3"}],"path":null,"ecosystem":"maven"},"body":"Bumps the build-dependencies group with 46 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| com.gradle.develocity | `4.3.2` | `4.4.1` |\n| com.gradle.common-custom-user-data-gradle-plugin | `2.4.0` | `2.6.0` |\n| [org.checkerframework:checker-qual-android](https://github.com/typetools/checker-framework) | `3.53.1` | `4.1.0` |\n| [org.checkerframework:checker](https://github.com/typetools/checker-framework) | `3.53.1` | `4.1.0` |\n| [org.ehcache:ehcache](https://github.com/ehcache/ehcache3) | `3.11.1` | `3.12.0` |\n| [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.platform:junit-platform-launcher](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) | `1.5.18` | `1.5.32` |\n| org.jboss.byteman:byteman-bmunit | `4.0.24` | `4.0.26` |\n| [org.mockito:mockito-core](https://github.com/mockito/mockito) | `5.20.0` | `5.23.0` |\n| [org.mockito:mockito-junit-jupiter](https://github.com/mockito/mockito) | `5.20.0` | `5.23.0` |\n| org.jboss.weld.se:weld-se-shaded | `6.0.3.Final` | `6.0.4.Final` |\n| [org.dom4j:dom4j](https://github.com/dom4j/dom4j) | `2.1.3` | `2.2.0` |\n| [org.orbisgis:h2gis](https://github.com/orbisgis/H2GIS) | `2.2.4` | `2.2.5` |\n| [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) | `42.7.8` | `42.7.11` |\n| [com.enterprisedb:edb-jdbc](https://github.com/EnterpriseDB/edb-jdbc) | `42.7.3.3` | `42.7.3.4` |\n| [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) | `9.6.0` | `9.7.0` |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.5` | `3.5.8` |\n| [com.oracle.database.jdbc:ojdbc-provider-jackson-oson](https://github.com/oracle/ojdbc-extensions) | `1.0.4` | `1.0.6` |\n| [com.microsoft.sqlserver:mssql-jdbc](https://github.com/Microsoft/mssql-jdbc) | `13.2.1.jre11` | `13.4.0.jre11` |\n| com.ibm.db2:jcc | `12.1.3.0` | `12.1.4.0` |\n| com.sap.cloud.db.jdbc:ngdbc | `2.26.11` | `2.28.7` |\n| [com.teradata.jdbc:terajdbc](https://github.com/Teradata/jdbc-driver) | `20.00.00.51` | `20.00.00.54` |\n| com.ibm.informix:jdbc | `15.0.0.2` | `15.0.1.1` |\n| [org.firebirdsql.jdbc:jaybird](https://github.com/FirebirdSQL/jaybird) | `6.0.3` | `6.0.5` |\n| com.altibase:altibase-jdbc | `7.3.0.1.1` | `8.1.0.0.1` |\n| [com.google.cloud:google-cloud-spanner-jdbc](https://github.com/googleapis/google-cloud-java) | `2.35.5` | `2.38.0` |\n| org.apache.maven:maven-core | `3.9.14` | `3.9.15` |\n| org.apache.maven:maven-artifact | `3.9.14` | `3.9.15` |\n| org.apache.maven:maven-embedder | `3.9.14` | `3.9.15` |\n| [org.apache.maven:maven-compat](https://github.com/apache/maven) | `3.9.14` | `3.9.15` |\n| [org.apache.maven.plugin-tools:maven-plugin-tools-annotations](https://github.com/apache/maven-plugin-tools) | `3.15.1` | `3.15.2` |\n| org.apache.maven.resolver:maven-resolver-transport-http | `1.9.24` | `1.9.27` |\n| [org.apache.maven.resolver:maven-resolver-connector-basic](https://github.com/apache/maven-resolver) | `1.9.24` | `1.9.27` |\n| de.thetaphi:forbiddenapis | `3.8` | `3.10` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.asciidoctor:asciidoctorj](https://github.com/asciidoctor/asciidoctorj) | `3.0.0` | `3.0.1` |\n| com.diffplug.spotless | `8.3.0` | `8.4.0` |\n| com.gradle.plugin-publish | `2.0.0` | `2.1.1` |\n| org.jetbrains.kotlin.jvm | `2.0.20` | `2.3.21` |\n| biz.aQute.bnd | `7.2.1` | `7.2.3` |\n| biz.aQute.bnd.builder | `7.2.1` | `7.2.3` |\n\n\nUpdates `com.gradle.develocity` from 4.3.2 to 4.4.1\n\nUpdates `com.gradle.common-custom-user-data-gradle-plugin` from 2.4.0 to 2.6.0\n\nUpdates `org.checkerframework:checker-qual-android` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker-qual-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker-qual-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.checkerframework:checker` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.checkerframework:checker` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.ehcache:ehcache` from 3.11.1 to 3.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/f4a96f47758e8d0bbe3de81c371bdbb33d620b88\"\u003e\u003ccode\u003ef4a96f4\u003c/code\u003e\u003c/a\u003e Set ehcacheVersion to 3.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/ae90183364e2b67e5bc07c01be6f055b0d193099\"\u003e\u003ccode\u003eae90183\u003c/code\u003e\u003c/a\u003e TDB-20139 restore sonatype deployment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/bc9309ba47ad255872017ca71ba29240d1800c17\"\u003e\u003ccode\u003ebc9309b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3318\"\u003e#3318\u003c/a\u003e from ehcache/upgrade/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/2754c27f3bd53d620d8f4837c7c9e33337cc7c11\"\u003e\u003ccode\u003e2754c27\u003c/code\u003e\u003c/a\u003e CVE-2025-67030: Update plexus-utils to 3.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/87270e4b3b93742c8e3e5dcae733ee1f10f4ad6e\"\u003e\u003ccode\u003e87270e4\u003c/code\u003e\u003c/a\u003e CVE-2026-1605: Update Jetty to 12.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/0be598f1212d72f003700153f8faccebc09effc2\"\u003e\u003ccode\u003e0be598f\u003c/code\u003e\u003c/a\u003e Ignoring CVE-2025-67030\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/59cc21116254b6b1b5970b79272f0b3abfbc6808\"\u003e\u003ccode\u003e59cc211\u003c/code\u003e\u003c/a\u003e Upgrade platform and core\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/2badca4e5a7bb3039ae7521e83c6bf114655cf74\"\u003e\u003ccode\u003e2badca4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3311\"\u003e#3311\u003c/a\u003e from aurbroszniowski/TDB-19854-upgrade-dependencies-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/d532bbce9f72a1e253c4df1fbe6230a96b1e953c\"\u003e\u003ccode\u003ed532bbc\u003c/code\u003e\u003c/a\u003e TDB-19854\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/b6df7aac037d55ee350d242d9b6edd69f6913dbc\"\u003e\u003ccode\u003eb6df7aa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3310\"\u003e#3310\u003c/a\u003e from ehcache/platform-5.11.6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ehcache/ehcache3/compare/v3.11.1...v3.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-api` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-params` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-params's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.vintage:junit-vintage-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.vintage:junit-vintage-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-api` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-params` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-params's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.vintage:junit-vintage-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.vintage:junit-vintage-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.platform:junit-platform-launcher` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.platform:junit-platform-launcher's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ch.qos.logback:logback-classic` from 1.5.18 to 1.5.32\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/qos-ch/logback/releases\"\u003ech.qos.logback:logback-classic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eLogback 1.5.32\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-16 Release of logback version 1.5.32\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• In \u003ccode\u003eDefaultProcessor, \u003c/code\u003efixed incorrect check for dependencies contained within a parent model. Previous only the direct children were scanned. This fixes \u003ca href=\"https://redirect.github.com/qos-ch/logback-access/issues/34\"\u003elogback-access/issues/34\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit e807335a67535b4eacce94e942c0bcb649665d93 associated with the tag v_1.5.32. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback  1.5.31\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-14 Release of logback version 1.5.31\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Fixed missing META-INF/services directory in logback-classic.jar. This issue rendered logback-classic version 1.5.30 unusable with SLF4J.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit 168e42f9f9a18a3ffdf31eb2bfe80a71e33ecd8b associated with the tag v_1.5.31. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.30\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-14 Release of logback  version 1.5.30\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• \u003cstrong\u003eIn this version, logback-classic.jar was missing the META-INF/services directory, making it unusable with SLF4J. Version 1.5.31 (released later on the same day) fixes this issue.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Fix scanning issue when an included file becomes available at a later time. This problem was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1021\"\u003eissues/1021\u003c/a\u003e by Sergey Nazarov.\u003c/p\u003e\n\u003cp\u003e• Standardized code for version checking across modules.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit 44164f10ca3fb44ce0e68519f13564b87e3aca61 associated with the tag v_1.5.30. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.29\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-09 Release of logback version 1.5.29\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• In response to \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1017\"\u003eissues/1017\u003c/a\u003e, appender names and appender references are once again subject to variable substitution, reverting the change introduced in version 1.5.28.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.28\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-06 Release of logback version 1.5.28\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Appender names or appender references are no longer subject to variable substitution.\u003c/p\u003e\n\u003cp\u003e• Fixed issue with configurations with conditionals encompassing appenders. This was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1016\"\u003eissues/1016\u003c/a\u003e reported by Sergey Sazonov.\u003c/p\u003e\n\u003cp\u003e• The \u003c!-- raw HTML omitted --\u003e element now admits a 'scan' attribute which can be used to override the 'scan' attribute in the \u003c!-- raw HTML omitted --\u003e element.\u003c/p\u003e\n\u003cp\u003e• Fixed NullPointerException thrown by VersionUtil.checkForVersionEquality method occurring with GraalVM Native Images. This issue was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1014\"\u003eissues/1014\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit e7a1855ab562bb102333f754603ff89359bf3cfc associated with the tag v_1.5.28. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.27\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-01-30 Release of logback version 1.5.27\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Updated license to Eclipse Public License version 2.0 from version 1.0, retaining the GPL 2.1 dual-license.\u003c/p\u003e\n\u003cp\u003e• Fixed missing MDC data transmitted by \u003ccode\u003eSocketAppender\u003c/code\u003e reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1010\"\u003eissues/1010\u003c/a\u003e by Lars Vogel.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qos-ch/logback/commit/e807335a67535b4eacce94e942c0bcb649665d93\"\u003e\u003ccode\u003ee807335\u003c/code\u003e\u003c/a\u003e prepare release 1.5.32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https...\n\n_Description has been truncated_","html_url":"https://github.com/hibernate/hibernate-orm/pull/12330","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibernate%2Fhibernate-orm/issues/12330","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12330/packages"},{"uuid":"4374497173","node_id":"PR_kwDORw-J0s7X5m9Q","number":53,"state":"open","title":"chore(deps): bump the backend-dependencies group with 41 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-04T06:42:37.000Z","updated_at":"2026-05-04T06:46:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"backend-dependencies","update_count":41,"packages":[{"name":"com.google.cloud:spring-cloud-gcp-dependencies","old_version":"5.1.2","new_version":"8.0.2","repository_url":"https://github.com/GoogleCloudPlatform/spring-cloud-gcp"},{"name":"com.google.firebase:firebase-admin","old_version":"9.2.0","new_version":"9.8.0","repository_url":"https://github.com/firebase/firebase-admin-java"},{"name":"com.google.auth:google-auth-library-oauth2-http","old_version":"1.14.0","new_version":"1.46.0"},{"name":"software.amazon.awssdk:secretsmanager","old_version":"2.25.36","new_version":"2.44.0"},{"name":"software.amazon.awssdk:regions","old_version":"2.25.36","new_version":"2.44.0"},{"name":"com.azure:azure-identity","old_version":"1.12.2","new_version":"1.18.3","repository_url":"https://github.com/Azure/azure-sdk-for-java"},{"name":"com.azure:azure-security-keyvault-secrets","old_version":"4.8.2","new_version":"4.10.6","repository_url":"https://github.com/Azure/azure-sdk-for-java"},{"name":"com.squareup.okhttp3:okhttp","old_version":"4.12.0","new_version":"5.3.2","repository_url":"https://github.com/square/okhttp"},{"name":"com.squareup.okhttp3:logging-interceptor","old_version":"4.12.0","new_version":"5.3.2","repository_url":"https://github.com/square/okhttp"},{"name":"com.fasterxml.jackson.core:jackson-core","old_version":"2.17.0","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson-core"},{"name":"com.fasterxml.jackson.core:jackson-annotations","old_version":"2.17.0","new_version":"2.21.3"},{"name":"com.fasterxml.jackson.core:jackson-databind","old_version":"2.17.0","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson"},{"name":"com.fasterxml.jackson.datatype:jackson-datatype-jsr310","old_version":"2.17.0","new_version":"2.21.3"},{"name":"com.fasterxml.jackson.module:jackson-module-afterburner","old_version":"2.17.0","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson-modules-base"},{"name":"org.jsoup:jsoup","old_version":"1.17.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.slf4j:slf4j-api","old_version":"2.0.16","new_version":"2.0.17"},{"name":"ch.qos.logback:logback-classic","old_version":"1.5.8","new_version":"1.5.32","repository_url":"https://github.com/qos-ch/logback"},{"name":"ch.qos.logback:logback-core","old_version":"1.5.8","new_version":"1.5.32","repository_url":"https://github.com/qos-ch/logback"},{"name":"io.jsonwebtoken:jjwt-api","old_version":"0.12.5","new_version":"0.13.0","repository_url":"https://github.com/jwtk/jjwt"},{"name":"io.jsonwebtoken:jjwt-impl","old_version":"0.12.5","new_version":"0.13.0","repository_url":"https://github.com/jwtk/jjwt"},{"name":"io.jsonwebtoken:jjwt-jackson","old_version":"0.12.5","new_version":"0.13.0"},{"name":"jakarta.servlet:jakarta.servlet-api","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/eclipse-ee4j/servlet-api"},{"name":"io.github.resilience4j:resilience4j-core","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/resilience4j/resilience4j"},{"name":"io.github.resilience4j:resilience4j-retry","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/resilience4j/resilience4j"},{"name":"io.github.resilience4j:resilience4j-circuitbreaker","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/resilience4j/resilience4j"},{"name":"com.github.vladimir-bukhtoyarov:bucket4j-core","old_version":"7.6.0","new_version":"8.0.1","repository_url":"https://github.com/vladimir-bukhtoyarov/bucket4j"},{"name":"io.micrometer:micrometer-core","old_version":"1.12.3","new_version":"1.16.5","repository_url":"https://github.com/micrometer-metrics/micrometer"},{"name":"io.micrometer:micrometer-registry-prometheus","old_version":"1.12.3","new_version":"1.16.5","repository_url":"https://github.com/micrometer-metrics/micrometer"},{"name":"io.opentelemetry:opentelemetry-api","old_version":"1.36.0","new_version":"1.61.0","repository_url":"https://github.com/open-telemetry/opentelemetry-java"},{"name":"io.opentelemetry:opentelemetry-sdk","old_version":"1.36.0","new_version":"1.61.0","repository_url":"https://github.com/open-telemetry/opentelemetry-java"},{"name":"io.opentelemetry:opentelemetry-exporter-otlp","old_version":"1.36.0","new_version":"1.61.0","repository_url":"https://github.com/open-telemetry/opentelemetry-java"},{"name":"io.lettuce:lettuce-core","old_version":"6.3.0.RELEASE","new_version":"7.5.1.RELEASE","repository_url":"https://github.com/redis/lettuce"},{"name":"org.apache.commons:commons-pool2","old_version":"2.12.0","new_version":"2.13.1"},{"name":"com.zaxxer:HikariCP","old_version":"5.1.0","new_version":"7.0.2","repository_url":"https://github.com/brettwooldridge/HikariCP"},{"name":"com.github.ben-manes.caffeine:caffeine","old_version":"3.1.8","new_version":"3.2.4","repository_url":"https://github.com/ben-manes/caffeine"},{"name":"org.projectlombok:lombok","old_version":"1.18.34","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"org.junit:junit-bom","old_version":"5.10.0","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.mockito:mockito-core","old_version":"5.7.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.mockito:mockito-junit-jupiter","old_version":"5.7.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.springframework.boot","old_version":"3.3.4","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"gradle-wrapper","old_version":"8.10","new_version":"9.5.0","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the backend-dependencies group with 41 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [com.google.cloud:spring-cloud-gcp-dependencies](https://github.com/GoogleCloudPlatform/spring-cloud-gcp) | `5.1.2` | `8.0.2` |\n| [com.google.firebase:firebase-admin](https://github.com/firebase/firebase-admin-java) | `9.2.0` | `9.8.0` |\n| com.google.auth:google-auth-library-oauth2-http | `1.14.0` | `1.46.0` |\n| software.amazon.awssdk:secretsmanager | `2.25.36` | `2.44.0` |\n| software.amazon.awssdk:regions | `2.25.36` | `2.44.0` |\n| [com.azure:azure-identity](https://github.com/Azure/azure-sdk-for-java) | `1.12.2` | `1.18.3` |\n| [com.azure:azure-security-keyvault-secrets](https://github.com/Azure/azure-sdk-for-java) | `4.8.2` | `4.10.6` |\n| [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) | `4.12.0` | `5.3.2` |\n| [com.squareup.okhttp3:logging-interceptor](https://github.com/square/okhttp) | `4.12.0` | `5.3.2` |\n| [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) | `2.17.0` | `2.21.3` |\n| com.fasterxml.jackson.core:jackson-annotations | `2.17.0` | `2.21.3` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.17.0` | `2.21.3` |\n| com.fasterxml.jackson.datatype:jackson-datatype-jsr310 | `2.17.0` | `2.21.3` |\n| [com.fasterxml.jackson.module:jackson-module-afterburner](https://github.com/FasterXML/jackson-modules-base) | `2.17.0` | `2.21.3` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.17.1` | `1.22.2` |\n| org.slf4j:slf4j-api | `2.0.16` | `2.0.17` |\n| [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) | `1.5.8` | `1.5.32` |\n| [ch.qos.logback:logback-core](https://github.com/qos-ch/logback) | `1.5.8` | `1.5.32` |\n| [io.jsonwebtoken:jjwt-api](https://github.com/jwtk/jjwt) | `0.12.5` | `0.13.0` |\n| [io.jsonwebtoken:jjwt-impl](https://github.com/jwtk/jjwt) | `0.12.5` | `0.13.0` |\n| io.jsonwebtoken:jjwt-jackson | `0.12.5` | `0.13.0` |\n| [jakarta.servlet:jakarta.servlet-api](https://github.com/eclipse-ee4j/servlet-api) | `6.0.0` | `6.1.0` |\n| [io.github.resilience4j:resilience4j-core](https://github.com/resilience4j/resilience4j) | `2.1.0` | `2.4.0` |\n| [io.github.resilience4j:resilience4j-retry](https://github.com/resilience4j/resilience4j) | `2.1.0` | `2.4.0` |\n| [io.github.resilience4j:resilience4j-circuitbreaker](https://github.com/resilience4j/resilience4j) | `2.1.0` | `2.4.0` |\n| [com.github.vladimir-bukhtoyarov:bucket4j-core](https://github.com/vladimir-bukhtoyarov/bucket4j) | `7.6.0` | `8.0.1` |\n| [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) | `1.12.3` | `1.16.5` |\n| [io.micrometer:micrometer-registry-prometheus](https://github.com/micrometer-metrics/micrometer) | `1.12.3` | `1.16.5` |\n| [io.opentelemetry:opentelemetry-api](https://github.com/open-telemetry/opentelemetry-java) | `1.36.0` | `1.61.0` |\n| [io.opentelemetry:opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-java) | `1.36.0` | `1.61.0` |\n| [io.opentelemetry:opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-java) | `1.36.0` | `1.61.0` |\n| [io.lettuce:lettuce-core](https://github.com/redis/lettuce) | `6.3.0.RELEASE` | `7.5.1.RELEASE` |\n| org.apache.commons:commons-pool2 | `2.12.0` | `2.13.1` |\n| [com.zaxxer:HikariCP](https://github.com/brettwooldridge/HikariCP) | `5.1.0` | `7.0.2` |\n| [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) | `3.1.8` | `3.2.4` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.34` | `1.18.46` |\n| [org.junit:junit-bom](https://github.com/junit-team/junit-framework) | `5.10.0` | `6.0.3` |\n| [org.mockito:mockito-core](https://github.com/mockito/mockito) | `5.7.0` | `5.23.0` |\n| [org.mockito:mockito-junit-jupiter](https://github.com/mockito/mockito) | `5.7.0` | `5.23.0` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `3.3.4` | `4.0.6` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `8.10` | `9.5.0` |\n\nUpdates `com.google.cloud:spring-cloud-gcp-dependencies` from 5.1.2 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/releases\"\u003ecom.google.cloud:spring-cloud-gcp-dependencies's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v8.0.1...v8.0.2\"\u003e8.0.2\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update dependency com.google.cloud:libraries-bom to v26.79.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4401\"\u003e#4401\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/ea49ad19ea80c460ada05f7e8efd602ec6abeb99\"\u003eea49ad1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update gapic-generator-java-bom.version to v2.68.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4400\"\u003e#4400\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/23eb6e881c6a1ac2ff2d3bddadb537c4a1bdd4cc\"\u003e23eb6e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eenhance check with maven central (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4369\"\u003e#4369\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/bc21fe7d6472459a8b3b20e1a2013d1d97650170\"\u003ebc21fe7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFlaky Test \u003ccode\u003eConverterAwareMappingSpannerEntityReaderTests.readUnmatachableTypesTest()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4187\"\u003e#4187\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/3c1ce61d201d732a8886ca06900fd83962f36c2a\"\u003e3c1ce61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNullPointerException in spring-cloud-gcp-data-spanner (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4383\"\u003e#4383\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/366c6fe5791aff9bf05e3e55bdaff9fcc2354067\"\u003e366c6fe\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4381\"\u003e#4381\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd Spring Boot 4.0 migration release notes (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4355\"\u003e#4355\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/20f22d31d89b2441eb81d8d03914220ba7e37b62\"\u003e20f22d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v8.0.0...v8.0.1\"\u003e8.0.1\u003c/a\u003e (2026-03-09)\u003c/h2\u003e\n\u003cp\u003eSpring Boot 4.0 / Spring 7 Migration\nThis release marks a major architectural upgrade, moving the project baseline to Java 17 (with JDK 25 for Native Image) and Jakarta EE 11. This version focuses on achieving compatibility with the new modular architecture of Spring Boot 4.0, the refactored SpEL evaluation engine in Spring Data 2025.1, and enhanced AOT support for GraalVM. For a comprehensive overview of upstream changes, please refer to the official \u003ca href=\"https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide\"\u003eSpring Boot 4.0 Migration Guide\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSpring Data 4.0 (SpEL Evaluation): Multiple constructors removed due to the removal of QueryMethodEvaluationContextProvider. Users must migrate to constructors accepting ValueExpressionDelegate.\nAffected Classes: DatastoreQueryLookupStrategy, GqlDatastoreQuery, SpannerQueryLookupStrategy, SqlSpannerQuery.\nUser Action: If you manually instantiate these classes (e.g., in custom repository implementations), you must replace the   QueryMethodEvaluationContextProvider parameter with ValueExpressionDelegate.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMapping Exceptions: In Spring Data 4.0 (2025.1), metadata discovery and entity mapping failures are now uniformly wrapped in a top-level org.springframework.data.mapping.MappingException.\nImpact: Previously caught module-specific exceptions (e.g., SpannerDataException) may now be nested inside a MappingException.\nUser Action: Update error handling logic to check for the underlying cause. \u0026quot;Use NestedExceptionUtils.getMostSpecificCause() to retrieve specific error message details..\u0026quot;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNested Exceptions: Following Spring Framework 7.0's changes to NestedRuntimeException, nested exception messages are no longer automatically appended to the top-level getMessage() output.\nUser Action: When constructing custom error messages, you must now explicitly access the cause. \u0026quot;Use NestedExceptionUtils.getMostSpecificCause() to retrieve specific error message details.\u0026quot;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eActuator Health API: \u003ca href=\"https://docs.spring.io/spring-boot/reference/actuator/endpoints.html#actuator.endpoints.health\"\u003eThe Actuator Health API\u003c/a\u003e has been restructured to support better grouping through the org.springframework.boot.health.contributor package. PubSubHealthIndicator and SpannerHealthIndicator are now registered as HealthContributor beans.\nUser Action: These indicators are now always wrapped into a CompositeHealthContributor by the framework's auto-configuration.    Users who previously injected PubSubHealthIndicator or HealthIndicator directly must now inject HealthContributor and navigate the composite hierarchy if direct access is needed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.springframework.boot:spring-boot-dependencies from 3.5.3 to 4.0.0\u003c/li\u003e\n\u003cli\u003ebump org.springframework.cloud:spring-cloud-dependencies from 2025.0.0 to 2025.1.0\u003c/li\u003e\n\u003cli\u003ebump com.google.cloud:cloud-sql-socket-factory-bom from 1.25.0 to 1.28.0\u003c/li\u003e\n\u003cli\u003ebump io.r2dbc:r2dbc-postgresql from 1.0.7.RELEASE to 1.1.1.RELEASE\u003c/li\u003e\n\u003cli\u003ebump org.graalvm.buildtools:native-maven-plugin from 0.10.5 to 0.11.3\u003c/li\u003e\n\u003cli\u003ebump jakarta.annotation:jakarta.annotation-api from 1.3.5 to 2.1.1\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson:jackson-bom from 2.18.2 to 3.0.2 (via tools.jackson)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.4.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v7.4.5...v7.4.6\"\u003e7.4.6\u003c/a\u003e (2026-04-07)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/blob/main/CHANGELOG.md\"\u003ecom.google.cloud:spring-cloud-gcp-dependencies's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v8.0.1...v8.0.2\"\u003e8.0.2\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update dependency com.google.cloud:libraries-bom to v26.79.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4401\"\u003e#4401\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/ea49ad19ea80c460ada05f7e8efd602ec6abeb99\"\u003eea49ad1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update gapic-generator-java-bom.version to v2.68.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4400\"\u003e#4400\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/23eb6e881c6a1ac2ff2d3bddadb537c4a1bdd4cc\"\u003e23eb6e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eenhance check with maven central (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4369\"\u003e#4369\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/bc21fe7d6472459a8b3b20e1a2013d1d97650170\"\u003ebc21fe7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFlaky Test \u003ccode\u003eConverterAwareMappingSpannerEntityReaderTests.readUnmatachableTypesTest()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4187\"\u003e#4187\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/3c1ce61d201d732a8886ca06900fd83962f36c2a\"\u003e3c1ce61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNullPointerException in spring-cloud-gcp-data-spanner (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4383\"\u003e#4383\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/366c6fe5791aff9bf05e3e55bdaff9fcc2354067\"\u003e366c6fe\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4381\"\u003e#4381\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd Spring Boot 4.0 migration release notes (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4355\"\u003e#4355\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/20f22d31d89b2441eb81d8d03914220ba7e37b62\"\u003e20f22d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.0.1] Spring Boot 4.0 / Spring 7 Migration\u003c/h2\u003e\n\u003cp\u003eThis release marks a major architectural upgrade, moving the project baseline to \u003cstrong\u003eJava 17\u003c/strong\u003e (with \u003cstrong\u003eJDK 25\u003c/strong\u003e for Native Image) and \u003cstrong\u003eJakarta EE 11\u003c/strong\u003e.\nThis version focuses on achieving compatibility with the new modular architecture of Spring Boot 4.0, the refactored SpEL evaluation engine in Spring Data 2025.1, and enhanced AOT support for GraalVM.\nFor a comprehensive overview of upstream changes, please refer to the official \u003ca href=\"https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide\"\u003eSpring Boot 4.0 Migration Guide\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSpring Data 4.0 (SpEL Evaluation):\u003c/strong\u003e Multiple constructors removed due to the removal of \u003ccode\u003eQueryMethodEvaluationContextProvider\u003c/code\u003e. Users must migrate to constructors accepting \u003ccode\u003eValueExpressionDelegate\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAffected Classes:\u003c/strong\u003e \u003ccode\u003eDatastoreQueryLookupStrategy\u003c/code\u003e, \u003ccode\u003eGqlDatastoreQuery\u003c/code\u003e, \u003ccode\u003eSpannerQueryLookupStrategy\u003c/code\u003e, \u003ccode\u003eSqlSpannerQuery\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUser Action:\u003c/strong\u003e If you manually instantiate these classes (e.g., in custom repository implementations), you must replace the \u003ccode\u003eQueryMethodEvaluationContextProvider\u003c/code\u003e parameter with \u003ccode\u003eValueExpressionDelegate\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMapping Exceptions:\u003c/strong\u003e In Spring Data 4.0 (2025.1), metadata discovery and entity mapping failures are now uniformly wrapped in a top-level \u003ccode\u003eorg.springframework.data.mapping.MappingException\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eImpact:\u003c/strong\u003e Previously caught module-specific exceptions (e.g., \u003ccode\u003eSpannerDataException\u003c/code\u003e) may now be nested inside a \u003ccode\u003eMappingException\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUser Action:\u003c/strong\u003e Update error handling logic to check for the underlying cause. \u0026quot;Use \u003ccode\u003eNestedExceptionUtils.getMostSpecificCause()\u003c/code\u003e to retrieve specific error message details..\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNested Exceptions:\u003c/strong\u003e Following Spring Framework 7.0's changes to \u003ccode\u003eNestedRuntimeException\u003c/code\u003e, nested exception messages are no longer automatically appended to the top-level \u003ccode\u003egetMessage()\u003c/code\u003e output.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eUser Action:\u003c/strong\u003e When constructing custom error messages, you must now explicitly access the cause. \u0026quot;Use \u003ccode\u003eNestedExceptionUtils.getMostSpecificCause()\u003c/code\u003e to retrieve specific error message details.\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eActuator Health API:\u003c/strong\u003e \u003ca href=\"https://docs.spring.io/spring-boot/reference/actuator/endpoints.html#actuator.endpoints.health\"\u003eThe Actuator Health API\u003c/a\u003e has been restructured to support better grouping through the \u003ccode\u003eorg.springframework.boot.health.contributor\u003c/code\u003e package. \u003ccode\u003ePubSubHealthIndicator\u003c/code\u003e and \u003ccode\u003eSpannerHealthIndicator\u003c/code\u003e are now registered as \u003ccode\u003eHealthContributor\u003c/code\u003e beans.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eUser Action:\u003c/strong\u003e These indicators are now \u003cstrong\u003ealways\u003c/strong\u003e wrapped into a \u003ccode\u003eCompositeHealthContributor\u003c/code\u003e by the framework's auto-configuration. Users who previously injected \u003ccode\u003ePubSubHealthIndicator\u003c/code\u003e or \u003ccode\u003eHealthIndicator\u003c/code\u003e directly must now inject \u003ccode\u003eHealthContributor\u003c/code\u003e and navigate the composite hierarchy if direct access is needed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebump \u003ccode\u003eorg.springframework.boot:spring-boot-dependencies\u003c/code\u003e from \u003ccode\u003e3.5.3\u003c/code\u003e to \u003ccode\u003e4.0.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003eorg.springframework.cloud:spring-cloud-dependencies\u003c/code\u003e from \u003ccode\u003e2025.0.0\u003c/code\u003e to \u003ccode\u003e2025.1.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003ecom.google.cloud:cloud-sql-socket-factory-bom\u003c/code\u003e from \u003ccode\u003e1.25.0\u003c/code\u003e to \u003ccode\u003e1.28.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003eio.r2dbc:r2dbc-postgresql\u003c/code\u003e from \u003ccode\u003e1.0.7.RELEASE\u003c/code\u003e to \u003ccode\u003e1.1.1.RELEASE\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003eorg.graalvm.buildtools:native-maven-plugin\u003c/code\u003e from \u003ccode\u003e0.10.5\u003c/code\u003e to \u003ccode\u003e0.11.3\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003ejakarta.annotation:jakarta.annotation-api\u003c/code\u003e from \u003ccode\u003e1.3.5\u003c/code\u003e to \u003ccode\u003e2.1.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003ecom.fasterxml.jackson:jackson-bom\u003c/code\u003e from \u003ccode\u003e2.18.2\u003c/code\u003e to \u003ccode\u003e3.0.2\u003c/code\u003e (via \u003ccode\u003etools.jackson\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v7.4.4...v7.4.5\"\u003e7.4.5\u003c/a\u003e (2026-02-21)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/107eb9af6500caff1a509c044b5169fe5345cff5\"\u003e\u003ccode\u003e107eb9a\u003c/code\u003e\u003c/a\u003e chore(main): release 8.0.2 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4373\"\u003e#4373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/ea49ad19ea80c460ada05f7e8efd602ec6abeb99\"\u003e\u003ccode\u003eea49ad1\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency com.google.cloud:libraries-bom to v26.79.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4401\"\u003e#4401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/23eb6e881c6a1ac2ff2d3bddadb537c4a1bdd4cc\"\u003e\u003ccode\u003e23eb6e8\u003c/code\u003e\u003c/a\u003e fix(deps): update gapic-generator-java-bom.version to v2.68.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4400\"\u003e#4400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/80241822cd5b79ac60793cb18d624601714513d0\"\u003e\u003ccode\u003e8024182\u003c/code\u003e\u003c/a\u003e chore: remove duplicate code (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/3c1ce61d201d732a8886ca06900fd83962f36c2a\"\u003e\u003ccode\u003e3c1ce61\u003c/code\u003e\u003c/a\u003e fix: Flaky Test `ConverterAwareMappingSpannerEntityReaderTests.readUnmatachab...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/366c6fe5791aff9bf05e3e55bdaff9fcc2354067\"\u003e\u003ccode\u003e366c6fe\u003c/code\u003e\u003c/a\u003e fix: NullPointerException in spring-cloud-gcp-data-spanner (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4383\"\u003e#4383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/8a2fb16a9fa461b039687c399215948a147940c5\"\u003e\u003ccode\u003e8a2fb16\u003c/code\u003e\u003c/a\u003e util: sync fork with upstream before Initializr PR creation (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4372\"\u003e#4372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/b41442ece15328a04385ee45af8972ae23117fde\"\u003e\u003ccode\u003eb41442e\u003c/code\u003e\u003c/a\u003e util: add DCO sign-off to Spring Initializr PRs (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/a2885024b2fdb5780a1efe478e27345f97a3143e\"\u003e\u003ccode\u003ea288502\u003c/code\u003e\u003c/a\u003e chore: add support for restarting release script from specific step (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4370\"\u003e#4370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/bc21fe7d6472459a8b3b20e1a2013d1d97650170\"\u003e\u003ccode\u003ebc21fe7\u003c/code\u003e\u003c/a\u003e fix: enhance check with maven central (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4369\"\u003e#4369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v5.1.2...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.firebase:firebase-admin` from 9.2.0 to 9.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/firebase/firebase-admin-java/releases\"\u003ecom.google.firebase:firebase-admin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eFirebase Admin Java SDK v9.8.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(rc): Support Remote Config managed value types (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1167\"\u003e#1167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: Reimplement HTTP/2 response entity consumption using ApacheHttp2AsyncEntityConsumer and ApacheHttp2Entity (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1181\"\u003e#1181\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release 9.8.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1184\"\u003e#1184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd javadocs to public methods (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1187\"\u003e#1187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump com.google.cloud:libraries-bom from 26.75.0 to 26.76.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump netty.version from 4.2.9.Final to 4.2.10.Final (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps-dev): Bump org.apache.maven.plugins:maven-compiler-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump com.google.cloud:libraries-bom from 26.74.0 to 26.75.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1179\"\u003e#1179\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFirebase Admin Java SDK v9.7.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(fcm): Preserve unmapped \u003ccode\u003eTopicManagementResponse\u003c/code\u003e error reasons (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release 9.7.1 Take 2 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[chore] Release 9.7.1 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1175\"\u003e#1175\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[chore] Release 9.7.1 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Update release workflow for push triggers (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Update copyright headers to Google LLC (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.codehaus.mojo:exec-maven-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1165\"\u003e#1165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump com.google.cloud:libraries-bom from 26.72.0 to 26.73.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1163\"\u003e#1163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.sonatype.central:central-publishing-maven-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1169\"\u003e#1169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Update Github action resources (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1172\"\u003e#1172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Update github actions workflows and integration test resources (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Bump \u003ccode\u003eio.netty\u003c/code\u003e to \u003ccode\u003e4.2.9\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.sonatype.central:central-publishing-maven-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1140\"\u003e#1140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.apache.maven.plugins:maven-source-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.apache.maven.plugins:maven-antrun-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1154\"\u003e#1154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump io.netty:netty-codec-http (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1157\"\u003e#1157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump com.google.cloud:libraries-bom from 26.71.0 to 26.72.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Rename default branch to main (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.apache.maven.plugins:maven-compiler-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.jacoco:jacoco-maven-plugin from 0.8.13 to 0.8.14 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.apache.maven.plugins:maven-failsafe-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.codehaus.mojo:exec-maven-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump netty.version from 4.2.6.Final to 4.2.7.Final (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.apache.maven.plugins:maven-javadoc-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/5169aae2642a27ca8d423aa28365ca111d34a4d2\"\u003e\u003ccode\u003e5169aae\u003c/code\u003e\u003c/a\u003e [chore] Release 9.8.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1184\"\u003e#1184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/a568b65964a596a78e1b3d468c9e7243778d6fe7\"\u003e\u003ccode\u003ea568b65\u003c/code\u003e\u003c/a\u003e Add javadocs to public methods (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1187\"\u003e#1187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/b29ac825c7d78b7aa17c01ee0775352cdbd6c849\"\u003e\u003ccode\u003eb29ac82\u003c/code\u003e\u003c/a\u003e chore(deps): Bump com.google.cloud:libraries-bom from 26.75.0 to 26.76.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/2d66ae93ef62e8e6c3d3a7a24dbb7684319ad747\"\u003e\u003ccode\u003e2d66ae9\u003c/code\u003e\u003c/a\u003e fix: Reimplement HTTP/2 response entity consumption using ApacheHttp2AsyncEnt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/b095a066e97c53e38c328515312e75701dbfe3e1\"\u003e\u003ccode\u003eb095a06\u003c/code\u003e\u003c/a\u003e chore(deps): Bump netty.version from 4.2.9.Final to 4.2.10.Final (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/72d4b7da451700e80d9608ea0b2ac1d0a5bfc0b3\"\u003e\u003ccode\u003e72d4b7d\u003c/code\u003e\u003c/a\u003e chore(deps-dev): Bump org.apache.maven.plugins:maven-compiler-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/472d0aca64d88b7c0abf4b45ebfc08022538f270\"\u003e\u003ccode\u003e472d0ac\u003c/code\u003e\u003c/a\u003e chore(deps): Bump com.google.cloud:libraries-bom from 26.74.0 to 26.75.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1179\"\u003e#1179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/584742fb6a080a98fb0a2ac5e332b253a0d0b263\"\u003e\u003ccode\u003e584742f\u003c/code\u003e\u003c/a\u003e feat(rc): Support Remote Config managed value types (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1167\"\u003e#1167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/0e86e0928f3c45af021ed6b47b314ac397020f86\"\u003e\u003ccode\u003e0e86e09\u003c/code\u003e\u003c/a\u003e [chore] Release 9.7.1 Take 2 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/c32438204a97eef1888487331895b2b2ad0fac43\"\u003e\u003ccode\u003ec324382\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[chore] Release 9.7.1 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1175\"\u003e#1175\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/firebase/firebase-admin-java/compare/v9.2.0...v9.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.auth:google-auth-library-oauth2-http` from 1.14.0 to 1.46.0\n\nUpdates `software.amazon.awssdk:secretsmanager` from 2.25.36 to 2.44.0\n\nUpdates `software.amazon.awssdk:regions` from 2.25.36 to 2.44.0\n\nUpdates `com.azure:azure-identity` from 1.12.2 to 1.18.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-java/releases\"\u003ecom.azure:azure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecom.azure+azure-identity_1.18.3\u003c/h2\u003e\n\u003ch2\u003e1.18.3 (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003ch4\u003eDependency Updates\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded \u003ccode\u003eazure-core\u003c/code\u003e from \u003ccode\u003e1.57.1\u003c/code\u003e to version \u003ccode\u003e1.58.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpgraded \u003ccode\u003eazure-core-http-netty\u003c/code\u003e from \u003ccode\u003e1.16.3\u003c/code\u003e to version \u003ccode\u003e1.16.4\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecom.azure+azure-core-http-okhttp_1.13.4\u003c/h2\u003e\n\u003ch2\u003e1.13.4 (2026-04-28)\u003c/h2\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003ch4\u003eDependency Updates\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded \u003ccode\u003eazure-core\u003c/code\u003e from \u003ccode\u003e1.57.1\u003c/code\u003e to \u003ccode\u003e1.58.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpgraded Reactor from \u003ccode\u003e3.7.14\u003c/code\u003e to \u003ccode\u003e3.7.17\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecom.azure+azure-core-http-netty_1.16.4\u003c/h2\u003e\n\u003ch2\u003e1.16.4 (2026-04-28)\u003c/h2\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003ch4\u003eDependency Updates\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded \u003ccode\u003eazure-core\u003c/code\u003e from \u003ccode\u003e1.57.1\u003c/code\u003e to \u003ccode\u003e1.58.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpgraded Reactor from \u003ccode\u003e3.7.14\u003c/code\u003e to \u003ccode\u003e3.7.17\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpgraded Reactor Netty from \u003ccode\u003e1.2.13\u003c/code\u003e to \u003ccode\u003e1.2.16\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpgraded Netty dependencies from \u003ccode\u003e4.1.130.Final\u003c/code\u003e to \u003ccode\u003e4.1.132.Final\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/94bdae4562612bf3fa4b89214b665e85a3543eed\"\u003e\u003ccode\u003e94bdae4\u003c/code\u003e\u003c/a\u003e Fixing broken links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/bdb5558a91faeac9725009597757ee5749142bcd\"\u003e\u003ccode\u003ebdb5558\u003c/code\u003e\u003c/a\u003e Updating the SDK dependencies for azure-identity-broker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/2417a333a08587673071b5c5f98c591f6386a869\"\u003e\u003ccode\u003e2417a33\u003c/code\u003e\u003c/a\u003e Reset changes to the patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/c094303efdd089528673e2dbce200e761d194864\"\u003e\u003ccode\u003ec094303\u003c/code\u003e\u003c/a\u003e Updating the SDK dependencies for azure-identity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/36c6eba92c3358f2297ac5bab54a6696db8a9307\"\u003e\u003ccode\u003e36c6eba\u003c/code\u003e\u003c/a\u003e Reset changes to the patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/dbb57c4913ff55734c6f22af5caf6f9ca92ddbfb\"\u003e\u003ccode\u003edbb57c4\u003c/code\u003e\u003c/a\u003e Add missing \u003ccode\u003e@​Azure/azure-java-sdk\u003c/code\u003e owners (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48993\"\u003e#48993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/555b864c7dce8125025b2bcf9e942dd13be6f18f\"\u003e\u003ccode\u003e555b864\u003c/code\u003e\u003c/a\u003e Increment package versions for core releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48983\"\u003e#48983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/da7b1072d0c72f2719a4c050971916e3e5c46a70\"\u003e\u003ccode\u003eda7b107\u003c/code\u003e\u003c/a\u003e Increment package versions for storagecache releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48992\"\u003e#48992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/5ed8574821d1f2ea522d8e12e2ed9a9f1f01ec08\"\u003e\u003ccode\u003e5ed8574\u003c/code\u003e\u003c/a\u003e [AutoPR azure-resourcemanager-storagecache]-generated-from-SDK Generation - J...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/7c9c1fb4b625f0a25b7894e5250fd02bbfbe1700\"\u003e\u003ccode\u003e7c9c1fb\u003c/code\u003e\u003c/a\u003e Configurations:  'specification/appconfiguration/resource-manager/Microsoft.A...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-java/compare/azure-identity_1.12.2...com.azure+azure-identity_1.18.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.azure:azure-security-keyvault-secrets` from 4.8.2 to 4.10.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/1b5c5c79d85a5c9a9cfd07f6cdff6fd0f50eccf9\"\u003e\u003ccode\u003e1b5c5c7\u003c/code\u003e\u003c/a\u003e [Key Vault] Prepare new stable release for all 4 libraries (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48476\"\u003e#48476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/920a6368dfce94d69c08b5551b342149fc2e97b5\"\u003e\u003ccode\u003e920a636\u003c/code\u003e\u003c/a\u003e Promote Full Text Search BETA APIs to GA in azure-cosmos (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48538\"\u003e#48538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/4e4285eb54c97b8c9babddf81f201a74e19fa8c7\"\u003e\u003ccode\u003e4e4285e\u003c/code\u003e\u003c/a\u003e [Query] Fix: \u003ccode\u003eSELECT VALUE ... GROUP BY\u003c/code\u003e throws ClassCastException (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48507\"\u003e#48507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/d61c05ec019d941bb64f76128ab127a1685d1474\"\u003e\u003ccode\u003ed61c05e\u003c/code\u003e\u003c/a\u003e Increment package versions for datafactory releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48556\"\u003e#48556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/7b8eedeaf641776660dc67aba7aaddf67481df0f\"\u003e\u003ccode\u003e7b8eede\u003c/code\u003e\u003c/a\u003e External dependencies upgrade - Spring Boot 4.0.4 and Spring Cloud 2025.1.0 (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/85bf709e04e3823c91257ea88221fc4471946f40\"\u003e\u003ccode\u003e85bf709\u003c/code\u003e\u003c/a\u003e [AutoPR azure-resourcemanager-datafactory]-generated-from-SDK Generation - Ja...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/8912ce571f8d76494a14ca97e0a558fb6c3d6a2d\"\u003e\u003ccode\u003e8912ce5\u003c/code\u003e\u003c/a\u003e Increment package versions for containerregistry releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48533\"\u003e#48533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/3311abfc6b094680f09c19d2d3726499429429d8\"\u003e\u003ccode\u003e3311abf\u003c/code\u003e\u003c/a\u003e Increment package versions for nginx releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48528\"\u003e#48528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/e073934222ac304c24d70ef6eced6dbf004742e3\"\u003e\u003ccode\u003ee073934\u003c/code\u003e\u003c/a\u003e Increment package versions for netapp releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48509\"\u003e#48509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/48880837ed3a2c1887b1d4a859f47ae6a5c9b1a3\"\u003e\u003ccode\u003e4888083\u003c/code\u003e\u003c/a\u003e [VoiceLive] Fix issues: remove unnecessary subscribeOn, fix Disposable leaks,...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-java/compare/azure-security-keyvault-keys_4.8.2...com.azure+azure-security-keyvault-keys_4.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.squareup.okhttp3:okhttp` from 4.12.0 to 5.3.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/square/okhttp/blob/master/CHANGELOG.md\"\u003ecom.squareup.okhttp3:okhttp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 5.3.2\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-18\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Don't delay triggering timeouts. In Okio 3.16.0 we introduced a regression that caused\ntimeouts to fire later than they were supposed to.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Okio 3.16.4][okio_3_16_4].\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.3.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-16\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release is the same as 5.3.0. Okio 3.16.3 didn't have a necessary fix!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade: [Okio 3.16.3][okio_3_16_3].\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.3.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-10-30\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew: Add tags to \u003ccode\u003eCall\u003c/code\u003e, including computable tags. Use this to attach application-specific\nmetadata to a \u003ccode\u003eCall\u003c/code\u003e in an \u003ccode\u003eEventListener\u003c/code\u003e or \u003ccode\u003eInterceptor\u003c/code\u003e. The tag can be read in any other\n\u003ccode\u003eEventListener\u003c/code\u003e or \u003ccode\u003eInterceptor\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e  override fun intercept(chain: Interceptor.Chain): Response {\n    chain.call().tag(MyAnalyticsTag::class) {\n      MyAnalyticsTag(...)\n    }\n\u003cpre\u003e\u003ccode\u003ereturn chain.proceed(chain.request())\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e}\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew: Support request bodies on HTTP/1.1 connection upgrades.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew: \u003ccode\u003eEventListener.plus()\u003c/code\u003e makes it easier to observe events in multiple listeners.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Don't spam logs with \u003cem\u003e‘Method isLoggable in android.util.Log not mocked.’\u003c/em\u003e when using\nOkHttp in Robolectric and Paparazzi tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Kotlin 2.2.21][kotlin_2_2_21].\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Okio 3.16.2][okio_3_16_2].\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [ZSTD-KMP 0.4.0][zstd_kmp_0_4_0]. This update fixes a bug that caused APKs to fail\n[16 KB ELF alignment checks][elf_alignment].\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.2.3\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-18\u003c/em\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/75b9c267744cdd2e8b222d247052748ff0954304\"\u003e\u003ccode\u003e75b9c26\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/ab48e5d86d0c0b16b3679b9b9522acf65db73da4\"\u003e\u003ccode\u003eab48e5d\u003c/code\u003e\u003c/a\u003e Okio 3.16.4 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9200\"\u003e#9200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/a9a4638b3d38b83782a959514b4183ddea0f071f\"\u003e\u003ccode\u003ea9a4638\u003c/code\u003e\u003c/a\u003e Prepare next development version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/ef72228d270c21962ab632b4c5a0dfd7ab4fd661\"\u003e\u003ccode\u003eef72228\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/674716746bb4efce30501b711ea3ec188c0d670d\"\u003e\u003ccode\u003e6747167\u003c/code\u003e\u003c/a\u003e Update com.squareup.okio to v3.16.3 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9197\"\u003e#9197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/0960b47ec28a02e893499d2a7e53bf462a62875e\"\u003e\u003ccode\u003e0960b47\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/bfb24eb90b3be7fb73541ea02ce8d5dfc4021709\"\u003e\u003ccode\u003ebfb24eb\u003c/code\u003e\u003c/a\u003e Support Request Bodies on HTTP1.1 Connection Upgrades (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9159\"\u003e#9159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/cf4a86439568e640c39da5e4e73af6565a5510b1\"\u003e\u003ccode\u003ecf4a864\u003c/code\u003e\u003c/a\u003e Update Gradle to v9.2.0 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9171\"\u003e#9171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/4e7dbec1ea6c9cf8d80422ac9d44b9b185c749a3\"\u003e\u003ccode\u003e4e7dbec\u003c/code\u003e\u003c/a\u003e Update dependency com.puppycrawl.tools:checkstyle to v12.1.1 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9169\"\u003e#9169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/0470853d724ec9e3c68a6ef83a4d1a60a73ef289\"\u003e\u003ccode\u003e0470853\u003c/code\u003e\u003c/a\u003e Add tags to calls, including computable tags (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9168\"\u003e#9168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.squareup.okhttp3:logging-interceptor` from 4.12.0 to 5.3.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/square/okhttp/blob/master/CHANGELOG.md\"\u003ecom.squareup.okhttp3:logging-interceptor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 5.3.2\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-18\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Don't delay triggering timeouts. In Okio 3.16.0 we introduced a regression that caused\ntimeouts to fire later than they were supposed to.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Okio 3.16.4][okio_3_16_4].\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.3.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-16\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release is the same as 5.3.0. Okio 3.16.3 didn't have a necessary fix!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade: [Okio 3.16.3][okio_3_16_3].\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.3.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-10-30\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew: Add tags to \u003ccode\u003eCall\u003c/code\u003e, including computable tags. Use this to attach application-specific\nmetadata to a \u003ccode\u003eCall\u003c/code\u003e in an \u003ccode\u003eEventListener\u003c/code\u003e or \u003ccode\u003eInterceptor\u003c/code\u003e. The tag can be read in any other\n\u003ccode\u003eEventListener\u003c/code\u003e or \u003ccode\u003eInterceptor\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e  override fun intercept(chain: Interceptor.Chain): Response {\n    chain.call().tag(MyAnalyticsTag::class) {\n      MyAnalyticsTag(...)\n    }\n\u003cpre\u003e\u003ccode\u003ereturn chain.proceed(chain.request())\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e}\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew: Support request bodies on HTTP/1.1 connection upgrades.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew: \u003ccode\u003eEventListener.plus()\u003c/code\u003e makes it easier to observe events in multiple listeners.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Don't spam logs with \u003cem\u003e‘Method isLoggable in android.util.Log not mocked.’\u003c/em\u003e when using\nOkHttp in Robolectric and Paparazzi tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Kotlin 2.2.21][kotlin_2_2_21].\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Okio 3.16.2][okio_3_16_2].\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [ZSTD-KMP 0.4.0][zstd_kmp_0_4_0]. This update fixes a bug that caused APKs to fail\n[16 KB ELF alignment checks][elf_alignment].\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.2.3\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-18\u003c/em\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/75b9c267744cdd2e8b222d247052748ff0954304\"\u003e\u003ccode\u003e75b9c26\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/ab48e5d86d0c0b16b3679b9b9522acf65db73da4\"\u003e\u003ccode\u003eab48e5d\u003c/code\u003e\u003c/a\u003e Okio 3.16.4 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9200\"\u003e#9200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/a9a4638b3d38b83782a959514b4183ddea0f071f\"\u003e\u003ccode\u003ea9a4638\u003c/code\u003e\u003c/a\u003e Prepare next development version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/ef72228d270c21962ab632b4c5a0dfd7ab4fd661\"\u003e\u003ccode\u003eef72228\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/674716746bb4efce30501b711ea3ec188c0d670d\"\u003e\u003ccode\u003e6747167\u003c/code\u003e\u003c/a\u003e Update com.squareup.okio to v3.16.3 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9197\"\u003e#9197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/0960b47ec28a02e893499d2a7e53bf462a62875e\"\u003e\u003ccode\u003e0960b47\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/bfb24eb90b3be7fb73541ea02ce8d5dfc4021709\"\u003e\u003ccode\u003ebfb24eb\u003c/code\u003e\u003c/a\u003e Support Request Bodies on HTTP1.1 Connection Upgrades (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9159\"\u003e#9159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/cf4a86439568e640c39da5e4e73af6565a5510b1\"\u003e\u003ccode\u003ecf4a864\u003c/code\u003e\u003c/a\u003e Update Gradle to v9.2.0 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9171\"\u003e#9171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/4e7dbec1ea6c9cf8d80422ac9d44b9b185c749a3\"\u003e\u003ccode\u003e4e7dbec\u003c/code\u003e\u003c/a\u003e Update dependency com.puppycrawl.tools:checkstyle to v12.1.1 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9169\"\u003e#9169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/0470853d724ec9e3c68a6ef83a4d1a60a73ef289\"\u003e\u003ccode\u003e0470853\u003c/code\u003e\u003c/a\u003e Add tags to calls, including computable tags (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9168\"\u003e#9168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-core` from 2.17.0 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/5815636064ca5f5f2f5af0a91c7ad96368c239e7\"\u003e\u003ccode\u003e5815636\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.21.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/6e728f9bde605f98e34d67d5db0a1b530b0a9bfd\"\u003e\u003ccode\u003e6e728f9\u003c/code\u003e\u003c/a\u003e Prep for 2.21.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/4e30cf21ca4faeffa062ae13730fade890ce2540\"\u003e\u003ccode\u003e4e30cf2\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/1429fffeca1eee24d7c3d7a0887c5ac10cac7a58\"\u003e\u003ccode\u003e1429fff\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/8f622c5cf177509989eaa154e4cb86d64b28f5a6\"\u003e\u003ccode\u003e8f622c5\u003c/code\u003e\u003c/a\u003e Merge branch '2.18' into 2.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/cd4d6b2baf575fd84419368717ddf12eb21fc8d7\"\u003e\u003ccode\u003ecd4d6b2\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/03458823cc3cf78f1ea19cfe5f045475628ee834\"\u003e\u003ccode\u003e0345882\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/a7a5562c0215da3e1297e4825fc5fc4d4f237c68\"\u003e\u003ccode\u003ea7a5562\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.18.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/cd647ea2cf15ee7740f1e3eb447335f667dd3a7a\"\u003e\u003ccode\u003ecd647ea\u003c/code\u003e\u003c/a\u003e Prep for 2.18.7 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/0ac2f771ad5fdceb60f908352c4dee2ffa498146\"\u003e\u003ccode\u003e0ac2f77\u003c/code\u003e\u003c/a\u003e Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-core/compare/jackson-core-2.17.0...jackson-core-2.21.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-annotations` from 2.17.0 to 2.21.3\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.17.0 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.17.0 to 2.21.3\n\nUpdates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.17.0 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/3290598ecbbd8bbb0b34a35a7361ff54e1050463\"\u003e\u003ccode\u003e3290598\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-modules-base-2.21.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/ff548e5773b62aef719c2104ecfccbe70dadcedc\"\u003e\u003ccode\u003eff548e5\u003c/code\u003e\u003c/a\u003e undo version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/1c5c59c5a3fc09a17d1027879ebca459842cda8e\"\u003e\u003ccode\u003e1c5c59c\u003c/code\u003e\u003c/a\u003e re-do release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/64b246c236e6d424eb4469131bbd76c3056dc2a3\"\u003e\u003ccode\u003e64b246c\u003c/code\u003e\u003c/a\u003e Prep for 2.21.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/38be1635960bed69c4f52bfbbdd3297447bd7506\"\u003e\u003ccode\u003e38be163\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/b3506d8b74b64a5f7e3f5884df8e5246f1c03bf0\"\u003e\u003ccode\u003eb3506d8\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/2f51aa35660e9af07415c54b6bc8185622d91288\"\u003e\u003ccode\u003e2f51aa3\u003c/code\u003e\u003c/a\u003e Merge branch '2.18' into 2.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/88adb497be38f7b4de3cbcd49ec8d641933214ce\"\u003e\u003ccode\u003e88adb49\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/5a89cc181bf92f40730a6d297dbb32e2cfd29300\"\u003e\u003ccode\u003e5a89cc1\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/6cad130d2e9f61aff310212ab6fb5b03a09f720a\"\u003e\u003ccode\u003e6cad130\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-modules-base-2.18.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-modules-base/compare/jackson-modules-base-2.17.0...jackson-modules-base-2.21.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.17.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.1\u003c/strong\u003e is out now, adding support for the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and numerous bug fixes and improvements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jsoup.org/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\r\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\r\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\r\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\r\n  \u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eRegex.usingRe2j()\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.22.1 (2026-Jan-01)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\n  \u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eorg.jsoup.helper.Regex.usingRe2j()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an instance method \u003ccode\u003eParser#unescape(String, boolean)\u003c/code\u003e that unescapes HTML entities using the parser's configuration (e.g. to support error tracking), complementing the existing static utility \u003ccode\u003eParser.unescapeEntities(String, boolean)\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded a configurable maximum parser depth (to limit the number of open elements on stack) to both HTML and XML parsers. The HTML parser now defaults to a depth of 512 to match browser behavior, and protect against unbounded stack growth, while the XML parser keeps unlimited depth by default, but can opt into a limit via \u003ccode\u003eorg.jsoup.parser.Parser#setMaxDepth\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2421\"\u003e#2421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added CI coverage for JDK 25 \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2403\"\u003e#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added a CI fuzzer for contextual fragment parsing (in addition to existing full body HTML and XML fuzzers). [oss-fuzz \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/14041\"\u003e#14041\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/google/oss-fuzz/pull/14041\"\u003egoogle/oss-fuzz#14041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet a removal schedule of jsoup 1.24.1 for previously deprecated APIs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously cached child \u003ccode\u003eElements\u003c/code\u003e of an \u003ccode\u003eElement\u003c/code\u003e were not correctly invalidated in \u003ccode\u003eNode#replaceWith(Node)\u003c/code\u003e, which could lead to incorrect results when subsequently calling \u003ccode\u003eElement#children()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2391\"\u003e#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttribute selector values are now compared literally without trimming. Previously, jsoup trimmed whitespace from selector values and from element attribute values, which could cause mismatches with browser behavior (e.g. \u003ccode\u003e[attr=\u0026quot; foo \u0026quot;]\u003c/code\u003e). Now matches align with the CSS specification and browser engines. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2380\"\u003e#2380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using the JDK HttpClient, any system default proxy (\u003ccode\u003eProxySelector.getDefault()\u003c/code\u003e) was ignored. Now, the system proxy is used if a per-request proxy is not set. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2388\"\u003e#2388\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2390\"\u003e#2390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eValidationException\u003c/code\u003e could be thrown in the adoption agency algorith...\n\n_Description has been truncated_","html_url":"https://github.com/paykaribazaronline/supremeai/pull/53","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/paykaribazaronline%2Fsupremeai/issues/53","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/53/packages"},{"uuid":"4363406161","node_id":"PR_kwDOGzRM1c7XXpK0","number":40,"state":"open","title":"Bump org.jsoup:jsoup from 1.22.1 to 1.22.2","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T07:39:29.000Z","updated_at":"2026-05-01T07:42:51.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"}],"path":null,"ecosystem":"maven"},"body":"Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.22.1 to 1.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jsoup:jsoup\u0026package-manager=gradle\u0026previous-version=1.22.1\u0026new-version=1.22.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/bakdata/kserve-client/pull/40","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakdata%2Fkserve-client/issues/40","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/40/packages"},{"uuid":"4363243087","node_id":"PR_kwDOODrK4s7XXIOd","number":186,"state":"open","title":"Bump org.jsoup:jsoup from 1.22.1 to 1.22.2","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T06:50:05.000Z","updated_at":"2026-05-01T06:55:55.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"}],"path":null,"ecosystem":"maven"},"body":"Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.22.1 to 1.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jsoup:jsoup\u0026package-manager=gradle\u0026previous-version=1.22.1\u0026new-version=1.22.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ortus-boxlang/bx-ai/pull/186","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ortus-boxlang%2Fbx-ai/issues/186","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/186/packages"},{"uuid":"4362615619","node_id":"PR_kwDOR0sr5c7XVHRl","number":16,"state":"closed","title":"chore(deps): bump the gradle-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-08T03:11:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-01T03:22:20.000Z","updated_at":"2026-05-08T03:11:38.000Z","time_to_close":604157,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-dependencies","update_count":11,"packages":[{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.7","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"org.flywaydb:flyway-mysql","old_version":"12.2.0","new_version":"12.5.0"},{"name":"org.projectlombok:lombok","old_version":"1.18.44","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"com.github.junrar:junrar","old_version":"7.5.8","new_version":"7.5.10","repository_url":"https://github.com/junrar/junrar"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.springdoc:springdoc-openapi-starter-webmvc-ui","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/springdoc/springdoc-openapi"},{"name":"tools.jackson:jackson-bom","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"org.springframework.boot","old_version":"4.0.5","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"org.hibernate.orm","old_version":"7.3.0.Final","new_version":"7.3.2.Final"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"gradle-wrapper","old_version":"9.4.1","new_version":"9.5.0","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-dependencies group with 11 updates in the /booklore-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.7` | `3.5.8` |\n| org.flywaydb:flyway-mysql | `12.2.0` | `12.5.0` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.44` | `1.18.46` |\n| [com.github.junrar:junrar](https://github.com/junrar/junrar) | `7.5.8` | `7.5.10` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) | `3.0.2` | `3.0.3` |\n| [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `3.1.1` | `3.1.2` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `4.0.5` | `4.0.6` |\n| org.hibernate.orm | `7.3.0.Final` | `7.3.2.Final` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.1` | `9.5.0` |\n\n\nUpdates `org.mariadb.jdbc:mariadb-java-client` from 3.5.7 to 3.5.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/releases\"\u003eorg.mariadb.jdbc:mariadb-java-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Java 3.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md\"\u003eorg.mariadb.jdbc:mariadb-java-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/26b34a2f060070beb73515cfd2a49fabc8728843\"\u003e\u003ccode\u003e26b34a2\u003c/code\u003e\u003c/a\u003e Merge branch 'develop'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/06d6efee7838ab8f89ef0f7f362c6b4a95754630\"\u003e\u003ccode\u003e06d6efe\u003c/code\u003e\u003c/a\u003e bump CI actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a86a83c8fd1fa84d8d4349baab3b29df8f575192\"\u003e\u003ccode\u003ea86a83c\u003c/code\u003e\u003c/a\u003e bump 3.5.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/975f9919232b21f40d823423eac6e32d87ea8e35\"\u003e\u003ccode\u003e975f991\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to implement Codec directly and extract shared...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/75bb509521661603e0e90dd6dd5942d1382bf499\"\u003e\u003ccode\u003e75bb509\u003c/code\u003e\u003c/a\u003e [misc] code formatting cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/4c0b6a0ddd95f42fa866ce0d08e384caa2553d43\"\u003e\u003ccode\u003e4c0b6a0\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to extend UtilDateCodec and extract common dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a5b7fb1a26277a076052dbbd1a7ee2bacd4f602f\"\u003e\u003ccode\u003ea5b7fb1\u003c/code\u003e\u003c/a\u003e [misc] convert Reader and Writer from interfaces to final class implementatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/d31eb060fc66e9e37479e18a38bb1401d53ecb63\"\u003e\u003ccode\u003ed31eb06\u003c/code\u003e\u003c/a\u003e [misc] convert ReadableByteBuf from interface to final class implementation, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/11d45a9e6ea4d942e75747132bb8982471d890b8\"\u003e\u003ccode\u003e11d45a9\u003c/code\u003e\u003c/a\u003e [misc] optimize binary row decoder null bitmap checks and simplify signed Big...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/5aad14c381cbc2c4e0383ffed275306f359bd508\"\u003e\u003ccode\u003e5aad14c\u003c/code\u003e\u003c/a\u003e [misc] optimize BigInt column decoding and improve type safety in codec inter...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-mysql` from 12.2.0 to 12.5.0\n\nUpdates `org.projectlombok:lombok` from 1.18.44 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48c8f4b33ef9231ec2587a43d122\"\u003e\u003ccode\u003efcdab3f\u003c/code\u003e\u003c/a\u003e [version] pre-release version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/1cb7d49c5d2dc98af7a66413d8119dec285d0666\"\u003e\u003ccode\u003e1cb7d49\u003c/code\u003e\u003c/a\u003e [changelog]\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e Mention Jackson3 final touches in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/12a15b00555ec8097eca2bf7d77c2c2124e13e0e\"\u003e\u003ccode\u003e12a15b0\u003c/code\u003e\u003c/a\u003e Fix: Bump EA_JDK to 27 (25 and 26 have been released)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/2be766cfc2ef56f2d986f28f734c98535d611aee\"\u003e\u003ccode\u003e2be766c\u003c/code\u003e\u003c/a\u003e Merge branch 'jackson3-final-touches'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/290fa4c8539c7e97b47f7e80033e078127050eb5\"\u003e\u003ccode\u003e290fa4c\u003c/code\u003e\u003c/a\u003e [trivial] constantize the warning we spit out for ambiguous jackson2/3, and m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e6567b6621f86b43033ab4a75e0273780e18e998\"\u003e\u003ccode\u003ee6567b6\u003c/code\u003e\u003c/a\u003e test: Add Jackson 3 test cases and version ambiguity warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/45e72e241abe98dcfb66408402da825dd2b8e925\"\u003e\u003ccode\u003e45e72e2\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 databind/dataformat annotations to HandlerUtil copy lists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/184d42363d86446a63b6270ac1eb352dc43ae76c\"\u003e\u003ccode\u003e184d423\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 support to \u003ca href=\"https://github.com/Jacksonized\"\u003e\u003ccode\u003e@​Jacksonized\u003c/code\u003e\u003c/a\u003e handlers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e027ad0f1515bd33d4d329d90e59dccbaf44651e\"\u003e\u003ccode\u003ee027ad0\u003c/code\u003e\u003c/a\u003e refactored to ShadowClassLoader use Collections::enumeration instead of Vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectlombok/lombok/compare/v1.18.44...v1.18.46\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.junrar:junrar` from 7.5.8 to 7.5.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/releases\"\u003ecom.github.junrar:junrar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.5.10\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier Roebroeck\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.9\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.3.1 to 9.4.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/5ff5c7e\"\u003e5ff5c7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.21.0 to 5.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d9e9e49\"\u003ed9e9e49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump ch.qos.logback:logback-classic from 1.5.26 to 1.5.32 (\u003ca href=\"https://github.com/junrar/junrar/commits/935ece8\"\u003e935ece8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.22.0 to 1.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/000fcdb\"\u003e000fcdb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://github.com/junrar/junrar/commits/2c83103\"\u003e2c83103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Ryan Campbell\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/blob/master/CHANGELOG.md\"\u003ecom.github.junrar:junrar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.9...v7.5.10\"\u003e7.5.10\u003c/a\u003e (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.9\"\u003e7.5.9\u003c/a\u003e (2026-04-13)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.3.1 to 9.4.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/5ff5c7e\"\u003e5ff5c7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.21.0 to 5.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d9e9e49\"\u003ed9e9e49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump ch.qos.logback:logback-classic from 1.5.26 to 1.5.32 (\u003ca href=\"https://github.com/junrar/junrar/commits/935ece8\"\u003e935ece8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.22.0 to 1.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/000fcdb\"\u003e000fcdb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://github.com/junrar/junrar/commits/2c83103\"\u003e2c83103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/e36ee091ad7311a021e1c928ada103a3eab2d890\"\u003e\u003ccode\u003ee36ee09\u003c/code\u003e\u003c/a\u003e ci: publish test results\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/154e3bf7b05bb6dcad5437a8fd8e99a8da916373\"\u003e\u003ccode\u003e154e3bf\u003c/code\u003e\u003c/a\u003e test: disable test on windows due to path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/d77e9a83eb721cd51f9c23d7869d0e6ad7f952d7\"\u003e\u003ccode\u003ed77e9a8\u003c/code\u003e\u003c/a\u003e fix: better handling of files outside directory when extracting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/a60857b35c17dbd5354a37816421d7b051a8ba03\"\u003e\u003ccode\u003ea60857b\u003c/code\u003e\u003c/a\u003e ci: update homebrew action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/72cd364f47bd396e208cd82ca7aa98759ab84f01\"\u003e\u003ccode\u003e72cd364\u003c/code\u003e\u003c/a\u003e chore(release): 7.5.9 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/7e1b5581f9d622b96e9e2a8574188027e7642634\"\u003e\u003ccode\u003e7e1b558\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/f800f10fa46f803f1220f508a40f59af29eb5118\"\u003e\u003ccode\u003ef800f10\u003c/code\u003e\u003c/a\u003e build(deps): bump org.mockito:mockito-core from 5.22.0 to 5.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/1886aecf253467ff8f98fc1187237605cf59fbb0\"\u003e\u003ccode\u003e1886aec\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.core:jackson-databind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/832f6857128bcd678d76bf263f8ee1533a1e8a86\"\u003e\u003ccode\u003e832f685\u003c/code\u003e\u003c/a\u003e build(deps): bump gradle-wrapper from 9.4.0 to 9.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/9b69c6b708dd88b925ba91fde563869cc0f8f586\"\u003e\u003ccode\u003e9b69c6b\u003c/code\u003e\u003c/a\u003e fix: ArrayIndexOutOfBoundsException in solid RAR v20 archive extraction\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/releases\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003espringdoc-openapi v3.0.3 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seregamorph\"\u003e\u003ccode\u003e@​seregamorph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/pull/3260\"\u003espringdoc/springdoc-openapi#3260\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ehttps://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/blob/v3.0.3/CHANGELOG.md\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.0.3] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3c30283fb33ced3b8368c7a890ee05d23119322a\"\u003e\u003ccode\u003e3c30283\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release v3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4184c05db39e96e8d1ce1287d5f58f242a4c8165\"\u003e\u003ccode\u003e4184c05\u003c/code\u003e\u003c/a\u003e update .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/89745c20c3695b9b934cbf77f96ef1cd1df9fac7\"\u003e\u003ccode\u003e89745c2\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4d1a730134720740ed3b9a2831d14e97dbe28780\"\u003e\u003ccode\u003e4d1a730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e from seregamorph/SpringDocHateoasConfiguration-class...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/54e765036d9d49935a97e3ccebd875581efcc8ed\"\u003e\u003ccode\u003e54e7650\u003c/code\u003e\u003c/a\u003e ConditionalOnClass (HateoasProperties.class) in SpringDocHateoasConfiguration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/9f354b2a3cb92a8caa1d0518b1916ac4f79fbd71\"\u003e\u003ccode\u003e9f354b2\u003c/code\u003e\u003c/a\u003e Spring-boot upgrade to version 4.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/14df32f99179db89967a6260562775cd6b883128\"\u003e\u003ccode\u003e14df32f\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3ee9a44547f44fb4982c98b7a5dbc1f6f9aff1a3\"\u003e\u003ccode\u003e3ee9a44\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/df99408a7674af5ea3fc40f79d81bfef372e7c0e\"\u003e\u003ccode\u003edf99408\u003c/code\u003e\u003c/a\u003e upgrade swagger-ui to version 5.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/6ee70f4074e76d3d8554487e4318681d95e444d7\"\u003e\u003ccode\u003e6ee70f4\u003c/code\u003e\u003c/a\u003e upgrade swagger-api to version 2.2.47\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tools.jackson:jackson-bom` from 3.1.1 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0ae1c2ae270dabe8e21700cbcee1c266b54e84f0\"\u003e\u003ccode\u003e0ae1c2a\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3c171ebd5d6c5d8f6e8d4f3614cf9b4f0a8babb9\"\u003e\u003ccode\u003e3c171eb\u003c/code\u003e\u003c/a\u003e Prep for 3.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/8046ced071e0b36747bae0f0a96fa21914de1303\"\u003e\u003ccode\u003e8046ced\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ea00ca4cc59ba656a17a071e30a68387e51d3e0d\"\u003e\u003ccode\u003eea00ca4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.1.1...jackson-bom-3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springframework.boot` from 4.0.5 to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spring-projects/spring-boot/releases\"\u003eorg.springframework.boot's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.6\u003c/h2\u003e\n\u003ch2\u003e:lady_beetle: Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50188\"\u003e#50188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eElasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50187\"\u003e#50187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationPidFileWriter does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50185\"\u003e#50185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRandomValuePropertySource is not suitable for secrets \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50183\"\u003e#50183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCassandra auto-configuration misconfigures CqlSessionBuilder \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50180\"\u003e#50180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationTemp does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50178\"\u003e#50178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemote DevTools performs comparison incorrectly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50176\"\u003e#50176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring.rabbitmq.ssl.verify-hostname is applied inconsistently \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50174\"\u003e#50174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50077\"\u003e#50077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClassic starters are missing several modules \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50071\"\u003e#50071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModule spring-boot-resttestclient is missing from spring-boot-starter-test-classic \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/50069\"\u003e#50069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotations like \u003ccode\u003e@Ssl\u003c/code\u003e don't work on \u003ccode\u003e@Bean\u003c/code\u003e methods when using \u003ccode\u003e@ServiceConnection\u003c/code\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50064\"\u003e#50064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnversRevisionRepositoriesRegistrar should reuse \u003ccode\u003e@EnableEnversRepositories\u003c/code\u003e rather than configuring the JPA counterpart \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50039\"\u003e#50039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebFlux Cloud Foundry links endpoint includes query string from received request in resolved links \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50017\"\u003e#50017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImports on a containing test class are ignored when a nested class has imports \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50012\"\u003e#50012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWith spring.jackson.use-jackson2-defaults set to true, FAIL_ON_UNKNOWN_PROPERTIES is enabled \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49951\"\u003e#49951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e500 response from env endpoint when supplied pattern is invalid \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49946\"\u003e#49946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49945\"\u003e#49945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP method is lost when configuring excludes in EndpointRequest \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49943\"\u003e#49943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonor HttpMethod for reactive additional endpoint paths \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49880\"\u003e#49880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/artemis image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49869\"\u003e#49869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/activemq image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49866\"\u003e#49866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49854\"\u003e#49854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAPI versioning path strategy should be applied path last as it is not meant to yield \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49800\"\u003e#49800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:notebook_with_decorative_cover: Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs to encourage Java fundamentals for beginners that prefer to learn that way \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50146\"\u003e#50146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP Service Interface Clients still document that API versioning can be configured via properties \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50126\"\u003e#50126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the observability section of the Lettuce documentation is broken \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50097\"\u003e#50097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJavadoc for StaticResourceLocation.FAVICON doesn't describe icons location \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50085\"\u003e#50085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMySamlRelyingPartyConfiguration is missing a Kotlin sample \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50024\"\u003e#50024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncorrect default value for management.httpexchanges.recording.include in configuration metadata \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50019\"\u003e#50019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the Kubernetes documentation when discussing startup probes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50015\"\u003e#50015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypo in JdbcSessionAutoConfiguration Javadoc \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49873\"\u003e#49873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify that configuration property default values are not available through the Environment \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49851\"\u003e#49851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument the need for Liquibase and Flyway starters \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49839\"\u003e#49839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKafka documentation refers to deprecated JSON serializer and deserializer classes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49826\"\u003e#49826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Elasticsearch Client 9.2.8 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50027\"\u003e#50027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Groovy 5.0.5 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49911\"\u003e#49911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Hibernate 7.2.12.Final \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50134\"\u003e#50134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Jackson Bom 3.1.2 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50051\"\u003e#50051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/jaxen-xpath/jaxen/releases/tag/v2.0.1\"\u003eJaxen 2.0.1\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50104\"\u003e#50104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/FirebirdSQL/jaybird/releases/tag/v6.0.5\"\u003eJaybird 6.0.5\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49914\"\u003e#49914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/8821ad2cd381bb4b9615a61479e1de7305a8ba39\"\u003e\u003ccode\u003e8821ad2\u003c/code\u003e\u003c/a\u003e Release v4.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9e4048a03f17adfe78057a3c4d5b4693305c0ae0\"\u003e\u003ccode\u003e9e4048a\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/20bb11c3984802990572ddbeae8b66885a8f2462\"\u003e\u003ccode\u003e20bb11c\u003c/code\u003e\u003c/a\u003e Next development version (v3.5.15-SNAPSHOT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/98daa8ea30f39a5b0ca6768b5cbc2dc8698ef4e1\"\u003e\u003ccode\u003e98daa8e\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9dc5aa2863f598a15d3dfa116f4b89249daba7e7\"\u003e\u003ccode\u003e9dc5aa2\u003c/code\u003e\u003c/a\u003e Polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/874f6294b91da18367b8b5ab7b2fad3fa23cfba6\"\u003e\u003ccode\u003e874f629\u003c/code\u003e\u003c/a\u003e Fix default security with actuator but without health\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/e41b3bf731d1134bc18ec1f68ac01e0fe1c54923\"\u003e\u003ccode\u003ee41b3bf\u003c/code\u003e\u003c/a\u003e Enable hostname verification for SSL connections to Elasticsearch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/ef8527bb0ef8f564f4f9c57a7be99a7aa96c6ab0\"\u003e\u003ccode\u003eef8527b\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/f533a4549c3999aac30cb5830f07dc304933e93d\"\u003e\u003ccode\u003ef533a45\u003c/code\u003e\u003c/a\u003e Do not follow symlinks when writing PID file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/4a7bd332b6d19fef1aa4cf28434985f2b03a2e0f\"\u003e\u003ccode\u003e4a7bd33\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spring-projects/spring-boot/compare/v4.0.5...v4.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.hibernate.orm` from 7.3.0.Final to 7.3.2.Final\n\nUpdates `com.github.ben-manes.versions` from 0.53.0 to 0.54.0\n\nUpdates `gradle-wrapper` from 9.4.1 to 9.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.5.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.5.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTask provenance in reports and failure messages\u003c/li\u003e\n\u003cli\u003eType-safe accessors for precompiled Kotlin Settings plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.5.0/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/atm1020\"\u003eatm1020\u003c/a\u003e,\n\u003ca href=\"https://github.com/mataha\"\u003emataha\u003c/a\u003e,\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/kelemen\"\u003eAttila Kelemen\u003c/a\u003e,\n\u003ca href=\"https://github.com/britter\"\u003eBenedikt Ritter\u003c/a\u003e,\n\u003ca href=\"https://github.com/Vampire\"\u003eBjörn Kautler\u003c/a\u003e,\n\u003ca href=\"https://github.com/budindepunk\"\u003eCaro Silva Rode\u003c/a\u003e,\n\u003ca href=\"https://github.com/chanani\"\u003eCHANHAN\u003c/a\u003e,\n\u003ca href=\"https://github.com/DmitryNez\"\u003eDmitry Nezavitin\u003c/a\u003e,\n\u003ca href=\"https://github.com/Juneezee\"\u003eEng Zer Jun\u003c/a\u003e,\n\u003ca href=\"https://github.com/KugelLibelle\"\u003eKugelLibelle\u003c/a\u003e,\n\u003ca href=\"https://github.com/vmadalin\"\u003eMadalin Valceleanu\u003c/a\u003e,\n\u003ca href=\"https://github.com/quijote\"\u003eMarkus Gaisbauer\u003c/a\u003e,\n\u003ca href=\"https://github.com/koppor\"\u003eOliver Kopp\u003c/a\u003e,\n\u003ca href=\"https://github.com/hfhbd\"\u003ePhilip Wedemann\u003c/a\u003e,\n\u003ca href=\"https://github.com/ploober\"\u003eploober\u003c/a\u003e,\n\u003ca href=\"https://github.com/rpalcolea\"\u003eRoberto Perez Alcolea\u003c/a\u003e,\n\u003ca href=\"https://github.com/R0h1tAnand\"\u003eRohit Anand\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/usv240\"\u003eUjwal Suresh Vanjare\u003c/a\u003e,\n\u003ca href=\"https://github.com/urdak\"\u003eVictor Merkulov\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.5.0 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew wrapper --gradle-version=9.5.0 \u0026amp;\u0026amp; ./gradlew wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.5.0/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.5.0/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.5.0 RC4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/3fe117d68f3907790f3809f121aa36303a9151f8\"\u003e\u003ccode\u003e3fe117d\u003c/code\u003e\u003c/a\u003e Update jdks.yaml (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37703\"\u003e#37703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/33d145af6fbe7cf7c9d84646b6d7f32fea91d5e2\"\u003e\u003ccode\u003e33d145a\u003c/code\u003e\u003c/a\u003e Update jdks.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f7a05d1ed48442eb5da4d6e2b6593da55cdec1da\"\u003e\u003ccode\u003ef7a05d1\u003c/code\u003e\u003c/a\u003e Update Gradle wrapper to version 9.5.0-rc-4 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37654\"\u003e#37654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/266facdcbcb0b4c60120cc118eaf0f652bfcdfe5\"\u003e\u003ccode\u003e266facd\u003c/code\u003e\u003c/a\u003e Update Gradle wrapper to version 9.5.0-rc-4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/0ad6dd8e143455707e444aa7e3d38327a3366513\"\u003e\u003ccode\u003e0ad6dd8\u003c/code\u003e\u003c/a\u003e Suppress OSC taskbar reset on plain/piped stdout (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37646\"\u003e#37646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/966025d5850d46c9158a2f25e4096222277ecf57\"\u003e\u003ccode\u003e966025d\u003c/code\u003e\u003c/a\u003e Suppress OSC taskbar reset on plain/piped stdout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/e7455734449e422accebf44cf7b31bf93e3a770c\"\u003e\u003ccode\u003ee745573\u003c/code\u003e\u003c/a\u003e Polish IP docs (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37642\"\u003e#37642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/d5cfd079acd2c8f1182edd6ec23dbab571132d0a\"\u003e\u003ccode\u003ed5cfd07\u003c/code\u003e\u003c/a\u003e Ensure BuildOperationQueue will progress without extra leases (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37629\"\u003e#37629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/acdf0c36fa13ba09a7ff5b51f79b9af4b1a097ee\"\u003e\u003ccode\u003eacdf0c3\u003c/code\u003e\u003c/a\u003e Ensure BuildOperationQueue will progress without extra leases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f7d0e4f6f7896426a8b24091388e4c252b62faef\"\u003e\u003ccode\u003ef7d0e4f\u003c/code\u003e\u003c/a\u003e Rename anchor\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.1...v9.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/willianpaixao/booklore/pull/16","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/willianpaixao%2Fbooklore/issues/16","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/16/packages"}],"issue_packages":[{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-06-10T00:43:10.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4626833316","node_id":"PR_kwDOCQPq_s7kn6kb","number":1242,"state":"closed","title":"build(deps): bump org.jsoup:jsoup from 1.22.1 to 1.22.2","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-10T00:49:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-10T00:43:10.000Z","updated_at":"2026-06-10T00:49:35.000Z","time_to_close":384,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"}],"path":null,"ecosystem":"maven"},"body":"Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.22.1 to 1.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jsoup:jsoup\u0026package-manager=maven\u0026previous-version=1.22.1\u0026new-version=1.22.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/IsyFact/isyfact-standards/pull/1242","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/IsyFact%2Fisyfact-standards/issues/1242","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1242/packages"}},{"old_version":"1.15.3","new_version":"1.22.2","update_type":"minor","path":null,"pr_created_at":"2026-06-08T05:49:46.000Z","version_change":"1.15.3 → 1.22.2","issue":{"uuid":"4610340303","node_id":"PR_kwDODyN6Yc7jxTxZ","number":3317,"state":"open","title":"Bump the bpm-minor-patch group across 1 directory with 29 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-08T05:49:46.000Z","updated_at":"2026-06-08T05:50:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bpm-minor-patch","update_count":29,"packages":[{"name":"org.camunda.bpm:camunda-bom","old_version":"7.21.0","new_version":"7.24.0"},{"name":"org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp","old_version":"7.21.0","new_version":"7.24.0"},{"name":"org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest","old_version":"7.21.0","new_version":"7.24.0"},{"name":"org.camunda.bpm:camunda-engine-rest-core","old_version":"7.21.0","new_version":"7.24.0"},{"name":"org.camunda.bpm.extension:camunda-platform-7-keycloak","old_version":"7.21.5","new_version":"7.24.0","repository_url":"https://github.com/camunda/camunda-platform-7-keycloak"},{"name":"org.slf4j:slf4j-api","old_version":"2.0.6","new_version":"2.0.18"},{"name":"org.postgresql:postgresql","old_version":"42.7.2","new_version":"42.7.11","repository_url":"https://github.com/pgjdbc/pgjdbc"},{"name":"javax.xml.bind:jaxb-api","old_version":"2.2.3","new_version":"2.3.1","repository_url":"https://github.com/javaee/jaxb-spec"},{"name":"org.assertj:assertj-core","old_version":"3.21.0","new_version":"3.27.7","repository_url":"https://github.com/assertj/assertj"},{"name":"org.codehaus.groovy:groovy-all","old_version":"3.0.21","new_version":"3.0.25","repository_url":"https://github.com/apache/groovy"},{"name":"org.jsoup:jsoup","old_version":"1.15.3","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"com.fasterxml.jackson.core:jackson-databind","old_version":"2.15.0","new_version":"2.22.0","repository_url":"https://github.com/FasterXML/jackson"},{"name":"com.fasterxml.jackson.core:jackson-core","old_version":"2.15.0","new_version":"2.22.0","repository_url":"https://github.com/FasterXML/jackson-core"},{"name":"com.fasterxml.jackson.dataformat:jackson-dataformat-xml","old_version":"2.15.0","new_version":"2.22.0","repository_url":"https://github.com/FasterXML/jackson-dataformat-xml"},{"name":"com.fasterxml.jackson.core:jackson-annotations","old_version":"2.15.0","new_version":"2.22.0"},{"name":"org.apache.commons:commons-collections4","old_version":"4.4","new_version":"4.5.0"},{"name":"org.projectlombok:lombok","old_version":"1.18.20","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"commons-io:commons-io","old_version":"2.16.1","new_version":"2.22.0"},{"name":"org.testng:testng","old_version":"7.7.1","new_version":"7.12.0","repository_url":"https://github.com/testng-team/testng"},{"name":"io.netty:netty-codec-http2","old_version":"4.2.4.Final","new_version":"4.2.15.Final","repository_url":"https://github.com/netty/netty"},{"name":"io.netty:netty-codec-http","old_version":"4.1.125.Final","new_version":"4.2.15.Final","repository_url":"https://github.com/netty/netty"},{"name":"org.apache.commons:commons-lang3","old_version":"3.18.0","new_version":"3.20.0"},{"name":"org.bouncycastle:bcprov-jdk18on","old_version":"1.78","new_version":"1.84","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.bouncycastle:bcpkix-jdk18on","old_version":"1.79","new_version":"1.84","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.yaml:snakeyaml","old_version":"2.2","new_version":"2.6"},{"name":"org.apache.maven.plugins:maven-surefire-plugin","old_version":"3.0.0-M7","new_version":"3.6.0-M1","repository_url":"https://github.com/apache/maven-surefire"},{"name":"org.jacoco:jacoco-maven-plugin","old_version":"0.8.8","new_version":"0.8.15","repository_url":"https://github.com/jacoco/jacoco"},{"name":"org.codehaus.mojo:exec-maven-plugin","old_version":"3.0.0","new_version":"3.6.3","repository_url":"https://github.com/mojohaus/exec-maven-plugin"}],"path":null,"ecosystem":"maven"},"body":"Bumps the bpm-minor-patch group with 28 updates in the /forms-flow-bpm directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| org.camunda.bpm:camunda-bom | `7.21.0` | `7.24.0` |\n| org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp | `7.21.0` | `7.24.0` |\n| org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest | `7.21.0` | `7.24.0` |\n| org.camunda.bpm:camunda-engine-rest-core | `7.21.0` | `7.24.0` |\n| [org.camunda.bpm.extension:camunda-platform-7-keycloak](https://github.com/camunda/camunda-platform-7-keycloak) | `7.21.5` | `7.24.0` |\n| org.slf4j:slf4j-api | `2.0.6` | `2.0.18` |\n| [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) | `42.7.2` | `42.7.11` |\n| [javax.xml.bind:jaxb-api](https://github.com/javaee/jaxb-spec) | `2.2.3` | `2.3.1` |\n| [org.assertj:assertj-core](https://github.com/assertj/assertj) | `3.21.0` | `3.27.7` |\n| [org.codehaus.groovy:groovy-all](https://github.com/apache/groovy) | `3.0.21` | `3.0.25` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.15.3` | `1.22.2` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.15.0` | `2.22.0` |\n| [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) | `2.15.0` | `2.22.0` |\n| [com.fasterxml.jackson.dataformat:jackson-dataformat-xml](https://github.com/FasterXML/jackson-dataformat-xml) | `2.15.0` | `2.22.0` |\n| com.fasterxml.jackson.core:jackson-annotations | `2.15.0` | `2.22.0` |\n| org.apache.commons:commons-collections4 | `4.4` | `4.5.0` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.20` | `1.18.46` |\n| commons-io:commons-io | `2.16.1` | `2.22.0` |\n| [org.testng:testng](https://github.com/testng-team/testng) | `7.7.1` | `7.12.0` |\n| [io.netty:netty-codec-http2](https://github.com/netty/netty) | `4.2.4.Final` | `4.2.15.Final` |\n| [io.netty:netty-codec-http](https://github.com/netty/netty) | `4.1.125.Final` | `4.2.15.Final` |\n| org.apache.commons:commons-lang3 | `3.18.0` | `3.20.0` |\n| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.78` | `1.84` |\n| [org.bouncycastle:bcpkix-jdk18on](https://github.com/bcgit/bc-java) | `1.79` | `1.84` |\n| [org.yaml:snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) | `2.2` | `2.6` |\n| [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) | `3.0.0-M7` | `3.6.0-M1` |\n| [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) | `0.8.8` | `0.8.15` |\n| [org.codehaus.mojo:exec-maven-plugin](https://github.com/mojohaus/exec-maven-plugin) | `3.0.0` | `3.6.3` |\n\n\nUpdates `org.camunda.bpm:camunda-bom` from 7.21.0 to 7.24.0\n\nUpdates `org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp` from 7.21.0 to 7.24.0\n\nUpdates `org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest` from 7.21.0 to 7.24.0\n\nUpdates `org.camunda.bpm:camunda-engine-rest-core` from 7.21.0 to 7.24.0\n\nUpdates `org.camunda.bpm.extension:camunda-platform-7-keycloak` from 7.21.5 to 7.24.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/camunda/camunda-platform-7-keycloak/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp` from 7.21.0 to 7.24.0\n\nUpdates `org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest` from 7.21.0 to 7.24.0\n\nUpdates `org.slf4j:slf4j-api` from 2.0.6 to 2.0.18\n\nUpdates `org.postgresql:postgresql` from 42.7.2 to 42.7.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pgjdbc/pgjdbc/releases\"\u003eorg.postgresql:postgresql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev42.7.11\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Limit SCRAM PBKDF2 iterations accepted from the server.\npgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.\nSee the \u003ca href=\"https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-98qh-xjc8-98pq\"\u003eSecurity Advisory\u003c/a\u003e for more detail.\nThe following \u003ca href=\"https://nvd.nist.gov/vuln/detail/CVE-2026-42198\"\u003eCVE-2026-42198\u003c/a\u003e has been issued.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add sources and javadocs to shaded published lib generation \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4043\"\u003e#4043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate Changelog and website for release of 42.7.11 \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4042\"\u003e#4042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix scram fix location in changelog and update published artifact developer list \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4041\"\u003e#4041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict test with scram_iterations to v16+ and release notes \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4040\"\u003e#4040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): update ubuntu:24.04 docker digest to 84e77de \u003ca href=\"https://github.com/renovate-bot\"\u003e\u003ccode\u003e@​renovate-bot\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4017\"\u003e#4017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: add tests for QueryExecutor#getTransactionState \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4006\"\u003e#4006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/create-github-app-token action to v2.2.2 \u003ca href=\"https://github.com/renovate-bot\"\u003e\u003ccode\u003e@​renovate-bot\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3983\"\u003e#3983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: fix flaky CopyBothResponseTest by using WAL flush LSN \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3979\"\u003e#3979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: fix flaky replication restart tests by waiting for confirmed_flush_lsn \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3975\"\u003e#3975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: fix flaky LogicalReplicationStatusTest by polling pg_stat_replication \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3974\"\u003e#3974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: replace Appveyor with ikalnytskyi/action-setup-postgres \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: move test table creation from \u003ca href=\"https://github.com/BeforeEach\"\u003e\u003ccode\u003e@​BeforeEach\u003c/code\u003e\u003c/a\u003e to \u003ca href=\"https://github.com/BeforeAll\"\u003e\u003ccode\u003e@​BeforeAll\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn jsonb as PGObject fixes Issue \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3926\"\u003e#3926\u003c/a\u003e \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3956\"\u003e#3956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate docker scripts  \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3958\"\u003e#3958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimplement require_auth, this is pretty much how libpq does this.  \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3895\"\u003e#3895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: add SCRAM authentication test setup section to TESTING.md \u003ca href=\"https://github.com/emmaeng700\"\u003e\u003ccode\u003e@​emmaeng700\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd RequireServerVersion annotation for tests \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3939\"\u003e#3939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure extended protocol messages end with Sync message \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3728\"\u003e#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: enable cursor-based fetching in extended protocol when transaction started via SQL command \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: retry with SSL on IOException when sslMode=ALLOW \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3973\"\u003e#3973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: catch SecurityException from setContextClassLoader on ForkJoinPool workers \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use compareTo for LogSequenceNumber comparison \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3961\"\u003e#3961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: release COPY lock on IOException to prevent connection hang (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3957\"\u003e#3957\u003c/a\u003e) \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3960\"\u003e#3960\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: replace \u003ca href=\"https://github.com/exception\"\u003e\u003ccode\u003e@​exception\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/throws\"\u003e\u003ccode\u003e@​throws\u003c/code\u003e\u003c/a\u003e in getBoolean javadoc \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4035\"\u003e#4035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use \u003ccode\u003e@​vlsi/github-actions-random-matrix\u003c/code\u003e npm package \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4008\"\u003e#4008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use tag names for pinning github actions, pin ikalnytskyi/action-setup-postgres \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4007\"\u003e#4007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: bump errorprone to 2.48.0 \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4005\"\u003e#4005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: add \u003ca href=\"https://github.com/DisableLogger\"\u003e\u003ccode\u003e@​DisableLogger\u003c/code\u003e\u003c/a\u003e annotation to suppress expected log warnings in tests \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3971\"\u003e#3971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: suppress deprecations in test code to reduce build verbosity \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3972\"\u003e#3972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: replace log warning in ConnectionFactory.closeStream with Throwable.addSuppressed \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3970\"\u003e#3970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use greedy pairwise coverage for CI matrix generation \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3965\"\u003e#3965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use full version tags in GitHub Actions comments \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3963\"\u003e#3963\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⬆️ Dependencies\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md\"\u003eorg.postgresql:postgresql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[42.7.11] (2026-04-28)\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: Limit SCRAM PBKDF2 iterations accepted from the server.\npgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.\nSee the \u003ca href=\"https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-98qh-xjc8-98pq\"\u003eSecurity Advisory\u003c/a\u003e for more detail.\nThe following \u003ca href=\"https://nvd.nist.gov/vuln/detail/CVE-2026-42198\"\u003eCVE-2026-42198\u003c/a\u003e has been issued.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: implement require_auth connection property, aligning with libpq behavior [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3895\"\u003e#3895\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3895\"\u003epgjdbc/pgjdbc#3895\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace Appveyor CI with ikalnytskyi/action-setup-postgres [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3966\"\u003e#3966\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3966\"\u003epgjdbc/pgjdbc#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: upgrade Gradle to v9 [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3978\"\u003e#3978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3978\"\u003epgjdbc/pgjdbc#3978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure extended protocol messages end with Sync message [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3728\"\u003e#3728\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3728\"\u003epgjdbc/pgjdbc#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: enable cursor-based fetching in extended protocol when transaction started via SQL command [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3996\"\u003e#3996\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3996\"\u003epgjdbc/pgjdbc#3996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: retry with SSL on IOException when sslMode=ALLOW [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3973\"\u003e#3973\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3973\"\u003epgjdbc/pgjdbc#3973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: make sure the driver honours connectTimeout when retrying the connection [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3968\"\u003epgjdbc/pgjdbc#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3968\"\u003epgjdbc/pgjdbc#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: catch SecurityException from setContextClassLoader on ForkJoinPool workers [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3962\"\u003e#3962\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3962\"\u003epgjdbc/pgjdbc#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use compareTo for LogSequenceNumber comparison to handle unsigned values correctly [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3961\"\u003e#3961\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3961\"\u003epgjdbc/pgjdbc#3961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: release COPY lock on IOException to prevent connection hang [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3957\"\u003e#3957\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3957\"\u003epgjdbc/pgjdbc#3957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: return jsonb as PGObject instead of String [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3956\"\u003e#3956\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3956\"\u003epgjdbc/pgjdbc#3956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: align SSL key file permission check with libpq [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3952\"\u003e#3952\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3952\"\u003epgjdbc/pgjdbc#3952\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: guard connection closed flag with a reentrant lock to protect against concurrent close [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3905\"\u003e#3905\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3905\"\u003epgjdbc/pgjdbc#3905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[42.7.10] (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: Migrate to Shadow 9 \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3931\"\u003ePR 3931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003estyle: fix empty line before javadoc for checkstyle compliance [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3925\"\u003e#3925\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3925\"\u003epgjdbc/pgjdbc#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003estyle: fix lambda argument indentation for checkstyle compliance [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3922\"\u003e#3922\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3922\"\u003epgjdbc/pgjdbc#3922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: add autosave=always|never|conservative and cleanupSavepoints=true|false to the randomized CI jobs [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3917\"\u003e#3917\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3917\"\u003epgjdbc/pgjdbc#3917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: non-standard strings failing test for version 19 [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3934\"\u003e#3934\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3934\"\u003epgjdbc/pgjdbc#3934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: small issues in ConnectionFactoryImpl [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3929\"\u003e#3929\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3929\"\u003epgjdbc/pgjdbc#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: process pending responses before fastpath to avoid protocol errors \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3913\"\u003ePR # 3913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: use.md, fix typos [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3911\"\u003e#3911\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3911\"\u003epgjdbc/pgjdbc#3911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edoc: datasource.md, fix minor formatting issue [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3912\"\u003e#3912\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3912\"\u003epgjdbc/pgjdbc#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edoc: add the new PGP signing key to the official documentation [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3912\"\u003e#3912\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3813\"\u003epgjdbc/pgjdbc#3813\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eReverted\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;fix: make all Calendar instances proleptic Gregorian (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3837\"\u003e#3837\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3887\"\u003e#3887\u003c/a\u003e)\u0026quot; [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3932\"\u003e#3932\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3932\"\u003epgjdbc/pgjdbc#3932\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[42.7.9] (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/78e261ff2a7f16a37bdceb2204f67e484387da2f\"\u003e\u003ccode\u003e78e261f\u003c/code\u003e\u003c/a\u003e fix: Add sources and javadocs to shaded published lib generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/1e09fa0496377296c9e2ef3bfd2b409945fba17a\"\u003e\u003ccode\u003e1e09fa0\u003c/code\u003e\u003c/a\u003e update Changelog and website for release of 42.7.11 (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4042\"\u003e#4042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/d479fa5b8c8c915a441ce1f2448f69f23dd0b66c\"\u003e\u003ccode\u003ed479fa5\u003c/code\u003e\u003c/a\u003e Fix scram fix location in changelog and update published artifact developer l...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/b04fc46af6c207bc7ce9e788fea8c43d18b73d0f\"\u003e\u003ccode\u003eb04fc46\u003c/code\u003e\u003c/a\u003e docs: Add scram max iters fix to changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/cf548225b4078db954765339720ffdf3bc94e5a6\"\u003e\u003ccode\u003ecf54822\u003c/code\u003e\u003c/a\u003e test: Disable scram test on older version without scram_iterations GUC\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/7dbcc79b2b4adf7b71458c9434d2c43cec7713b9\"\u003e\u003ccode\u003e7dbcc79\u003c/code\u003e\u003c/a\u003e test: Add SCRAM max iteration tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/c9d41d1332a7426fcef19ff89f2e6b1116429143\"\u003e\u003ccode\u003ec9d41d1\u003c/code\u003e\u003c/a\u003e fix: Limit SCRAM PBKDF2 iterations accepted from the server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/a340cb2b0ae24c0d98ad9dec569200ebb704d6aa\"\u003e\u003ccode\u003ea340cb2\u003c/code\u003e\u003c/a\u003e style: replace \u003ca href=\"https://github.com/exception\"\u003e\u003ccode\u003e@​exception\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/throws\"\u003e\u003ccode\u003e@​throws\u003c/code\u003e\u003c/a\u003e in getBoolean javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/77837f80c0c20a9f33f9e21b091f4d4552f8e753\"\u003e\u003ccode\u003e77837f8\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency org.openrewrite.rewrite:org.openrewrite.rewrite....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pgjdbc/pgjdbc/commit/23af03bc839af5217ea141946ae41e648264061c\"\u003e\u003ccode\u003e23af03b\u003c/code\u003e\u003c/a\u003e chore(deps): update actions/checkout action to v6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pgjdbc/pgjdbc/compare/REL42.7.2...REL42.7.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `javax.xml.bind:jaxb-api` from 2.2.3 to 2.3.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/javaee/jaxb-spec/commits/2.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.assertj:assertj-core` from 3.21.0 to 3.27.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/assertj/assertj/releases\"\u003eorg.assertj:assertj-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.27.7\u003c/h2\u003e\n\u003ch2\u003e:lock: Security\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix XXE vulnerability in \u003ccode\u003eisXmlEqualTo\u003c/code\u003e assertion (CVE-2026-24400)\n\u003cul\u003e\n\u003cli\u003eSee GHSA-rqfh-9r24-8c9r for details; many thanks to \u003ca href=\"https://github.com/wxt201\"\u003e\u003ccode\u003e@​wxt201\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Song-Li\"\u003e\u003ccode\u003e@​Song-Li\u003c/code\u003e\u003c/a\u003e for responsibly reporting it!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:no_entry_sign: Deprecated\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eXmlStringPrettyFormatter\u003c/code\u003e with no replacement\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:bug: Bug Fixes\u003c/h2\u003e\n\u003ch3\u003eGuava\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNavigation to \u003ccode\u003eassertj-core\u003c/code\u003e or \u003ccode\u003eguava\u003c/code\u003e types from \u003ccode\u003eassertj-guava\u003c/code\u003e Javadoc site has unnecessary header \u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3478\"\u003e#3478\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Byte Buddy 1.18.3\u003c/li\u003e\n\u003cli\u003eUpgrade to JUnit BOM 5.14.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGuava\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Guava 33.5.0-jre\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.27.6\u003c/h2\u003e\n\u003ch2\u003e:bug: Bug Fixes\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing export for \u003ccode\u003eorg.assertj.core.annotation\u003c/code\u003e \u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3951\"\u003e#3951\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:heart: Contributors\u003c/h2\u003e\n\u003cp\u003eThanks to all the contributors who worked on this release:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/duponter\"\u003e\u003ccode\u003e@​duponter\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.27.5\u003c/h2\u003e\n\u003ch2\u003e:zap: Improvements\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eByteBuddy in AssertJ 3.27.4 not compatible with Java 25 \u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3946\"\u003e#3946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/e84071667f5f8f13084af9dfa54cee5fd9db18db\"\u003e\u003ccode\u003ee840716\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release assertj-build-3.27.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/85ca7eb6609bb179c043b85ae7d290523b1ba79a\"\u003e\u003ccode\u003e85ca7eb\u003c/code\u003e\u003c/a\u003e Deprecate \u003ccode\u003eXmlStringPrettyFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/77081dc5eb107141df80f95bd0149b468e451341\"\u003e\u003ccode\u003e77081dc\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/b68fc24a9de28f28a486fc5b887c1b8a003a5823\"\u003e\u003ccode\u003eb68fc24\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.31.9 to 4.31.10 in the github-actions group ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/0cf5bb6c50f6ead3deaa2a2ff50ef1e7d933c8a3\"\u003e\u003ccode\u003e0cf5bb6\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003ekotlin.version\u003c/code\u003e from 2.1.0 to 2.2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/d393ef1f5e48c89d47d7cf6d1eae359ceda0a126\"\u003e\u003ccode\u003ed393ef1\u003c/code\u003e\u003c/a\u003e Abort tests when symbolic links cannot be created (\u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3788\"\u003e#3788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/22124331e9922af5a43ab50f7a9a25b65be53be1\"\u003e\u003ccode\u003e2212433\u003c/code\u003e\u003c/a\u003e Add IntelliJ custom inspection for test class names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/5717d025cfe0f4c66de20f3253c0b0ecba259aa1\"\u003e\u003ccode\u003e5717d02\u003c/code\u003e\u003c/a\u003e Update JetBrains icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/a8ec20bd42ed01f9cc6f654046c7dd424b0af07c\"\u003e\u003ccode\u003ea8ec20b\u003c/code\u003e\u003c/a\u003e Add icon for JetBrains products\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/c05fb3d052b415fb2d6051df939f3b7903a76afe\"\u003e\u003ccode\u003ec05fb3d\u003c/code\u003e\u003c/a\u003e Bump Maven to 3.9.12 and Wrapper to 3.3.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/assertj/assertj/compare/assertj-core-3.21.0...assertj-build-3.27.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.codehaus.groovy:groovy-all` from 3.0.21 to 3.0.25\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/apache/groovy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.15.3 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.1\u003c/strong\u003e is out now, adding support for the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and numerous bug fixes and improvements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jsoup.org/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\r\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\r\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\r\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\r\n  \u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eRegex.usingRe2j()\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.22.1 (2026-Jan-01)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\n  \u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eorg.jsoup.helper.Regex.usingRe2j()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an instance method \u003ccode\u003eParser#unescape(String, boolean)\u003c/code\u003e that unescapes HTML entities using the parser's configuration (e.g. to support error tracking), complementing the existing static utility \u003ccode\u003eParser.unescapeEntities(String, boolean)\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded a configurable maximum parser depth (to limit the number of open elements on stack) to both HTML and XML parsers. The HTML parser now defaults to a depth of 512 to match browser behavior, and protect against unbounded stack growth, while the XML parser keeps unlimited depth by default, but can opt into a limit via \u003ccode\u003eorg.jsoup.parser.Parser#setMaxDepth\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2421\"\u003e#2421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added CI coverage for JDK 25 \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2403\"\u003e#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added a CI fuzzer for contextual fragment parsing (in addition to existing full body HTML and XML fuzzers). [oss-fuzz \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/14041\"\u003e#14041\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/google/oss-fuzz/pull/14041\"\u003egoogle/oss-fuzz#14041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet a removal schedule of jsoup 1.24.1 for previously deprecated APIs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously cached child \u003ccode\u003eElements\u003c/code\u003e of an \u003ccode\u003eElement\u003c/code\u003e were not correctly invalidated in \u003ccode\u003eNode#replaceWith(Node)\u003c/code\u003e, which could lead to incorrect results when subsequently calling \u003ccode\u003eElement#children()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2391\"\u003e#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttribute selector values are now compared literally without trimming. Previously, jsoup trimmed whitespace from selector values and from element attribute values, which could cause mismatches with browser behavior (e.g. \u003ccode\u003e[attr=\u0026quot; foo \u0026quot;]\u003c/code\u003e). Now matches align with the CSS specification and browser engines. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2380\"\u003e#2380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using the JDK HttpClient, any system default proxy (\u003ccode\u003eProxySelector.getDefault()\u003c/code\u003e) was ignored. Now, the system proxy is used if a per-request proxy is not set. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2388\"\u003e#2388\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2390\"\u003e#2390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eValidationException\u003c/code\u003e could be thrown in the adoption agency algorithm with particularly broken input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2393\"\u003e#2393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNull characters in the HTML body were not consistently removed; and in foreign content were not correctly replaced. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2395\"\u003e#2395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn \u003ccode\u003eIndexOutOfBoundsException\u003c/code\u003e could be thrown when parsing a body fragment with crafted input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2397\"\u003e#2397\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2406\"\u003e#2406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using StructuralEvaluators (e.g., a \u003ccode\u003eparent child\u003c/code\u003e selector) across many retained threads, their memoized results could also be retained, increasing memory use. These results are now cleared immediately after use, reducing overall memory consumption. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2411\"\u003e#2411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCloning a \u003ccode\u003eParser\u003c/code\u003e now preserves any custom \u003ccode\u003eTagSet\u003c/code\u003e applied to the parser. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2422\"\u003e#2422\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2423\"\u003e#2423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.15.3...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.15.0 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-core` from 2.15.0 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/d763562443cc9d6e224a6265ca3710195c813cf5\"\u003e\u003ccode\u003ed763562\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/e5c69fe5f7be957490d52dae70787e7a8138ddda\"\u003e\u003ccode\u003ee5c69fe\u003c/code\u003e\u003c/a\u003e Re-do 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/0ba6a369eaa19a71b2b63fe40b1e9d317c0eb522\"\u003e\u003ccode\u003e0ba6a36\u003c/code\u003e\u003c/a\u003e Bump version after release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/b106011025f6447695e21ddbb9fd3952d284d10c\"\u003e\u003ccode\u003eb106011\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/18a7fe416a0bf666f6c2ddc6da883bc96382dd2d\"\u003e\u003ccode\u003e18a7fe4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/503a14ffa4a74ad56a02fd25f0cd997df163c647\"\u003e\u003ccode\u003e503a14f\u003c/code\u003e\u003c/a\u003e Re-do 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/ab95bc0056119f08ef721849be5e5f2c256b82cd\"\u003e\u003ccode\u003eab95bc0\u003c/code\u003e\u003c/a\u003e ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/0a4b8dedee08e159fddca5eb8e812c1ad881017a\"\u003e\u003ccode\u003e0a4b8de\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/719a42f3676ab3c10e3cd057966807b2206151e7\"\u003e\u003ccode\u003e719a42f\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/92488484b64bc348c43e5a7ff910d93c2f9e9b9c\"\u003e\u003ccode\u003e9248848\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-core/compare/jackson-core-2.15.0...jackson-core-2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.dataformat:jackson-dataformat-xml` from 2.15.0 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/4c702ae0cd9870cb7415fb09d9b22412db78b972\"\u003e\u003ccode\u003e4c702ae\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-dataformat-xml-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/e6a9a509481c03c4cdd2e4bc7745a076bbf06942\"\u003e\u003ccode\u003ee6a9a50\u003c/code\u003e\u003c/a\u003e Prep for 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/80735f20d588dc859ff2bf9427f0d6dfb5c71a7e\"\u003e\u003ccode\u003e80735f2\u003c/code\u003e\u003c/a\u003e Merge branch '2.21' into 2.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5e5f3faa1232ad49c0a0ff0a3e7bd96cc659f850\"\u003e\u003ccode\u003e5e5f3fa\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/4c482a6404e6c076130ea2fa3d06e0809f20971d\"\u003e\u003ccode\u003e4c482a6\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/e29dfd957b47ec3982d20c4a97aa608516ce5ee9\"\u003e\u003ccode\u003ee29dfd9\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-dataformat-xml-2.21.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5d81f46097903e1e88b90ef06515d559caf1ef68\"\u003e\u003ccode\u003e5d81f46\u003c/code\u003e\u003c/a\u003e Prep for 2.21.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5db34fe1003e7f6bed78d5e7dc43c75842895f4c\"\u003e\u003ccode\u003e5db34fe\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/a12b8dfd547b08f808b4189746e00bb203ab08c1\"\u003e\u003ccode\u003ea12b8df\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/7ae7fdbb007ac18c44bddb7515becc1789830db5\"\u003e\u003ccode\u003e7ae7fdb\u003c/code\u003e\u003c/a\u003e Merge branch '2.18' into 2.19\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/compare/jackson-dataformat-xml-2.15.0...jackson-dataformat-xml-2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-annotations` from 2.15.0 to 2.22.0\n\nUpdates `com.fasterxml.jackson.core:jackson-core` from 2.15.0 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/d763562443cc9d6e224a6265ca3710195c813cf5\"\u003e\u003ccode\u003ed763562\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/e5c69fe5f7be957490d52dae70787e7a8138ddda\"\u003e\u003ccode\u003ee5c69fe\u003c/code\u003e\u003c/a\u003e Re-do 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/0ba6a369eaa19a71b2b63fe40b1e9d317c0eb522\"\u003e\u003ccode\u003e0ba6a36\u003c/code\u003e\u003c/a\u003e Bump version after release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/b106011025f6447695e21ddbb9fd3952d284d10c\"\u003e\u003ccode\u003eb106011\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/18a7fe416a0bf666f6c2ddc6da883bc96382dd2d\"\u003e\u003ccode\u003e18a7fe4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/503a14ffa4a74ad56a02fd25f0cd997df163c647\"\u003e\u003ccode\u003e503a14f\u003c/code\u003e\u003c/a\u003e Re-do 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/ab95bc0056119f08ef721849be5e5f2c256b82cd\"\u003e\u003ccode\u003eab95bc0\u003c/code\u003e\u003c/a\u003e ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/0a4b8dedee08e159fddca5eb8e812c1ad881017a\"\u003e\u003ccode\u003e0a4b8de\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/719a42f3676ab3c10e3cd057966807b2206151e7\"\u003e\u003ccode\u003e719a42f\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/92488484b64bc348c43e5a7ff910d93c2f9e9b9c\"\u003e\u003ccode\u003e9248848\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.22.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-core/compare/jackson-core-2.15.0...jackson-core-2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.dataformat:jackson-dataformat-xml` from 2.15.0 to 2.22.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/4c702ae0cd9870cb7415fb09d9b22412db78b972\"\u003e\u003ccode\u003e4c702ae\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-dataformat-xml-2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/e6a9a509481c03c4cdd2e4bc7745a076bbf06942\"\u003e\u003ccode\u003ee6a9a50\u003c/code\u003e\u003c/a\u003e Prep for 2.22.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/80735f20d588dc859ff2bf9427f0d6dfb5c71a7e\"\u003e\u003ccode\u003e80735f2\u003c/code\u003e\u003c/a\u003e Merge branch '2.21' into 2.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5e5f3faa1232ad49c0a0ff0a3e7bd96cc659f850\"\u003e\u003ccode\u003e5e5f3fa\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/4c482a6404e6c076130ea2fa3d06e0809f20971d\"\u003e\u003ccode\u003e4c482a6\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/e29dfd957b47ec3982d20c4a97aa608516ce5ee9\"\u003e\u003ccode\u003ee29dfd9\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-dataformat-xml-2.21.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5d81f46097903e1e88b90ef06515d559caf1ef68\"\u003e\u003ccode\u003e5d81f46\u003c/code\u003e\u003c/a\u003e Prep for 2.21.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/5db34fe1003e7f6bed78d5e7dc43c75842895f4c\"\u003e\u003ccode\u003e5db34fe\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/a12b8dfd547b08f808b4189746e00bb203ab08c1\"\u003e\u003ccode\u003ea12b8df\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/commit/7ae7fdbb007ac18c44bddb7515becc1789830db5\"\u003e\u003ccode\u003e7ae7fdb\u003c/code\u003e\u003c/a\u003e Merge branch '2.18' into 2.19\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-dataformat-xml/compare/jackson-dataformat-xml-2.15.0...jackson-dataformat-xml-2.22.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-annotations` from 2.15.0 to 2.22.0\n\nUpdates `org.apache.commons:commons-collections4` from 4.4 to 4.5.0\n\nUpdates `org.projectlombok:lombok` from 1.18.20 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.44 (March 11th, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Jacksonized\u003c/code\u003e now supports both Jackson2 and Jackson3; you'll get a warning until you configure which one (or even both!) you want lombok to generate. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3950\"\u003e#3950\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: On JDK25, \u003ccode\u003eval\u003c/code\u003e and \u003ccode\u003e@ExtensionMethod\u003c/code\u003e could sometimes cause erroneous errors (in that you see errors but compilation succeeds anyway) using javac. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3947\"\u003e#3947\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e + fields marked \u003ccode\u003etransient\u003c/code\u003e would result in those transient fields being serialised which is surprising (and thus undesired) behaviour. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3936\"\u003e#3936\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.42 (September 18th, 2025)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFEATURE: All the various \u003ccode\u003e@Log\u003c/code\u003e annotations now allow you to change their access level (they still default to \u003ccode\u003eprivate\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/2280\"\u003e#2280\u003c/a\u003e. Thanks to new contributor Liam Pace!\u003c/li\u003e\n\u003cli\u003eBUGFIX: Javadoc parsing was broken in Netbeans and ErrorProne for JDK25 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3940\"\u003e#3940\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.40 (September 4th, 2025)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK25 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3859\"\u003e#3859\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Recent versions of eclipse (or the eclipse-based java lang server for VSCode) caused \u003ccode\u003ejava.lang.IllegalArgumentException: Document does not match the AST\u003c/code\u003e. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3886\"\u003e#3886\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3886\"\u003eprojectlombok/lombok#3886\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePERFORMANCE: \u003ccode\u003e@ExtensionMethod\u003c/code\u003e is now significantly faster [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3866\"\u003e#3866\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3866\"\u003eprojectlombok/lombok#3866\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: the command line \u003ccode\u003econfig\u003c/code\u003e tool would emit incorrect output for nullity annotations. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3931\"\u003e#3931\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3931\"\u003eprojectlombok/lombok#3931\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Jacksonized @Accessors(fluent=true)\u003c/code\u003e automatically creates the relevant annotations such that Jackson correctly identifies fluent accessors. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3265\"\u003e#3265\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3265\"\u003eprojectlombok/lombok#3265\u003c/a\u003e), [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3270\"\u003e#3270\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3270\"\u003eprojectlombok/lombok#3270\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eIMPROBABLE BREAKING CHANGE: From versions 1.18.16 to 1.18.38, lombok automatically copies certain Jackson annotations (e.g., \u003ccode\u003e@JsonProperty\u003c/code\u003e) from fields to the corresponding accessors (getters/setters). However, it turned out to be harmful in certain situations. Thus, Lombok does not automatically copy those annotations any more. You can restore the old behavior using the \u003ca href=\"https://projectlombok.org/features/configuration\"\u003econfig key\u003c/a\u003e \u003ccode\u003elombok.copyJacksonAnnotationsToAccessors = true\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.38 (March 31st, 2025)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK24 support added.\u003c/li\u003e\n\u003cli\u003eFEATURE: Lombok's nullity annotation now supports \u003ca href=\"https://jspecify.dev\"\u003eJSpecify\u003c/a\u003e out of the box, using \u003ca href=\"https://projectlombok.org/features/configuration\"\u003econfig key\u003c/a\u003e \u003ccode\u003ejspecify\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Recent eclipse releases would get you 'negative length' error. The bug had always been in lombok but didn't matter until recent releases. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3823\"\u003e#3823\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3823\"\u003eprojectlombok/lombok#3823\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: The 'extract local variable' refactor script of VSCode wouldn't replace all occurrences if run on a method call to a lombok generated method. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3783\"\u003e#3783\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3783\"\u003eprojectlombok/lombok#3783\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.36 (November 15th, 2024)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK23 support added.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Eclipse projects using the \u003ccode\u003ecom.pro-crafting.tools:jasperreports-maven-plugin\u003c/code\u003e will now compile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.34 (June 28th, 2024)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: Added support for Eclipse 2024-06; you'd get some \u003ccode\u003eNoSuchMethodError\u003c/code\u003e traces in your logs if using \u003ccode\u003e@Builder\u003c/code\u003e or \u003ccode\u003e@Singular\u003c/code\u003e prior to this fix. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3638\"\u003e#3638\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3638\"\u003eprojectlombok/lombok#3638\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eIMPROBABLE BREAKING CHANGE: Lombok now adds \u003ccode\u003e@lombok.Generated\u003c/code\u003e by default to methods and types it generates. This may result in accidentally increasing your test coverage percentage. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3667\"\u003e#3667\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3667\"\u003eprojectlombok/lombok#3667\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eIMPROBABLE BREAKING CHANGE: When \u003ccode\u003elombok.config\u003c/code\u003e contains \u003ccode\u003elombok.onX.flagUsage = WARNING\u003c/code\u003e, from now on warnings will actually be generated if onX is used.[Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/2848\"\u003e#2848\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/2848\"\u003eprojectlombok/lombok#2848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBUGFIX: When \u003ccode\u003e@SuperBuilder\u003c/code\u003e was used on a type with an generic array type, it would error \u003ccode\u003ewrong number of type arguments\u003c/code\u003e.  [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3694\"\u003e#3694\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3694\"\u003eprojectlombok/lombok#3694\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFEATURE: Lombok generates javadoc for you for most of the methods it adds; with this release, javadoc is also added to generated constructors. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/933\"\u003e#933\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/933\"\u003eprojectlombok/lombok#933\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.32 (March 20th, 2024)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: Initial JDK22 support added.\u003c/li\u003e\n\u003cli\u003ePLAFTORM  Added support for Eclipse 2024-03. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3620\"\u003e#3620\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3620\"\u003eprojectlombok/lombok#3620\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePLATFORM: Added support for recent versions of eclipse (released Q4 2023 or later or so) which would cause failures in the eclipse logs such as \u003ccode\u003ejava.lang.NoSuchMethodError: 'java.lang.StringBuffer org.eclipse.jdt…\u003c/code\u003e. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3564\"\u003e#3564\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3564\"\u003eprojectlombok/lombok#3564\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Locked\u003c/code\u003e has been introduced. Like \u003ccode\u003e@Synchronized\u003c/code\u003e but with \u003ccode\u003ejava.util.concurrent.locks\u003c/code\u003e locks instead of the \u003ccode\u003esynchronized\u003c/code\u003e primitive. Thanks, Pim van der Loos for the PR! [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3506\"\u003e#3506\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3506\"\u003eprojectlombok/lombok#3506\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eNECROMANCY: Inlining a generated getter in eclipse would result in eclipse incorrectly replacing calls with \u003ccode\u003e@Getter\u003c/code\u003e instead of the actual field's name. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/562\"\u003e#562\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/562\"\u003eprojectlombok/lombok#562\u003c/a\u003e). This issue is almost old enough to drink. Points for dedication go to Rawi for fixing this one.\u003c/li\u003e\n\u003cli\u003eBUGFIX: When \u003ccode\u003e@SuperBuilder\u003c/code\u003e was used on a type with an annotated generic type, it would error \u003ccode\u003ewrong number of type arguments\u003c/code\u003e.  [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3592\"\u003e#3592\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3592\"\u003eprojectlombok/lombok#3592\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: It was possible to create an infinite build loop using \u003ccode\u003e@ExtensionMethod\u003c/code\u003e. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3225\"\u003e#3225\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3225\"\u003eprojectlombok/lombok#3225\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eBUGFIX: Using \u003ccode\u003e@Getter(lazy=true)\u003c/code\u003e would fail if the expression contained a variable called \u003ccode\u003evalue\u003c/code\u003e. [Issue \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/2917\"\u003e#2917\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/2917\"\u003eprojectlombok/lombok#2917\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48...\n\n_Description has been truncated_","html_url":"https://github.com/AOT-Technologies/forms-flow-ai/pull/3317","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AOT-Technologies%2Fforms-flow-ai/issues/3317","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3317/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-31T12:13:20.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4557511061","node_id":"PR_kwDORkrpmc7hFhQf","number":35,"state":"closed","title":"build(deps): bump the maven-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-07T12:12:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-31T12:13:20.000Z","updated_at":"2026-06-07T12:12:34.000Z","time_to_close":604752,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"maven-dependencies","update_count":11,"packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"com.microsoft.playwright:playwright","old_version":"1.58.0","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright-java"},{"name":"com.anthropic:anthropic-java","old_version":"2.19.0","new_version":"2.35.0","repository_url":"https://github.com/anthropics/anthropic-sdk-java"},{"name":"com.fasterxml.jackson.core:jackson-databind","old_version":"2.21.2","new_version":"2.21.4","repository_url":"https://github.com/FasterXML/jackson"},{"name":"org.xerial:sqlite-jdbc","old_version":"3.51.3.0","new_version":"3.53.1.0","repository_url":"https://github.com/xerial/sqlite-jdbc"},{"name":"com.typesafe:config","old_version":"1.4.6","new_version":"1.4.8","repository_url":"https://github.com/lightbend/config"},{"name":"org.slf4j:slf4j-simple","old_version":"2.0.17","new_version":"2.0.18"},{"name":"org.junit.jupiter:junit-jupiter","old_version":"6.0.3","new_version":"6.1.0","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.jline:jline","old_version":"4.0.10","new_version":"4.1.3","repository_url":"https://github.com/jline/jline3"},{"name":"com.google.guava:guava","old_version":"33.5.0-jre","new_version":"33.6.0-jre","repository_url":"https://github.com/google/guava"},{"name":"org.apache.maven.plugins:maven-surefire-plugin","old_version":"3.5.5","new_version":"3.5.6","repository_url":"https://github.com/apache/maven-surefire"}],"path":null,"ecosystem":"maven"},"body":"Bumps the maven-dependencies group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) | `1.58.0` | `1.60.0` |\n| [com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java) | `2.19.0` | `2.35.0` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.21.2` | `2.21.4` |\n| [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) | `3.51.3.0` | `3.53.1.0` |\n| [com.typesafe:config](https://github.com/lightbend/config) | `1.4.6` | `1.4.8` |\n| org.slf4j:slf4j-simple | `2.0.17` | `2.0.18` |\n| [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) | `6.0.3` | `6.1.0` |\n| [org.jline:jline](https://github.com/jline/jline3) | `4.0.10` | `4.1.3` |\n| [com.google.guava:guava](https://github.com/google/guava) | `33.5.0-jre` | `33.6.0-jre` |\n| [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) | `3.5.5` | `3.5.6` |\n\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.microsoft.playwright:playwright` from 1.58.0 to 1.60.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/playwright-java/releases\"\u003ecom.microsoft.playwright:playwright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.60.0\u003c/h2\u003e\n\u003ch2\u003e🌐 HAR recording on Tracing\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-tracing#tracing-start-har\"\u003etracing.startHar()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-tracing#tracing-stop-har\"\u003etracing.stopHar()\u003c/a\u003e expose HAR recording as a first-class tracing API, with the same \u003ccode\u003econtent\u003c/code\u003e, \u003ccode\u003emode\u003c/code\u003e and \u003ccode\u003eurlFilter\u003c/code\u003e options as \u003ccode\u003erecordHar\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"java\"\u003e\u003ccode\u003econtext.tracing().startHar(Paths.get(\u0026quot;trace.har\u0026quot;));\r\nPage page = context.newPage();\r\npage.navigate(\u0026quot;https://playwright.dev\u0026quot;);\r\ncontext.tracing().stopHar();\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e🪝 Drop API\u003c/h2\u003e\n\u003cp\u003eNew \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-drop\"\u003elocator.drop()\u003c/a\u003e simulates an external drag-and-drop of files or clipboard-like data onto an element. Playwright dispatches \u003ccode\u003edragenter\u003c/code\u003e, \u003ccode\u003edragover\u003c/code\u003e, and \u003ccode\u003edrop\u003c/code\u003e with a synthetic [DataTransfer] in the page context — works cross-browser and is great for testing upload zones:\u003c/p\u003e\n\u003cpre lang=\"java\"\u003e\u003ccode\u003epage.locator(\u0026quot;#dropzone\u0026quot;).drop(new Locator.DropPayload()\r\n    .setFiles(new FilePayload(\u0026quot;note.txt\u0026quot;, \u0026quot;text/plain\u0026quot;, \u0026quot;hello\u0026quot;.getBytes(StandardCharsets.UTF_8))));\r\n\u003cp\u003epage.locator(\u0026quot;#dropzone\u0026quot;).drop(new Locator.DropPayload()\n.setData(Map.of(\n\u0026quot;text/plain\u0026quot;, \u0026quot;hello world\u0026quot;,\n\u0026quot;text/uri-list\u0026quot;, \u0026quot;\u003ca href=\"https://example.com\"\u003ehttps://example.com\u003c/a\u003e\u0026quot;)));\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003e🎯 Aria snapshots\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-pageassertions#page-assertions-to-match-aria-snapshot\"\u003eassertThat(page).matchesAriaSnapshot()\u003c/a\u003e now works on a \u003ca href=\"https://playwright.dev/java/docs/api/class-page\"\u003ePage\u003c/a\u003e, in addition to a \u003ca href=\"https://playwright.dev/java/docs/api/class-locator\"\u003eLocator\u003c/a\u003e — equivalent to asserting against \u003ccode\u003epage.locator(\u0026quot;body\u0026quot;)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eboxes\u003c/code\u003e option on \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-aria-snapshot\"\u003elocator.ariaSnapshot()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-aria-snapshot\"\u003epage.ariaSnapshot()\u003c/a\u003e appends each element's bounding box as \u003ccode\u003e[box=x,y,width,height]\u003c/code\u003e, useful for AI consumption.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew APIs\u003c/h2\u003e\n\u003ch3\u003eBrowser, Context and Page\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvent \u003ca href=\"https://playwright.dev/java/docs/api/class-browser#browser-event-context\"\u003ebrowser.onContext()\u003c/a\u003e — fired when a new context is created on the browser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext\"\u003eBrowserContext\u003c/a\u003e now mirrors lifecycle events from its pages: \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-download\"\u003ebrowserContext.onDownload()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-attached\"\u003ebrowserContext.onFrameAttached()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-detached\"\u003ebrowserContext.onFrameDetached()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-navigated\"\u003ebrowserContext.onFrameNavigated()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-page-close\"\u003ebrowserContext.onPageClose()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-page-load\"\u003ebrowserContext.onPageLoad()\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLocators and Assertions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003edescription\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-get-by-role\"\u003epage.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-get-by-role\"\u003elocator.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-frame#frame-get-by-role\"\u003eframe.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-framelocator#frame-locator-get-by-role\"\u003eframeLocator.getByRole()\u003c/a\u003e for matching the \u003ca href=\"https://www.w3.org/TR/wai-aria-1.2/#dfn-accessible-description\"\u003eaccessible description\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003epseudo\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-locatorassertions#locator-assertions-to-have-css\"\u003eassertThat(locator).hasCSS()\u003c/a\u003e reads computed styles from \u003ccode\u003e::before\u003c/code\u003e or \u003ccode\u003e::after\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003estyle\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-highlight\"\u003elocator.highlight()\u003c/a\u003e applies extra inline CSS to the highlight overlay, plus new \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-hide-highlight\"\u003epage.hideHighlight()\u003c/a\u003e to clear all highlights.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNetwork\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-websocketroute#web-socket-route-protocols\"\u003ewebSocketRoute.protocols()\u003c/a\u003e returns the WebSocket subprotocols requested by the page.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003enoDefaults\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-browsertype#browser-type-connect-over-cdp\"\u003ebrowserType.connectOverCDP()\u003c/a\u003e disables Playwright's default overrides on the default context (download behavior, focus emulation, media emulation), so attaching to a user's daily-driver browser doesn't disturb its state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eErrors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ca href=\"https://playwright.dev/java/docs/api/class-weberror#web-error-location\"\u003ewebError.location()\u003c/a\u003e mirrors \u003ca href=\"https://playwright.dev/java/docs/api/class-consolemessage#console-message-location\"\u003econsoleMessage.location()\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠️ Other improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTrace Viewer adds a pretty-print toggle for JSON / form request and response bodies in the network details panel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/55134ef3a5ea7607cd200d4662738a172ae146b8\"\u003e\u003ccode\u003e55134ef\u003c/code\u003e\u003c/a\u003e chore: mark 1.60.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/793b1d3d6152437e21c327f0779370662a1aa0ed\"\u003e\u003ccode\u003e793b1d3\u003c/code\u003e\u003c/a\u003e chore: roll driver to 1.60.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1921\"\u003e#1921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/8f66ef1f13e23c48eb43a1805d017866e58fe80d\"\u003e\u003ccode\u003e8f66ef1\u003c/code\u003e\u003c/a\u003e test_docker: align container launch with playwright-browsers (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/dc66e4d1a39c9e04fb001ecd0a30b2a9d9842165\"\u003e\u003ccode\u003edc66e4d\u003c/code\u003e\u003c/a\u003e chore(deps): bump com.google.code.gson:gson from 2.13.2 to 2.14.0 in the all ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/d84a2db0b348ace4c349c3f93fd62646bbf7c929\"\u003e\u003ccode\u003ed84a2db\u003c/code\u003e\u003c/a\u003e chore: roll driver to 1.60.0-beta-1778180503000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/f081667e44b5e1fec2a9f1179af76b687808f684\"\u003e\u003ccode\u003ef081667\u003c/code\u003e\u003c/a\u003e chore: roll to 1.60.0-alpha-2026-05-05 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1916\"\u003e#1916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/5b33729849608904e8fe709ee7a6aa042708f629\"\u003e\u003ccode\u003e5b33729\u003c/code\u003e\u003c/a\u003e chore: reduce CI flakiness across webkit/macOS, ubuntu, windows (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/b01bf64e64ef3cad7252369f1d747709f7507e81\"\u003e\u003ccode\u003eb01bf64\u003c/code\u003e\u003c/a\u003e chore: resolve Object langAliases in function argument types (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1908\"\u003e#1908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/7dbd6cac3b0c3759e25538c8b2c02e4592da95d7\"\u003e\u003ccode\u003e7dbd6ca\u003c/code\u003e\u003c/a\u003e chore: use langAliases from api.json in api generator (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1907\"\u003e#1907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/c3e4b92982067b90bfe297ed06ebbb80d36eb799\"\u003e\u003ccode\u003ec3e4b92\u003c/code\u003e\u003c/a\u003e chore: roll to 1.59.1-beta-1775752988000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-java/compare/v1.58.0...v1.60.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.anthropic:anthropic-java` from 2.19.0 to 2.35.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/releases\"\u003ecom.anthropic:anthropic-java's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.35.0\u003c/h2\u003e\n\u003ch2\u003e2.35.0 (2026-05-28)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.1...v2.35.0\"\u003ev2.34.1...v2.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for claude-opus-4-8, mid-conversation system blocks, and usage.output_tokens_details (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/3e4621e6766fc5f78eaa33f6789f0f801c9a32e8\"\u003e3e4621e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-27)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.0...v2.34.1\"\u003ev2.34.0...v2.34.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estructured-outputs:\u003c/strong\u003e support all nullability annotations (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1254\"\u003e#1254\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/95e439144341b1668b52773f46ce664f25f20ab5\"\u003e95e4391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereplace literal newlines (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c5573d98efba6a0c36890b6675cfecdc8fe8d808\"\u003ec5573d9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.33.0...v2.34.0\"\u003ev2.33.0...v2.34.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for thinking-token-count beta for estimated tokens in thinking block deltas when streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c814c7a24808d8f82875e02d3cde914fae334321\"\u003ec814c7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etest:\u003c/strong\u003e set required estimatedTokens on BetaThinkingDelta in BetaMessageAccumulatorTest (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/04aedf3c0b19b7c838c04f8fec09e82e4700c48a\"\u003e04aedf3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-05-19)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.32.0...v2.33.0\"\u003ev2.32.0...v2.33.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Add support for self-hosted sandboxes in CMA with sandbox helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/d5193622daa045073af0244a1fec4ae78131c205\"\u003ed519362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md\"\u003ecom.anthropic:anthropic-java's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.35.0 (2026-05-28)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.1...v2.35.0\"\u003ev2.34.1...v2.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for claude-opus-4-8, mid-conversation system blocks, and usage.output_tokens_details (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/3e4621e6766fc5f78eaa33f6789f0f801c9a32e8\"\u003e3e4621e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-27)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.34.0...v2.34.1\"\u003ev2.34.0...v2.34.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estructured-outputs:\u003c/strong\u003e support all nullability annotations (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1254\"\u003e#1254\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/95e439144341b1668b52773f46ce664f25f20ab5\"\u003e95e4391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ereplace literal newlines (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c5573d98efba6a0c36890b6675cfecdc8fe8d808\"\u003ec5573d9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.33.0...v2.34.0\"\u003ev2.33.0...v2.34.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for thinking-token-count beta for estimated tokens in thinking block deltas when streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c814c7a24808d8f82875e02d3cde914fae334321\"\u003ec814c7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etest:\u003c/strong\u003e set required estimatedTokens on BetaThinkingDelta in BetaMessageAccumulatorTest (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/04aedf3c0b19b7c838c04f8fec09e82e4700c48a\"\u003e04aedf3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-05-19)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.32.0...v2.33.0\"\u003ev2.32.0...v2.33.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Add support for self-hosted sandboxes in CMA with sandbox helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/d5193622daa045073af0244a1fec4ae78131c205\"\u003ed519362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add BetaManagedAgentsSearchResultBlock types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/253feaad3ecbf3693985ffa205baa1b51e8972e7\"\u003e253feaa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for cache diagnostics beta (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/7a3223122c72898bcfbbd1385f2aaba1daa1824b\"\u003e7a32231\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/65d26cc3716f805ca2282a1a98ebf0607b415942\"\u003e\u003ccode\u003e65d26cc\u003c/code\u003e\u003c/a\u003e release: 2.35.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/f90101069197a63fa116447ab617bbd846c62e0a\"\u003e\u003ccode\u003ef901010\u003c/code\u003e\u003c/a\u003e feat(api): Add support for claude-opus-4-8, mid-conversation system blocks, a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/bc1bdd9a38b5917352a7404ab5b73cf77fd6e567\"\u003e\u003ccode\u003ebc1bdd9\u003c/code\u003e\u003c/a\u003e release: 2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/f27e209ac991d788a55477a2d2eca816b877617a\"\u003e\u003ccode\u003ef27e209\u003c/code\u003e\u003c/a\u003e fix(structured-outputs): support all nullability annotations (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1254\"\u003e#1254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/62ef906b3c7e70792eaa22b215ff83f1dfa68162\"\u003e\u003ccode\u003e62ef906\u003c/code\u003e\u003c/a\u003e docs: replace literal newlines\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/dc19d082177c715f2275b008ae09a6a6ff9c213d\"\u003e\u003ccode\u003edc19d08\u003c/code\u003e\u003c/a\u003e ci: run breaking change detection on every branch (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1224\"\u003e#1224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/1382286f4659e36010f0ef4e4fe4a36e013a4e74\"\u003e\u003ccode\u003e1382286\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/765ec0e21cb1e17d8b5adaad24e90b7d1afa96b5\"\u003e\u003ccode\u003e765ec0e\u003c/code\u003e\u003c/a\u003e release: 2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/56c637fc19053bd3088791518ade11f3055bb837\"\u003e\u003ccode\u003e56c637f\u003c/code\u003e\u003c/a\u003e fix(test): set required estimatedTokens on BetaThinkingDelta in BetaMessageAc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/5d636b2d1aab522b8bb91d1de30901f812d1dc42\"\u003e\u003ccode\u003e5d636b2\u003c/code\u003e\u003c/a\u003e feat(api): Add support for thinking-token-count beta for estimated tokens in ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.19.0...v2.35.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.21.2 to 2.21.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.xerial:sqlite-jdbc` from 3.51.3.0 to 3.53.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xerial/sqlite-jdbc/releases\"\u003eorg.xerial:sqlite-jdbc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.53.1.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.1 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/8263322\"\u003e8263322\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔄️ Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erewrite amalgamation_version.sh for POSIX shell (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/52522d0\"\u003e52522d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix android usage (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7ef8e0f\"\u003e7ef8e0f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.14.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/a28d6ce\"\u003ea28d6ce\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.13.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/248e1e9\"\u003e248e1e9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.jreleaser:jreleaser-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/396fdf3\"\u003e396fdf3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.tngtech.archunit:archunit-junit5 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/458abe1\"\u003e458abe1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econditionally bootstrap SLF4J API JAR (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bc7d223\"\u003ebc7d223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake JAVA_CLASSPATH configurable (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/5aa7426\"\u003e5aa7426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Michael Osipov\u003c/p\u003e\n\u003ch2\u003eRelease 3.53.0.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejdbc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexpose wal_autocheckpoint pragma in SQLiteConfig (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/dd2adcc\"\u003edd2adcc\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1397\"\u003e#1397\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/baaf087\"\u003ebaaf087\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epublish multiple classifer jars (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bdd2b64\"\u003ebdd2b64\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1273\"\u003e#1273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter Android support (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7eb6f3f\"\u003e7eb6f3f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1378\"\u003e#1378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.sonatype.central:central-publishing-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/19259e5\"\u003e19259e5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/f572217\"\u003ef572217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/b01674f0bffc45b4c213dd873867e64b9194104b\"\u003e\u003ccode\u003eb01674f\u003c/code\u003e\u003c/a\u003e chore(release): 3.53.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/e6719db995a1fee385f0421cee1eaf78e3587013\"\u003e\u003ccode\u003ee6719db\u003c/code\u003e\u003c/a\u003e chore: update native libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/826332265f8f1069faeb4a61761a8651efaefb0c\"\u003e\u003ccode\u003e8263322\u003c/code\u003e\u003c/a\u003e feat(sqlite): upgrade to sqlite 3.53.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/396fdf30d850ca78dad59bccaafae25c1e86998a\"\u003e\u003ccode\u003e396fdf3\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump org.jreleaser:jreleaser-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/bc7d22394987d5c84706c844f0b95c7856e3f294\"\u003e\u003ccode\u003ebc7d223\u003c/code\u003e\u003c/a\u003e build: conditionally bootstrap SLF4J API JAR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/4cd221a72480a681f91f78f9d8a99372daf423ce\"\u003e\u003ccode\u003e4cd221a\u003c/code\u003e\u003c/a\u003e chore: remove execute bit on non-executable files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/5aa74267e6a01c071ec88d1882de8aeec0d8d22a\"\u003e\u003ccode\u003e5aa7426\u003c/code\u003e\u003c/a\u003e build: make JAVA_CLASSPATH configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/52522d02ee5cffa8f283054d8bf5a5165206caac\"\u003e\u003ccode\u003e52522d0\u003c/code\u003e\u003c/a\u003e refactor: rewrite amalgamation_version.sh for POSIX shell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/a28d6cef66da00f8559445dfacd9f34a871509d6\"\u003e\u003ccode\u003ea28d6ce\u003c/code\u003e\u003c/a\u003e build(deps): bump gummy-bears-api-24 to 0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/458abe135cad6e20f00504418a09946c81c8dbd7\"\u003e\u003ccode\u003e458abe1\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump com.tngtech.archunit:archunit-junit5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/xerial/sqlite-jdbc/compare/3.51.3.0...3.53.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.typesafe:config` from 1.4.6 to 1.4.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lightbend/config/releases\"\u003ecom.typesafe:config's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: BugOrBroken - partially-shadowed object has nested delayed merge by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/846\"\u003elightbend/config#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.7...v1.4.8\"\u003ehttps://github.com/lightbend/config/compare/v1.4.7...v1.4.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.4.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: adjust description of release process by \u003ca href=\"https://github.com/sebastian-alfers\"\u003e\u003ccode\u003e@​sebastian-alfers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/834\"\u003elightbend/config#834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update NEWS with latest two releases by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/835\"\u003elightbend/config#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI fixes by \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003elightbend/config#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix spelling by \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/840\"\u003elightbend/config#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: rendering of substituted list with space by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/841\"\u003elightbend/config#841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Don't evaluate substitutions hidden by values from resolved objects by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/839\"\u003elightbend/config#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop the broken Maven chip in Readme by \u003ca href=\"https://github.com/ennru\"\u003e\u003ccode\u003e@​ennru\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/844\"\u003elightbend/config#844\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003elightbend/config#843\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.6...v1.4.7\"\u003ehttps://github.com/lightbend/config/compare/v1.4.6...v1.4.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lightbend/config/blob/main/NEWS.md\"\u003ecom.typesafe:config's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.8: May 5, 2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: BugOrBroken - partially-shadowed object has nested delayed merge, fix for regression introduced in 1.4.7, (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/846\"\u003e#846\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.4.7: April 28, 2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: rendering of substituted list with space (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/841\"\u003e#841\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Don't evaluate substitutions hidden by values from resolved objects (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/839\"\u003e#839\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: CI improvements (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003e#843\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: spelling improvements by (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/840\"\u003e#840\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/b0a1e43b61d11e0f1aeefb939ea8d8576229a684\"\u003e\u003ccode\u003eb0a1e43\u003c/code\u003e\u003c/a\u003e fix: regression - partially-shadowed object has nested delayed merge (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/846\"\u003e#846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/eb80714c074036e723d6cb14929bcb1582ec34a7\"\u003e\u003ccode\u003eeb80714\u003c/code\u003e\u003c/a\u003e Drop the broken Maven chip in Readme (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/833bacb616f92cae73c67d8b7a8ae9f6e44b474c\"\u003e\u003ccode\u003e833bacb\u003c/code\u003e\u003c/a\u003e fix: Don't evaluate substitutions hidden by values from resolved objects (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/dd3a0df142f7def91c13b4a0576af5528e9fd7f4\"\u003e\u003ccode\u003edd3a0df\u003c/code\u003e\u003c/a\u003e fix: rendering of substituted list with spacce (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/eb46e0e09065f974de851de83a7ab121aae91e6d\"\u003e\u003ccode\u003eeb46e0e\u003c/code\u003e\u003c/a\u003e chore: Fix spelling here and there (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/840\"\u003e#840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/affd59d79928662f262fc12c20aeff9784600349\"\u003e\u003ccode\u003eaffd59d\u003c/code\u003e\u003c/a\u003e build: update actions, replace deprecated apt-key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/93dbc6f42650c120a78506824db644aa637ad376\"\u003e\u003ccode\u003e93dbc6f\u003c/code\u003e\u003c/a\u003e docs: Update NEWS with latest two releases (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/835\"\u003e#835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/c995aa0f11d9712c4eb41a3aa6d60cf179cda1ab\"\u003e\u003ccode\u003ec995aa0\u003c/code\u003e\u003c/a\u003e docs: adjust description of release process (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.6...v1.4.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.slf4j:slf4j-simple` from 2.0.17 to 2.0.18\n\nUpdates `org.junit.jupiter:junit-jupiter` from 6.0.3 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.1.0 = Platform 6.1.0 + Jupiter 6.1.0 + Vintage 6.1.0\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JarvisCraft\"\u003e\u003ccode\u003e@​JarvisCraft\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5633\"\u003ejunit-team/junit-framework#5633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Maran23\"\u003e\u003ccode\u003e@​Maran23\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5644\"\u003ejunit-team/junit-framework#5644\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.1.0-RC1 = Platform 6.1.0-RC1 + Jupiter 6.1.0-RC1 + Vintage 6.1.0-RC1\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0-RC1/release-notes/\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariokhoury4\"\u003e\u003ccode\u003e@​mariokhoury4\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/4574\"\u003ejunit-team/junit-framework#4574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ogu1208\"\u003e\u003ccode\u003e@​Ogu1208\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5145\"\u003ejunit-team/junit-framework#5145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HyungGeun94\"\u003e\u003ccode\u003e@​HyungGeun94\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5271\"\u003ejunit-team/junit-framework#5271\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yalishevant\"\u003e\u003ccode\u003e@​yalishevant\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5316\"\u003ejunit-team/junit-framework#5316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JINU-CHANG\"\u003e\u003ccode\u003e@​JINU-CHANG\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5290\"\u003ejunit-team/junit-framework#5290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaschdoc\"\u003e\u003ccode\u003e@​jaschdoc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5427\"\u003ejunit-team/junit-framework#5427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kawshikbuet17\"\u003e\u003ccode\u003e@​kawshikbuet17\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5561\"\u003ejunit-team/junit-framework#5561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msridhar\"\u003e\u003ccode\u003e@​msridhar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5602\"\u003ejunit-team/junit-framework#5602\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.1.0-M1...r6.1.0-RC1\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.1.0-M1...r6.1.0-RC1\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.1.0-M1 = Platform 6.1.0-M1 + Jupiter 6.1.0-M1 + Vintage 6.1.0-M1\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0-M1/release-notes/\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vy\"\u003e\u003ccode\u003e@​vy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5041\"\u003ejunit-team/junit-framework#5041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pankraz76\"\u003e\u003ccode\u003e@​Pankraz76\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5006\"\u003ejunit-team/junit-framework#5006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arukiidou\"\u003e\u003ccode\u003e@​arukiidou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5066\"\u003ejunit-team/junit-framework#5066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laeubi\"\u003e\u003ccode\u003e@​laeubi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5092\"\u003ejunit-team/junit-framework#5092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jihun4452\"\u003e\u003ccode\u003e@​jihun4452\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5088\"\u003ejunit-team/junit-framework#5088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TWiStErRob\"\u003e\u003ccode\u003e@​TWiStErRob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5133\"\u003ejunit-team/junit-framework#5133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.0...r6.1.0-M1\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.0...r6.1.0-M1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0dc3af1cb1973d257b5bc75d81e02454d5e4e556\"\u003e\u003ccode\u003e0dc3af1\u003c/code\u003e\u003c/a\u003e Release 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/1d130020c85170edcb46ce7ed1f7f78824e37c04\"\u003e\u003ccode\u003e1d13002\u003c/code\u003e\u003c/a\u003e Prepare 6.1.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/072b2175bbd7b0b3b26f5d928550ec7a21e68268\"\u003e\u003ccode\u003e072b217\u003c/code\u003e\u003c/a\u003e Update plugin spotless to v8.5.0 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5668\"\u003e#5668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/3a53480218f4b752a9ca77506e10632cd483c0f8\"\u003e\u003ccode\u003e3a53480\u003c/code\u003e\u003c/a\u003e Update Gradle to v9.5.1 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5666\"\u003e#5666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0e18a20a9f98d063ae02b3ba19329143f5c7f034\"\u003e\u003ccode\u003e0e18a20\u003c/code\u003e\u003c/a\u003e Update zizmorcore/zizmor-action action to v0.5.4 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5669\"\u003e#5669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0a2634fb9cbbd057b02cf629d7d272c16d62be4b\"\u003e\u003ccode\u003e0a2634f\u003c/code\u003e\u003c/a\u003e Update github/codeql-action action to v4.35.5 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5671\"\u003e#5671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/4dbd5561b00ac761a62c516bfaec51c212a2d60c\"\u003e\u003ccode\u003e4dbd556\u003c/code\u003e\u003c/a\u003e Restructure workflows to have single \u0026quot;status\u0026quot; job (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5670\"\u003e#5670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/f2194cebe377512cb0ade388c62a881a0bcf5d3e\"\u003e\u003ccode\u003ef2194ce\u003c/code\u003e\u003c/a\u003e Increase timeout to reduce flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fdd2df65b763151cccbe669ea9e1c3155efcd\"\u003e\u003ccode\u003e5c8fdd2\u003c/code\u003e\u003c/a\u003e Update dependency org.apache.groovy:groovy to v5.0.6 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5659\"\u003e#5659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/43c6982324602582902c9bdb213fd5e007f9cf3d\"\u003e\u003ccode\u003e43c6982\u003c/code\u003e\u003c/a\u003e Update dependency org.slf4j:slf4j-jdk14 to v2.0.18 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5667\"\u003e#5667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jline:jline` from 4.0.10 to 4.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jline/jline3/releases\"\u003eorg.jline:jline's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJLine 4.1.3 is a patch release with important fixes for terminal close handling, raw mode signal behavior, FFM memory management, and shell command argument parsing.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: terminal.close() blocks when pump thread is reading stdin (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1911\"\u003e#1911\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1909\"\u003e#1909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: clear ISIG in enterRawMode so Ctrl+C reaches raw-mode readers (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1912\"\u003e#1912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use confined arenas instead of auto arenas in FFM CLibrary (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1913\"\u003e#1913\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1872\"\u003e#1872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: swap rows/columns in openpty winsize constructor call (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1914\"\u003e#1914\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1910\"\u003e#1910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: fix command argument parsing in DefaultCommandDispatcher (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChores\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: add OSS AI helper rules for project conventions (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1917\"\u003e#1917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Bump org.graalvm.buildtools:native-maven-plugin from 1.1.0 to 1.1.1 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1915\"\u003e#1915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.5 to 3.5.6 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Bump com.diffplug.spotless:spotless-maven-plugin from 3.5.1 to 3.6.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jline/jline3/compare/4.1.2...4.1.3\"\u003ehttps://github.com/jline/jline3/compare/4.1.2...4.1.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJLine 4.1.2 is a patch release focused on correctness fixes across the parser, terminal I/O, and shell modules.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: echo preserves backslash before unrecognised escape sequences (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1901\"\u003e#1901\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1863\"\u003e#1863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: DefaultParser preserves backslashes inside quotes (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1902\"\u003e#1902\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1877\"\u003e#1877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: NonBlockingInputStream keeps thread alive after EOF (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1903\"\u003e#1903\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: ensure cursor position after alternate screen init (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1904\"\u003e#1904\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use parser for command argument splitting (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1907\"\u003e#1907\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1876\"\u003e#1876\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Bump eu.maveniverse.maven.nisse:extension from 0.9.1 to 0.9.2 (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1905\"\u003e#1905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jline/jline3/compare/4.1.1...4.1.2\"\u003ehttps://github.com/jline/jline3/compare/4.1.1...4.1.2\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJLine 4.1.1 is a patch release focused on stability fixes. The most notable change corrects the POSIX raw mode defaults (VMIN/VTIME) in \u003ccode\u003eenterRawMode\u003c/code\u003e, which could cause shell REPL sessions to hang or malfunction on certain platforms. This release also fixes a Display bug where the internal line buffer could alias or reject immutable caller-provided lists, hardens signal registration against null returns, and corrects alternate charset handling in ScreenTerminal.\u003c/p\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed Display oldLines being set as possible immutable lists. (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1878\"\u003e#1878\u003c/a\u003e) \u003ca href=\"https://github.com/Elec332\"\u003e\u003ccode\u003e@​Elec332\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use POSIX cfmakeraw defaults (VMIN=1, VTIME=0) in enterRawMode (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1871\"\u003e#1871\u003c/a\u003e) \u003ca href=\"https://github.com/BryanSant\"\u003e\u003ccode\u003e@​BryanSant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip null returns from signal registration in AbstractUnixSysTerminal (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1869\"\u003e#1869\u003c/a\u003e) \u003ca href=\"https://github.com/BryanSant\"\u003e\u003ccode\u003e@​BryanSant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed ScreenTerminal alt-charset (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1867\"\u003e#1867\u003c/a\u003e) \u003ca href=\"https://github.com/Elec332\"\u003e\u003ccode\u003e@​Elec332\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Bump com.palantir.javaformat:palantir-java-format from 2.90.0 to 2.91.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1898\"\u003e#1898\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/7f44a23f0da569e33fe9a632e982f94274bfb25d\"\u003e\u003ccode\u003e7f44a23\u003c/code\u003e\u003c/a\u003e fix: fix command argument parsing in DefaultCommandDispatcher (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1924\"\u003e#1924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/911e3d6d3101858629b9d8f74752d8b09475b65f\"\u003e\u003ccode\u003e911e3d6\u003c/code\u003e\u003c/a\u003e chore: Bump com.diffplug.spotless:spotless-maven-plugin from 3.5.1 to 3.6.0 (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/15cdac548ce65afdad84d15096d8e5183b1a8577\"\u003e\u003ccode\u003e15cdac5\u003c/code\u003e\u003c/a\u003e chore: Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.5 to 3.5....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/2d3e1ffee5d895f0c407d838bf54da924640af4f\"\u003e\u003ccode\u003e2d3e1ff\u003c/code\u003e\u003c/a\u003e chore: Bump org.graalvm.buildtools:native-maven-plugin from 1.1.0 to 1.1.1 (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/0ac019ab8c44da3ae4ee47bccd216791e6ccb35d\"\u003e\u003ccode\u003e0ac019a\u003c/code\u003e\u003c/a\u003e fix: terminal.close() blocks when pump thread is reading stdin (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1911\"\u003e#1911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/1d637408d2cdd479a5abede3ce88710be3e611ae\"\u003e\u003ccode\u003e1d63740\u003c/code\u003e\u003c/a\u003e fix: use confined arenas instead of auto arenas in FFM CLibrary (fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1872\"\u003e#1872\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/1604643d04a6ae56fdd6758757c18e968c7ff59d\"\u003e\u003ccode\u003e1604643\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1912\"\u003e#1912\u003c/a\u003e from jline/dot-tarragon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/147ee9c7024af2caed1a306e48fd236beef475df\"\u003e\u003ccode\u003e147ee9c\u003c/code\u003e\u003c/a\u003e chore: add OSS AI helper rules for project conventions (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1917\"\u003e#1917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/1735c1f2a22808a1a3d7837db0eca9714a66f4e8\"\u003e\u003ccode\u003e1735c1f\u003c/code\u003e\u003c/a\u003e fix: swap rows/columns in openpty winsize constructor call (fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1910\"\u003e#1910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/d9f6b86589760807162862d289685ea7673f0e41\"\u003e\u003ccode\u003ed9f6b86\u003c/code\u003e\u003c/a\u003e fix: add PromptCancelTest from \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1908\"\u003e#1908\u003c/a\u003e with timeout and fixture patterns\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jline/jline3/compare/4.0.10...4.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.guava:guava` from 33.5.0-jre to 33.6.0-jre\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/guava/releases\"\u003ecom.google.guava:guava's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e33.6.0\u003c/h2\u003e\n\u003ch3\u003eMaven\u003c/h3\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e\u0026lt;dependency\u0026gt;\r\n  \u0026lt;groupId\u0026gt;com.google.guava\u0026lt;/groupId\u0026gt;\r\n  \u0026lt;artifactId\u0026gt;guava\u0026lt;/artifactId\u0026gt;\r\n  \u0026lt;version\u0026gt;33.6.0-jre\u0026lt;/version\u0026gt;\r\n  \u0026lt;!-- or, for Android: --\u0026gt;\r\n  \u0026lt;version\u0026gt;33.6.0-android\u0026lt;/version\u0026gt;\r\n\u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eJar files\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\"\u003e33.6.0-jre.jar\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/guava/33.6.0-android/guava-33.6.0-android.jar\"\u003e33.6.0-android.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGuava requires \u003ca href=\"https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies\"\u003eone runtime dependency\u003c/a\u003e, which you can download here:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\"\u003efailureaccess-1.0.3.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavadoc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-jre/api/docs/\"\u003e33.6.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/docs/\"\u003e33.6.0-android\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJDiff\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-jre/api/diffs/\"\u003e33.6.0-jre vs. 33.5.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/diffs/\"\u003e33.6.0-android vs. 33.5.0-android\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/androiddiffs/\"\u003e33.6.0-android vs. 33.6.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated some classes from \u003ccode\u003efinalize()\u003c/code\u003e to \u003ccode\u003ePhantomReference\u003c/code\u003e in preparation for \u003ca href=\"https://openjdk.org/jeps/421\"\u003ethe removal of finalization\u003c/a\u003e. (786b619dd6, 7c6b17c, aeef90988d)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecache\u003c/code\u003e: Deprecated \u003ccode\u003eCacheBuilder\u003c/code\u003e APIs that use \u003ccode\u003eTimeUnit\u003c/code\u003e in favor of those that use \u003ccode\u003eDuration\u003c/code\u003e. (73f8b0bb84)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Added \u003ccode\u003etoImmutableSortedMap\u003c/code\u003e collectors that use the natural comparator. (64d70b9f94)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Changed \u003ccode\u003eConcurrentHashMultiset\u003c/code\u003e, \u003ccode\u003eImmutableMap\u003c/code\u003e and \u003ccode\u003eTreeMultiset\u003c/code\u003e deserialization to \u003ca href=\"https://openjdk.org/jeps/500\"\u003eavoid mutating \u003ccode\u003efinal\u003c/code\u003e fields\u003c/a\u003e. In extremely unlikely scenarios in which an instance of that type contains an object that refers back to that instance, this could lead to \u003ca href=\"https://docs.oracle.com/en/java/javase/26/docs/specs/serialization/input.html#the-readresolve-method:~:text=in%20cases%20where%20an%20object%20being%20serialized%20nominates%20a%20replacement%20object%20whose%20object%20graph%20has%20a%20reference%20to%20the%20original%20object\"\u003ea broken instance\u003c/a\u003e that throws \u003ccode\u003eNullPointerException\u003c/code\u003e when used. (8240c7e596, 046468055f)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Removed \u003ccode\u003e@Beta\u003c/code\u003e from all APIs in the package. (dae9566b73)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Added support to \u003ccode\u003eGraphs.transitiveClosure()\u003c/code\u003e for different strategies for adding self-loops. (2e13df25b2)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Added an \u003ccode\u003easNetwork()\u003c/code\u003e view to \u003ccode\u003eGraph\u003c/code\u003e and \u003ccode\u003eValueGraph\u003c/code\u003e. (909c593c61)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehash\u003c/code\u003e: Added \u003ccode\u003eBloomFilter.serializedSize()\u003c/code\u003e. (df9bcc251a)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enet\u003c/code\u003e: Added \u003ccode\u003eHttpHeaders.CDN_CACHE_CONTROL\u003c/code\u003e. (75331b5030)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/google/guava/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.maven.plugins:maven-surefire-plugin` from 3.5.5 to 3.5.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/maven-surefire/releases\"\u003eorg.apache.maven.plugins:maven-surefire-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.6\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e🚀 New features and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce reportTestTimestamp option and include timestamp for test sets and test cases (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3261\"\u003e#3261\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3302\"\u003e#3302\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue \u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/2613\"\u003e#2613\u003c/a\u003e Debugging failsafe tests: Message 'Listening for transport dt_socket at address' is not displayed anymore when using maven.surefire.debug (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3353\"\u003e#3353\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3354\"\u003e#3354\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure that the statistics filename is calculated only once. (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3326\"\u003e#3326\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3327\"\u003e#3327\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eflakes\u003c/code\u003e attribute to use in \u003ccode\u003etestsuite\u003c/code\u003e report (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3306\"\u003e#3306\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3308\"\u003e#3308\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[BACKPORT 3.5.x] \u003ca href=\"https://issues.apache.org/jira/browse/SUREFIRE-2049\"\u003e[SUREFIRE-2049]\u003c/a\u003e - Fix SHUTDOWN type lost during command serialization. (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3270\"\u003e#3270\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3289\"\u003e#3289\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: null guard for context map (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/issues/3269\"\u003e#3269\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3272\"\u003e#3272\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👻 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e3.5.x/bug/cherry pick embedded mode its (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3328\"\u003e#3328\u003c/a\u003e) \u003ca href=\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse surefire 3.5.5 by project itself for testing (\u003ca href=\"https://redirect.github.com/apache/maven-surefire/pull/3324\"\u003e#3324\u003c/a\u003e) \u003ca href=\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFollow Oracle javadoc guidelines (\u003ca href=\"htt...\n\n_Description has been truncated_","html_url":"https://github.com/MatthewOsorio/ai-job-hunter/pull/35","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatthewOsorio%2Fai-job-hunter/issues/35","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/35/packages"}},{"old_version":"1.21.2","new_version":"1.22.2","update_type":"minor","path":null,"pr_created_at":"2026-05-30T06:37:29.000Z","version_change":"1.21.2 → 1.22.2","issue":{"uuid":"4553577478","node_id":"PR_kwDOSrKG-87g54qi","number":6,"state":"open","title":"chore(deps): bump the minor-and-patch group with 30 updates","user":"dependabot[bot]","labels":["size/S"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-30T06:37:29.000Z","updated_at":"2026-05-30T06:37:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":30,"packages":[{"name":"org.jetbrains.kotlin:kotlin-gradle-plugin","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-stdlib","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-stdlib-jdk7","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-stdlib-jdk8","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-reflect","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin:kotlin-bom","old_version":"2.2.0","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"com.google.gms:google-services","old_version":"4.4.2","new_version":"4.4.4"},{"name":"androidx.camera:camera-core","old_version":"1.3.4","new_version":"1.6.1"},{"name":"androidx.camera:camera-camera2","old_version":"1.3.4","new_version":"1.6.1"},{"name":"androidx.camera:camera-lifecycle","old_version":"1.3.4","new_version":"1.6.1"},{"name":"androidx.camera:camera-view","old_version":"1.3.4","new_version":"1.6.1"},{"name":"androidx.appcompat:appcompat","old_version":"1.7.0","new_version":"1.7.1"},{"name":"androidx.browser:browser","old_version":"1.8.0","new_version":"1.10.0"},{"name":"androidx.startup:startup-runtime","old_version":"1.1.1","new_version":"1.2.0"},{"name":"com.google.android.material:material","old_version":"1.12.0","new_version":"1.14.0","repository_url":"https://github.com/material-components/material-components-android"},{"name":"androidx.constraintlayout:constraintlayout","old_version":"2.1.4","new_version":"2.2.1"},{"name":"androidx.recyclerview:recyclerview","old_version":"1.3.2","new_version":"1.4.0"},{"name":"com.github.li-xiaojun:XPopup","old_version":"2.9.19","new_version":"2.10.0"},{"name":"com.github.bumptech.glide:glide","old_version":"5.0.5","new_version":"5.0.7","repository_url":"https://github.com/bumptech/glide"},{"name":"com.squareup.okhttp3:okhttp","old_version":"5.1.0","new_version":"5.3.2","repository_url":"https://github.com/square/okhttp"},{"name":"io.reactivex.rxjava3:rxjava","old_version":"3.1.11","new_version":"3.1.12","repository_url":"https://github.com/ReactiveX/RxJava"},{"name":"com.vanniktech:android-image-cropper","old_version":"4.6.0","new_version":"4.7.0","repository_url":"https://github.com/CanHub/Android-Image-Cropper"},{"name":"org.jsoup:jsoup","old_version":"1.21.2","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-core","old_version":"1.10.2","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"com.github.CarGuo.GSYVideoPlayer:gsyvideoplayer","old_version":"v10.0.0","new_version":"v10.2.1","repository_url":"https://github.com/CarGuo/GSYVideoPlayer"},{"name":"com.airbnb.android:lottie","old_version":"6.6.2","new_version":"6.7.1","repository_url":"https://github.com/airbnb/lottie-android"},{"name":"com.google.code.gson:gson","old_version":"2.8.9","new_version":"2.14.0","repository_url":"https://github.com/google/gson"},{"name":"com.github.jenly1314:zxing-lite","old_version":"3.2.0","new_version":"3.4.1","repository_url":"https://github.com/jenly1314/ZXingLite"},{"name":"net.zetetic:sqlcipher-android","old_version":"4.9.0","new_version":"4.16.0","repository_url":"https://github.com/sqlcipher/sqlcipher-android"},{"name":"androidx.sqlite:sqlite-ktx","old_version":"2.5.1","new_version":"2.6.2"}],"path":null,"ecosystem":"maven"},"body":"Bumps the minor-and-patch group with 30 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| [org.jetbrains.kotlin:kotlin-stdlib](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| [org.jetbrains.kotlin:kotlin-stdlib-jdk7](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| [org.jetbrains.kotlin:kotlin-stdlib-jdk8](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| [org.jetbrains.kotlin:kotlin-reflect](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| [org.jetbrains.kotlin:kotlin-bom](https://github.com/JetBrains/kotlin) | `2.2.0` | `2.3.21` |\n| com.google.gms:google-services | `4.4.2` | `4.4.4` |\n| androidx.camera:camera-core | `1.3.4` | `1.6.1` |\n| androidx.camera:camera-camera2 | `1.3.4` | `1.6.1` |\n| androidx.camera:camera-lifecycle | `1.3.4` | `1.6.1` |\n| androidx.camera:camera-view | `1.3.4` | `1.6.1` |\n| androidx.appcompat:appcompat | `1.7.0` | `1.7.1` |\n| androidx.browser:browser | `1.8.0` | `1.10.0` |\n| androidx.startup:startup-runtime | `1.1.1` | `1.2.0` |\n| [com.google.android.material:material](https://github.com/material-components/material-components-android) | `1.12.0` | `1.14.0` |\n| androidx.constraintlayout:constraintlayout | `2.1.4` | `2.2.1` |\n| androidx.recyclerview:recyclerview | `1.3.2` | `1.4.0` |\n| com.github.li-xiaojun:XPopup | `2.9.19` | `2.10.0` |\n| [com.github.bumptech.glide:glide](https://github.com/bumptech/glide) | `5.0.5` | `5.0.7` |\n| [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) | `5.1.0` | `5.3.2` |\n| [io.reactivex.rxjava3:rxjava](https://github.com/ReactiveX/RxJava) | `3.1.11` | `3.1.12` |\n| [com.vanniktech:android-image-cropper](https://github.com/CanHub/Android-Image-Cropper) | `4.6.0` | `4.7.0` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.21.2` | `1.22.2` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-core](https://github.com/Kotlin/kotlinx.coroutines) | `1.10.2` | `1.11.0` |\n| [com.github.CarGuo.GSYVideoPlayer:gsyvideoplayer](https://github.com/CarGuo/GSYVideoPlayer) | `v10.0.0` | `v10.2.1` |\n| [com.airbnb.android:lottie](https://github.com/airbnb/lottie-android) | `6.6.2` | `6.7.1` |\n| [com.google.code.gson:gson](https://github.com/google/gson) | `2.8.9` | `2.14.0` |\n| [com.github.jenly1314:zxing-lite](https://github.com/jenly1314/ZXingLite) | `3.2.0` | `3.4.1` |\n| [net.zetetic:sqlcipher-android](https://github.com/sqlcipher/sqlcipher-android) | `4.9.0` | `4.16.0` |\n| androidx.sqlite:sqlite-ktx | `2.5.1` | `2.6.2` |\n\nUpdates `org.jetbrains.kotlin:kotlin-gradle-plugin` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-gradle-plugin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85628\"\u003e\u003ccode\u003eKT-85628\u003c/code\u003e\u003c/a\u003e KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/fea1ad8c18995b80d1ca0e3917056104613d23db\"\u003e\u003ccode\u003efea1ad8\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.3.21-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/09c341e858b8f70d92955fc6b67d6a04962760b4\"\u003e\u003ccode\u003e09c341e\u003c/code\u003e\u003c/a\u003e disable swift export execution tests in order to update macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/67a08681cdd53b318217e6f35d835e0ab3b2e31c\"\u003e\u003ccode\u003e67a0868\u003c/code\u003e\u003c/a\u003e Avoid accessing KotlinNativeLink taskProvider when task was not executed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/f89e5dbc1867714116e17be1066d6c68e30cc2d4\"\u003e\u003ccode\u003ef89e5db\u003c/code\u003e\u003c/a\u003e [K/N] Disable TSAN in runtime tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/45d6c859c027c4e82b14b4861e36bc125600e2b0\"\u003e\u003ccode\u003e45d6c85\u003c/code\u003e\u003c/a\u003e [K/N] Don't generate generic safe casts for Objective-C types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9261a6f0790b7504e0223e9e0a0dd242fe0cc3f7\"\u003e\u003ccode\u003e9261a6f\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85508\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/c9ab9db37a191f2eb1ce0f5b7ff502ca9d4b3a0d\"\u003e\u003ccode\u003ec9ab9db\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85399\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/502e84484e520fbe1a93958be8da97e06a04d7ed\"\u003e\u003ccode\u003e502e844\u003c/code\u003e\u003c/a\u003e Explain: fix for destructuring declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0c26485d83f532aa8afbb868895061b7132fd7c8\"\u003e\u003ccode\u003e0c26485\u003c/code\u003e\u003c/a\u003e Explain: fix for object literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/68a9e3f99fcd59c5440970f5f34aff09ce462a69\"\u003e\u003ccode\u003e68a9e3f\u003c/code\u003e\u003c/a\u003e [minor] fix testdata name in explain test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.3.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-stdlib` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-stdlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-stdlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85628\"\u003e\u003ccode\u003eKT-85628\u003c/code\u003e\u003c/a\u003e KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/fea1ad8c18995b80d1ca0e3917056104613d23db\"\u003e\u003ccode\u003efea1ad8\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.3.21-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/09c341e858b8f70d92955fc6b67d6a04962760b4\"\u003e\u003ccode\u003e09c341e\u003c/code\u003e\u003c/a\u003e disable swift export execution tests in order to update macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/67a08681cdd53b318217e6f35d835e0ab3b2e31c\"\u003e\u003ccode\u003e67a0868\u003c/code\u003e\u003c/a\u003e Avoid accessing KotlinNativeLink taskProvider when task was not executed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/f89e5dbc1867714116e17be1066d6c68e30cc2d4\"\u003e\u003ccode\u003ef89e5db\u003c/code\u003e\u003c/a\u003e [K/N] Disable TSAN in runtime tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/45d6c859c027c4e82b14b4861e36bc125600e2b0\"\u003e\u003ccode\u003e45d6c85\u003c/code\u003e\u003c/a\u003e [K/N] Don't generate generic safe casts for Objective-C types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9261a6f0790b7504e0223e9e0a0dd242fe0cc3f7\"\u003e\u003ccode\u003e9261a6f\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85508\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/c9ab9db37a191f2eb1ce0f5b7ff502ca9d4b3a0d\"\u003e\u003ccode\u003ec9ab9db\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85399\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/502e84484e520fbe1a93958be8da97e06a04d7ed\"\u003e\u003ccode\u003e502e844\u003c/code\u003e\u003c/a\u003e Explain: fix for destructuring declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0c26485d83f532aa8afbb868895061b7132fd7c8\"\u003e\u003ccode\u003e0c26485\u003c/code\u003e\u003c/a\u003e Explain: fix for object literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/68a9e3f99fcd59c5440970f5f34aff09ce462a69\"\u003e\u003ccode\u003e68a9e3f\u003c/code\u003e\u003c/a\u003e [minor] fix testdata name in explain test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.3.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-stdlib-jdk7` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-stdlib-jdk7's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-stdlib-jdk7's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85628\"\u003e\u003ccode\u003eKT-85628\u003c/code\u003e\u003c/a\u003e KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/fea1ad8c18995b80d1ca0e3917056104613d23db\"\u003e\u003ccode\u003efea1ad8\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.3.21-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/09c341e858b8f70d92955fc6b67d6a04962760b4\"\u003e\u003ccode\u003e09c341e\u003c/code\u003e\u003c/a\u003e disable swift export execution tests in order to update macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/67a08681cdd53b318217e6f35d835e0ab3b2e31c\"\u003e\u003ccode\u003e67a0868\u003c/code\u003e\u003c/a\u003e Avoid accessing KotlinNativeLink taskProvider when task was not executed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/f89e5dbc1867714116e17be1066d6c68e30cc2d4\"\u003e\u003ccode\u003ef89e5db\u003c/code\u003e\u003c/a\u003e [K/N] Disable TSAN in runtime tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/45d6c859c027c4e82b14b4861e36bc125600e2b0\"\u003e\u003ccode\u003e45d6c85\u003c/code\u003e\u003c/a\u003e [K/N] Don't generate generic safe casts for Objective-C types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9261a6f0790b7504e0223e9e0a0dd242fe0cc3f7\"\u003e\u003ccode\u003e9261a6f\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85508\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/c9ab9db37a191f2eb1ce0f5b7ff502ca9d4b3a0d\"\u003e\u003ccode\u003ec9ab9db\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85399\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/502e84484e520fbe1a93958be8da97e06a04d7ed\"\u003e\u003ccode\u003e502e844\u003c/code\u003e\u003c/a\u003e Explain: fix for destructuring declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0c26485d83f532aa8afbb868895061b7132fd7c8\"\u003e\u003ccode\u003e0c26485\u003c/code\u003e\u003c/a\u003e Explain: fix for object literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/68a9e3f99fcd59c5440970f5f34aff09ce462a69\"\u003e\u003ccode\u003e68a9e3f\u003c/code\u003e\u003c/a\u003e [minor] fix testdata name in explain test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.3.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-stdlib-jdk8` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-stdlib-jdk8's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-stdlib-jdk8's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85628\"\u003e\u003ccode\u003eKT-85628\u003c/code\u003e\u003c/a\u003e KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/fea1ad8c18995b80d1ca0e3917056104613d23db\"\u003e\u003ccode\u003efea1ad8\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.3.21-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/09c341e858b8f70d92955fc6b67d6a04962760b4\"\u003e\u003ccode\u003e09c341e\u003c/code\u003e\u003c/a\u003e disable swift export execution tests in order to update macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/67a08681cdd53b318217e6f35d835e0ab3b2e31c\"\u003e\u003ccode\u003e67a0868\u003c/code\u003e\u003c/a\u003e Avoid accessing KotlinNativeLink taskProvider when task was not executed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/f89e5dbc1867714116e17be1066d6c68e30cc2d4\"\u003e\u003ccode\u003ef89e5db\u003c/code\u003e\u003c/a\u003e [K/N] Disable TSAN in runtime tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/45d6c859c027c4e82b14b4861e36bc125600e2b0\"\u003e\u003ccode\u003e45d6c85\u003c/code\u003e\u003c/a\u003e [K/N] Don't generate generic safe casts for Objective-C types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9261a6f0790b7504e0223e9e0a0dd242fe0cc3f7\"\u003e\u003ccode\u003e9261a6f\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85508\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/c9ab9db37a191f2eb1ce0f5b7ff502ca9d4b3a0d\"\u003e\u003ccode\u003ec9ab9db\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85399\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/502e84484e520fbe1a93958be8da97e06a04d7ed\"\u003e\u003ccode\u003e502e844\u003c/code\u003e\u003c/a\u003e Explain: fix for destructuring declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0c26485d83f532aa8afbb868895061b7132fd7c8\"\u003e\u003ccode\u003e0c26485\u003c/code\u003e\u003c/a\u003e Explain: fix for object literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/68a9e3f99fcd59c5440970f5f34aff09ce462a69\"\u003e\u003ccode\u003e68a9e3f\u003c/code\u003e\u003c/a\u003e [minor] fix testdata name in explain test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.3.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-reflect` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-reflect's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-reflect's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85628\"\u003e\u003ccode\u003eKT-85628\u003c/code\u003e\u003c/a\u003e KGP: composite build FUS metrics fail on access of 'configurationTimeMetrics'\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/fea1ad8c18995b80d1ca0e3917056104613d23db\"\u003e\u003ccode\u003efea1ad8\u003c/code\u003e\u003c/a\u003e Add ChangeLog for 2.3.21-RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/09c341e858b8f70d92955fc6b67d6a04962760b4\"\u003e\u003ccode\u003e09c341e\u003c/code\u003e\u003c/a\u003e disable swift export execution tests in order to update macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/67a08681cdd53b318217e6f35d835e0ab3b2e31c\"\u003e\u003ccode\u003e67a0868\u003c/code\u003e\u003c/a\u003e Avoid accessing KotlinNativeLink taskProvider when task was not executed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/f89e5dbc1867714116e17be1066d6c68e30cc2d4\"\u003e\u003ccode\u003ef89e5db\u003c/code\u003e\u003c/a\u003e [K/N] Disable TSAN in runtime tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/45d6c859c027c4e82b14b4861e36bc125600e2b0\"\u003e\u003ccode\u003e45d6c85\u003c/code\u003e\u003c/a\u003e [K/N] Don't generate generic safe casts for Objective-C types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/9261a6f0790b7504e0223e9e0a0dd242fe0cc3f7\"\u003e\u003ccode\u003e9261a6f\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85508\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/c9ab9db37a191f2eb1ce0f5b7ff502ca9d4b3a0d\"\u003e\u003ccode\u003ec9ab9db\u003c/code\u003e\u003c/a\u003e [K/N][tests] Add a reproducer for KT-85399\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/502e84484e520fbe1a93958be8da97e06a04d7ed\"\u003e\u003ccode\u003e502e844\u003c/code\u003e\u003c/a\u003e Explain: fix for destructuring declarations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/0c26485d83f532aa8afbb868895061b7132fd7c8\"\u003e\u003ccode\u003e0c26485\u003c/code\u003e\u003c/a\u003e Explain: fix for object literals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JetBrains/kotlin/commit/68a9e3f99fcd59c5440970f5f34aff09ce462a69\"\u003e\u003ccode\u003e68a9e3f\u003c/code\u003e\u003c/a\u003e [minor] fix testdata name in explain test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JetBrains/kotlin/compare/v2.2.0...v2.3.21\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlin:kotlin-bom` from 2.2.0 to 2.3.21\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/releases\"\u003eorg.jetbrains.kotlin:kotlin-bom's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eKotlin 2.3.21\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error location\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Statistics (FUS)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md\"\u003eorg.jetbrains.kotlin:kotlin-bom's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.21\u003c/h2\u003e\n\u003ch3\u003eBackend. Wasm\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84610\"\u003e\u003ccode\u003eKT-84610\u003c/code\u003e\u003c/a\u003e [Wasm] Failed to compile klibs in IC mode\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCompiler\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84566\"\u003e\u003ccode\u003eKT-84566\u003c/code\u003e\u003c/a\u003e Prevent launching Default dispatcher threads from IJ SDK in kotlin compiler\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85358\"\u003e\u003ccode\u003eKT-85358\u003c/code\u003e\u003c/a\u003e Native: roll back the workaround for KT-84678 once MapLibre has been properly fixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85626\"\u003e\u003ccode\u003eKT-85626\u003c/code\u003e\u003c/a\u003e  \u003ccode\u003e@JvmRecord\u003c/code\u003e in commonMain breaks compileCommonMainKotlinMetadata with \u0026quot;Cannot access 'java.lang.Record'\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85405\"\u003e\u003ccode\u003eKT-85405\u003c/code\u003e\u003c/a\u003e Postpone/Revert \u003ccode\u003eDontIgnoreUpperBoundViolatedOnImplicitArguments\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84678\"\u003e\u003ccode\u003eKT-84678\u003c/code\u003e\u003c/a\u003e K/N: Undefined symbol from SPM-added ObjC frameworks when linking iOS target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85021\"\u003e\u003ccode\u003eKT-85021\u003c/code\u003e\u003c/a\u003e False positive SUBCLASS_CANT_CALL_COMPANION_PROTECTED_NON_STATIC error in multi-module project\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavaScript\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-82395\"\u003e\u003ccode\u003eKT-82395\u003c/code\u003e\u003c/a\u003e Support top-level declarations from compiler plugins in JS incremental compilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84475\"\u003e\u003ccode\u003eKT-84475\u003c/code\u003e\u003c/a\u003e K/JS: false-positive exportability warnings in multi-module project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84633\"\u003e\u003ccode\u003eKT-84633\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u0026quot;Serializer for class not found\u0026quot; error when IR output granularity is \u003ccode\u003ewhole-program\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85047\"\u003e\u003ccode\u003eKT-85047\u003c/code\u003e\u003c/a\u003e Kotlin/JS: \u003ccode\u003e@JsStatic\u003c/code\u003e on suspend fun of class companion generates incorrect d.ts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84517\"\u003e\u003ccode\u003eKT-84517\u003c/code\u003e\u003c/a\u003e K/JS: bad mappings data in outputted Kotlin stdlib source map\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLibraries\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-71848\"\u003e\u003ccode\u003eKT-71848\u003c/code\u003e\u003c/a\u003e Kotlinx.metadata: Add \u003ccode\u003eCompilerPluginData\u003c/code\u003e into Km API\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNative. C and ObjC Import\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85399\"\u003e\u003ccode\u003eKT-85399\u003c/code\u003e\u003c/a\u003e Kotlin/Native: TypeCastException when casting ObjC Protocol MetaClass with genericSafeCasts enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85508\"\u003e\u003ccode\u003eKT-85508\u003c/code\u003e\u003c/a\u003e K/N: TypeCastException when using nw_parameters_create_secure_tcp block parameter on 2.3.20\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84729\"\u003e\u003ccode\u003eKT-84729\u003c/code\u003e\u003c/a\u003e Update Gradle plugin-publish version to enable configuration cache badge on Gradle plugins portal\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Gradle. Compiler plugins\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85257\"\u003e\u003ccode\u003eKT-85257\u003c/code\u003e\u003c/a\u003e AGP/Compose: MergeMappingFileTask clears R8 artifacts due to \u003ccode\u003e@OutputDirectory\u003c/code\u003e annotation on AGP 9.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTools. Scripts\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85105\"\u003e\u003ccode\u003eKT-85105\u003c/code\u003e\u003c/a\u003e Scripts: JVM backend internal error (IR lowering) when scratch file contains anonymous object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85103\"\u003e\u003ccode\u003eKT-85103\u003c/code\u003e\u003c/a\u003e Exception while generating code when explain destructuring decls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-84842\"\u003e\u003ccode\u003eKT-84842\u003c/code\u003e\u003c/a\u003e scriptCompilationClasspathFromContext behavior changed from 2.3.10 to 2.3.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KT-85029\"\u003e\u003ccode\u003eKT-85029\u003c/code\u003e\u003c/a\u003e Kotlin Scripting: ScriptDiagnostic reports \u0026quot;at null\u0026quot; instead of error lo...\n\n_Description has been truncated_","html_url":"https://github.com/Mininglamp-OSS/octo-android/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mininglamp-OSS%2Focto-android/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"1.18.3","new_version":"1.22.2","update_type":"minor","path":null,"pr_created_at":"2026-05-27T22:48:29.000Z","version_change":"1.18.3 → 1.22.2","issue":{"uuid":"4536269037","node_id":"PR_kwDOSpGRQM7gBUbg","number":12,"state":"closed","title":"build: bump the gradle-minor-patch group across 1 directory with 35 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-28T00:29:40.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-27T22:48:29.000Z","updated_at":"2026-05-28T00:29:50.000Z","time_to_close":6071,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build: bump","group_name":"gradle-minor-patch","update_count":35,"packages":[{"name":"gradle-wrapper","old_version":"8.11.1","new_version":"8.14.5","repository_url":"https://github.com/gradle/gradle"},{"name":"androidx.core:core-ktx","old_version":"1.15.0","new_version":"1.18.0"},{"name":"androidx.lifecycle:lifecycle-runtime-ktx","old_version":"2.8.7","new_version":"2.10.0"},{"name":"androidx.activity:activity-compose","old_version":"1.9.3","new_version":"1.13.0"},{"name":"androidx.navigation:navigation-compose","old_version":"2.8.5","new_version":"2.9.8"},{"name":"androidx.lifecycle:lifecycle-viewmodel-compose","old_version":"2.8.7","new_version":"2.10.0"},{"name":"androidx.lifecycle:lifecycle-runtime-compose","old_version":"2.8.7","new_version":"2.10.0"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-android","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"org.jetbrains.kotlinx:kotlinx-coroutines-test","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/Kotlin/kotlinx.coroutines"},{"name":"io.ktor:ktor-server-core","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.ktor:ktor-server-cio","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.ktor:ktor-server-html-builder","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.ktor:ktor-server-content-negotiation","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.ktor:ktor-serialization-kotlinx-json","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"io.ktor:ktor-server-test-host","old_version":"3.0.3","new_version":"3.5.0","repository_url":"https://github.com/ktorio/ktor"},{"name":"org.jsoup:jsoup","old_version":"1.18.3","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"androidx.test.ext:junit","old_version":"1.2.1","new_version":"1.3.0"},{"name":"androidx.test.espresso:espresso-core","old_version":"3.6.1","new_version":"3.7.0"},{"name":"androidx.datastore:datastore","old_version":"1.1.1","new_version":"1.2.1"},{"name":"androidx.datastore:datastore-preferences","old_version":"1.1.1","new_version":"1.2.1"},{"name":"androidx.room:room-runtime","old_version":"2.6.1","new_version":"2.8.4"},{"name":"androidx.room:room-ktx","old_version":"2.6.1","new_version":"2.8.4"},{"name":"androidx.room:room-compiler","old_version":"2.6.1","new_version":"2.8.4"},{"name":"androidx.room:room-testing","old_version":"2.6.1","new_version":"2.8.4"},{"name":"net.zetetic:sqlcipher-android","old_version":"4.6.1","new_version":"4.16.0","repository_url":"https://github.com/sqlcipher/sqlcipher-android"},{"name":"androidx.sqlite:sqlite","old_version":"2.4.0","new_version":"2.6.2"},{"name":"com.lambdapioneer.argon2kt:argon2kt","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/lambdapioneer/argon2kt"},{"name":"org.robolectric:robolectric","old_version":"4.13","new_version":"4.16.1","repository_url":"https://github.com/robolectric/robolectric"},{"name":"androidx.test:core","old_version":"1.6.1","new_version":"1.7.0"},{"name":"com.android.application","old_version":"8.7.3","new_version":"8.13.2"},{"name":"org.jetbrains.kotlin.android","old_version":"2.0.21","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.compose","old_version":"2.0.21","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jetbrains.kotlin.plugin.serialization","old_version":"2.0.21","new_version":"2.3.21","repository_url":"https://github.com/JetBrains/kotlin"},{"name":"org.jlleitschuh.gradle.ktlint","old_version":"12.1.1","new_version":"12.3.0"},{"name":"com.google.devtools.ksp","old_version":"2.0.21-1.0.28","new_version":"2.3.9","repository_url":"https://github.com/google/ksp"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-minor-patch group with 35 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `8.11.1` | `8.14.5` |\n| androidx.core:core-ktx | `1.15.0` | `1.18.0` |\n| androidx.lifecycle:lifecycle-runtime-ktx | `2.8.7` | `2.10.0` |\n| androidx.activity:activity-compose | `1.9.3` | `1.13.0` |\n| androidx.navigation:navigation-compose | `2.8.5` | `2.9.8` |\n| androidx.lifecycle:lifecycle-viewmodel-compose | `2.8.7` | `2.10.0` |\n| androidx.lifecycle:lifecycle-runtime-compose | `2.8.7` | `2.10.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-android](https://github.com/Kotlin/kotlinx.coroutines) | `1.9.0` | `1.11.0` |\n| [org.jetbrains.kotlinx:kotlinx-coroutines-test](https://github.com/Kotlin/kotlinx.coroutines) | `1.9.0` | `1.11.0` |\n| [io.ktor:ktor-server-core](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [io.ktor:ktor-server-cio](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [io.ktor:ktor-server-html-builder](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [io.ktor:ktor-server-content-negotiation](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [io.ktor:ktor-serialization-kotlinx-json](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [io.ktor:ktor-server-test-host](https://github.com/ktorio/ktor) | `3.0.3` | `3.5.0` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.18.3` | `1.22.2` |\n| androidx.test.ext:junit | `1.2.1` | `1.3.0` |\n| androidx.test.espresso:espresso-core | `3.6.1` | `3.7.0` |\n| androidx.datastore:datastore | `1.1.1` | `1.2.1` |\n| androidx.datastore:datastore-preferences | `1.1.1` | `1.2.1` |\n| androidx.room:room-runtime | `2.6.1` | `2.8.4` |\n| androidx.room:room-ktx | `2.6.1` | `2.8.4` |\n| androidx.room:room-compiler | `2.6.1` | `2.8.4` |\n| androidx.room:room-testing | `2.6.1` | `2.8.4` |\n| [net.zetetic:sqlcipher-android](https://github.com/sqlcipher/sqlcipher-android) | `4.6.1` | `4.16.0` |\n| androidx.sqlite:sqlite | `2.4.0` | `2.6.2` |\n| [com.lambdapioneer.argon2kt:argon2kt](https://github.com/lambdapioneer/argon2kt) | `1.5.0` | `1.6.0` |\n| [org.robolectric:robolectric](https://github.com/robolectric/robolectric) | `4.13` | `4.16.1` |\n| androidx.test:core | `1.6.1` | `1.7.0` |\n| com.android.application | `8.7.3` | `8.13.2` |\n| [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.21` |\n| [org.jetbrains.kotlin.plugin.compose](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.21` |\n| [org.jetbrains.kotlin.plugin.serialization](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.21` |\n| org.jlleitschuh.gradle.ktlint | `12.1.1` | `12.3.0` |\n| [com.google.devtools.ksp](https://github.com/google/ksp) | `2.0.21-1.0.28` | `2.3.9` |\n\n\nUpdates `gradle-wrapper` from 8.11.1 to 8.14.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.14.5\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 8.14.5.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJava 24 support\u003c/li\u003e\n\u003cli\u003eGraalVM Native Image toolchain selection\u003c/li\u003e\n\u003cli\u003eEnhancements to test reporting\u003c/li\u003e\n\u003cli\u003eBuild Authoring improvements\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/8.14.5/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/liutikas\"\u003eAurimas\u003c/a\u003e,\n\u003ca href=\"https://github.com/benjamin-bader\"\u003eBen Bader\u003c/a\u003e,\n\u003ca href=\"https://github.com/Vampire\"\u003eBjörn Kautler\u003c/a\u003e,\n\u003ca href=\"https://github.com/chandre92\"\u003echandre92\u003c/a\u003e,\n\u003ca href=\"https://github.com/dlehammer\"\u003eDaniel Hammer\u003c/a\u003e,\n\u003ca href=\"https://github.com/danishnawab\"\u003eDanish Nawab\u003c/a\u003e,\n\u003ca href=\"https://github.com/DreierF\"\u003eFlorian Dreier\u003c/a\u003e,\n\u003ca href=\"https://github.com/Mengmeiivy\"\u003eIvy Chen\u003c/a\u003e,\n\u003ca href=\"https://github.com/jjohannes\"\u003eJendrik Johannes\u003c/a\u003e,\n\u003ca href=\"https://github.com/jimmy1995-gu\"\u003ejimmy1995-gu\u003c/a\u003e,\n\u003ca href=\"https://github.com/vmadalin\"\u003eMadalin Valceleanu\u003c/a\u003e,\n\u003ca href=\"https://github.com/NaMinhyeok\"\u003eNa Minhyeok\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 8.14.5 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew wrapper --gradle-version=8.14.5 \u0026amp;\u0026amp; ./gradlew wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/8.14.5/userguide/upgrading_version_8.html\"\u003e8.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/8.14.5/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e8.14.4\u003c/h2\u003e\n\u003cp\u003eThis is a patch release for 8.14. We recommend using 8.14.4 instead of 8.14.\u003c/p\u003e\n\u003cp\u003eThis release addresses two security vulnerabilities:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/security/advisories/GHSA-mqwm-5m85-gmcv\"\u003eFailure to disable repositories failing to answer can expose builds to malicious artifacts\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/security/advisories/GHSA-w78c-w6vf-rw82\"\u003eFailure to disable repositories with unknown host can expose builds to malicious artifacts\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/62345becae08b13e793521816d585102fea66398\"\u003e\u003ccode\u003e62345be\u003c/code\u003e\u003c/a\u003e Finalize release notes for 8.14.5 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37829\"\u003e#37829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/38049c286691bf85cee542f8b2f8dc1cc54dd25d\"\u003e\u003ccode\u003e38049c2\u003c/code\u003e\u003c/a\u003e Finalize release notes for 8.14.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f3781397d4ad84fcc034f239efe7dc350f564741\"\u003e\u003ccode\u003ef378139\u003c/code\u003e\u003c/a\u003e Update jdks.yaml (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37780\"\u003e#37780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/4e739b5959a5b0f1c5962cd387143c91b27343d3\"\u003e\u003ccode\u003e4e739b5\u003c/code\u003e\u003c/a\u003e Update jdks.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/d94136aadaa292280b860e5032e7dddc6e116112\"\u003e\u003ccode\u003ed94136a\u003c/code\u003e\u003c/a\u003e Update jdks.yaml (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37704\"\u003e#37704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/a2f6942e453c80634fca32ba0e11a9ce8b7baf48\"\u003e\u003ccode\u003ea2f6942\u003c/code\u003e\u003c/a\u003e Update jdks.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/28df2639ea8752218176288ef6a9e678c779f73b\"\u003e\u003ccode\u003e28df263\u003c/code\u003e\u003c/a\u003e Backport exclude bugfix (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37559\"\u003e#37559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/e03dca12e7b77f5f6ec00f7d81eb8734f7596d52\"\u003e\u003ccode\u003ee03dca1\u003c/code\u003e\u003c/a\u003e Upgrade BouncyCastle to 1.84 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37656\"\u003e#37656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/987d1a32e4f3d97b14413e9ee2742df820ec6beb\"\u003e\u003ccode\u003e987d1a3\u003c/code\u003e\u003c/a\u003e Bump the Jackson version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/56e392c0f0b9f16bcba1c03f7bd0bae08a82556a\"\u003e\u003ccode\u003e56e392c\u003c/code\u003e\u003c/a\u003e Bump Bouncycastle to 1.84\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v8.11.1...v8.14.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `androidx.core:core-ktx` from 1.15.0 to 1.18.0\n\nUpdates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.8.7 to 2.10.0\n\nUpdates `androidx.activity:activity-compose` from 1.9.3 to 1.13.0\n\nUpdates `androidx.navigation:navigation-compose` from 2.8.5 to 2.9.8\n\nUpdates `androidx.lifecycle:lifecycle-viewmodel-compose` from 2.8.7 to 2.10.0\n\nUpdates `androidx.lifecycle:lifecycle-runtime-compose` from 2.8.7 to 2.10.0\n\nUpdates `androidx.lifecycle:lifecycle-runtime-compose` from 2.8.7 to 2.10.0\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-android` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-test` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jetbrains.kotlinx:kotlinx-coroutines-test` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/releases\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B\nefore, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md\"\u003eorg.jetbrains.kotlinx:kotlinx-coroutines-test's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.11.0\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes and deprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003ePromise\u003c/code\u003e-related functions from JS and Wasm/JS to the new \u003ccode\u003eweb\u003c/code\u003e target. On Wasm/JS, this is a breaking change. Before the change, \u003ccode\u003ePromise\u003c/code\u003e on Wasm/JS could work with arbitrary Kotlin types, but now, only \u003ccode\u003eJsAny\u003c/code\u003e subtypes are accepted (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4563\"\u003e#4563\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eChanged handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. Before, exceptions were logged, but now, they are reported to the JS runtime (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4451\"\u003e#4451\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4631\"\u003e#4631\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eDeprecated using \u003ccode\u003eCoroutineDispatcher\u003c/code\u003e as the coroutine context key; now, \u003ccode\u003eContinuationInterceptor\u003c/code\u003e has to be used instead (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4333\"\u003e#4333\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdvanced the deprecation levels on \u003ccode\u003ekotlinx-coroutines-test\u003c/code\u003e APIs (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4604\"\u003e#4604\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded lint functions that mark passing a \u003ccode\u003eJob\u003c/code\u003e to coroutine builders as deprecated (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4435\"\u003e#4435\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes and improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003erunBlocking\u003c/code\u003e in code shared between JVM and Native (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4368\"\u003e#4368\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ecallsInPlace(EXACTLY_ONCE)\u003c/code\u003e contract to \u003ccode\u003esuspendCancellableCoroutine\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4574\"\u003e#4574\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eflowOn\u003c/code\u003e incorrectly handling \u003ccode\u003eThreadContextElement\u003c/code\u003e updates (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4403\"\u003e#4403\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed exceptions in user-supplied \u003ccode\u003eThread.UncaughtExceptionHandler\u003c/code\u003e instances causing the internal coroutines machinery to fail (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4516\"\u003e#4516\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCoroutineDispatcher.asScheduler\u003c/code\u003e in the RxJava integration not cancelling outstanding work when a \u003ccode\u003eWorker\u003c/code\u003e gets cancelled, which led to memory leaks in some scenarios (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4615\"\u003e#4615\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSharedFlow\u003c/code\u003e entering an invalid state when a subscriber and an emitter are cancelled simultaneously (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4583\"\u003e#4583\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed an R8 optimization leading to \u003ccode\u003eshareIn\u003c/code\u003e/\u003ccode\u003estateIn\u003c/code\u003e coroutines getting garbage-collected (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4646\"\u003e#4646\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/solevic\"\u003e\u003ccode\u003e@​solevic\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSmall additions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eCompletableDeferred.asDeferred\u003c/code\u003e for obtaining a read-only \u003ccode\u003eDeferred\u003c/code\u003e view (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4408\"\u003e#4408\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSharedFlow.asFlow\u003c/code\u003e for obtaining a \u003ccode\u003eFlow\u003c/code\u003e view with hidden hot flow semantics (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4530\"\u003e#4530\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/g000sha256\"\u003e\u003ccode\u003e@​g000sha256\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow.collectLatest\u003c/code\u003e overload returning \u003ccode\u003eNothing\u003c/code\u003e to assist with finding unreachable code (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4454\"\u003e#4454\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eReceiveChannel.consumeTo\u003c/code\u003e for consuming a \u003ccode\u003eReceiveChannel\u003c/code\u003e into a \u003ccode\u003eMutableCollection\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4520\"\u003e#4520\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e overload returning a \u003ccode\u003eStateFlow\u0026lt;T\u0026gt;\u003c/code\u003e, similar to \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;.onSubscription\u003c/code\u003e returning \u003ccode\u003eSharedFlow\u0026lt;T\u0026gt;\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4275\"\u003e#4275\u003c/a\u003e). Thanks, \u003ca href=\"https://github.com/xit0c\"\u003e\u003ccode\u003e@​xit0c\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003eAdded terminal \u003ccode\u003eFlow\u003c/code\u003e operators for collecting a \u003ccode\u003eFlow\u003c/code\u003e to a \u003ccode\u003eMap\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1541\"\u003e#1541\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog relative to version 1.11.0\u003c/h3\u003e\n\u003cp\u003eNo changes, only the version is increased.\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc02\u003c/h2\u003e\n\u003cp\u003eRestored binary compatibility with 1.10.2 and older versions on Wasm/JS for usages of \u003ccode\u003ePromise\u003c/code\u003e-related functions (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eVersion 1.11.0-rc01\u003c/h2\u003e\n\u003ch3\u003eVarious\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKotlin was updated to 2.2.20 (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4545\"\u003e#4545\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eImproved the published jar files (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3842\"\u003e#3842\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4599\"\u003e#4599\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eVarious documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4433\"\u003e#4433\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4596\"\u003e#4596\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/8564f65764d3d05893cec026c6e94250e2b23874\"\u003e\u003ccode\u003e8564f65\u003c/code\u003e\u003c/a\u003e Version 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/a4c6af96c15fe30f5d4e8b810ea74f8babd5805c\"\u003e\u003ccode\u003ea4c6af9\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/ef917b460aa741691fbf991ee1b813049cae18c9\"\u003e\u003ccode\u003eef917b4\u003c/code\u003e\u003c/a\u003e KT-84955: mark apple x64 tagets as deprecated error (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4645\"\u003e#4645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/5ebc421e341bf2ddce734d369da87df1985e80bd\"\u003e\u003ccode\u003e5ebc421\u003c/code\u003e\u003c/a\u003e Update the release procedure description (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4670\"\u003e#4670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/95f46a073bc4a1230352108cea1835fd22219a80\"\u003e\u003ccode\u003e95f46a0\u003c/code\u003e\u003c/a\u003e Remove old maven repository settings (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4672\"\u003e#4672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/b4f4f0aa6acb692f3fbcadd70e4958e3e9d370fc\"\u003e\u003ccode\u003eb4f4f0a\u003c/code\u003e\u003c/a\u003e Fix package name of \u003ccode\u003eToMapCollectionSamplesTest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4674\"\u003e#4674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/86738dca7dc9ac82249abc8206263fa0065ee631\"\u003e\u003ccode\u003e86738dc\u003c/code\u003e\u003c/a\u003e Added templates to the issue creation wizard (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/330fcc221fb583f0b119f34191f735a73b827378\"\u003e\u003ccode\u003e330fcc2\u003c/code\u003e\u003c/a\u003e Version 1.11.0-rc02\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/e31cef6e9f2d26794be7d75ecbf3033b6432d582\"\u003e\u003ccode\u003ee31cef6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/commit/dc6e9f61eaf3a67f4bf474a7987aedc3f16cef37\"\u003e\u003ccode\u003edc6e9f6\u003c/code\u003e\u003c/a\u003e Restore Promise-related functions on Wasm/JS as HIDDEN (\u003ca href=\"https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4661\"\u003e#4661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kotlin/kotlinx.coroutines/compare/1.9.0...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.ktor:ktor-server-core` from 3.0.3 to 3.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/releases\"\u003eio.ktor:ktor-server-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.0\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 14 May 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8421\"\u003eKTOR-8421\u003c/a\u003e Route.contentType should support multiple ContentType\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7961\"\u003eKTOR-7961\u003c/a\u003e Add known TDM headers to the HttpHeaders object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9418\"\u003eKTOR-9418\u003c/a\u003e Support getAs from the root ApplicationConfig\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9559\"\u003eKTOR-9559\u003c/a\u003e DNS configuration for the Apache5 client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9554\"\u003eKTOR-9554\u003c/a\u003e DNS configuration for OkHttp client engine\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9555\"\u003eKTOR-9555\u003c/a\u003e Custom SSE heartbeat function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8914\"\u003eKTOR-8914\u003c/a\u003e Dependency injection: read annotations in function references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8300\"\u003eKTOR-8300\u003c/a\u003e Sessions: Add a way to create a user session shared for all user devices or look up sessions of the same user\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9521\"\u003eKTOR-9521\u003c/a\u003e Upgrade to Kotlin 2.3.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9276\"\u003eKTOR-9276\u003c/a\u003e Make DynamicProviderConfig.authenticateFunction suspend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9491\"\u003eKTOR-9491\u003c/a\u003e Provide parameter validation convenience functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9506\"\u003eKTOR-9506\u003c/a\u003e OpenAPI: Support prefixItems in JsonSchema for tuple type definitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-470\"\u003eKTOR-470\u003c/a\u003e Add an option to not resend the session cookie if the session data wasn't changed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9355\"\u003eKTOR-9355\u003c/a\u003e Deprecate HttpHeaders.AcceptCharset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7659\"\u003eKTOR-7659\u003c/a\u003e Make ktor-network compatible with ES modules for nodejs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9350\"\u003eKTOR-9350\u003c/a\u003e JS: Make ES2015 the default target for tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7578\"\u003eKTOR-7578\u003c/a\u003e Update Digest authentication implementation according to RFC 7616\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9503\"\u003eKTOR-9503\u003c/a\u003e The JacksonConverter.streamRequestBody property name is confusing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9552\"\u003eKTOR-9552\u003c/a\u003e Deprecation notice for io.ktor.server.auth.Principal does not explain what to use instead\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7458\"\u003eKTOR-7458\u003c/a\u003e Jetty Jakarta: Provide an easy way to disable SNI hostname validation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9354\"\u003eKTOR-9354\u003c/a\u003e Websockets: webSocket builder function should return a Route to be describable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9488\"\u003eKTOR-9488\u003c/a\u003e Nonce and hex function performance optimizations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBugfixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9524\"\u003eKTOR-9524\u003c/a\u003e Netty response hangs after connection lost\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9542\"\u003eKTOR-9542\u003c/a\u003e Netty: The request handler runs on worker event loop instead of call event loop since 3.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9531\"\u003eKTOR-9531\u003c/a\u003e Netty server intermittently drops requests after upgrading to 3.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8151\"\u003eKTOR-8151\u003c/a\u003e MicrometerMetrics: \u0026quot;MeterFilters configured after a Meter has been registered\u0026quot; warning when a metric is registered before installing the plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9411\"\u003eKTOR-9411\u003c/a\u003e Darwin throws DarwinHttpRequestException instead of FrameTooBigException\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8320\"\u003eKTOR-8320\u003c/a\u003e CallLogging: plugin usage in testApplication breaks console standard output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8906\"\u003eKTOR-8906\u003c/a\u003e Jackson, with request body streaming on, exhausts Dispatchers.IO\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8709\"\u003eKTOR-8709\u003c/a\u003e Websockets: Unable to close session with a custom CloseReason\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9567\"\u003eKTOR-9567\u003c/a\u003e Flaky UnixSockets on Windows: WSAEOPNOTSUPP from bind()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9183\"\u003eKTOR-9183\u003c/a\u003e A client call wrapped with \u003ccode\u003ewithTimeout\u003c/code\u003e throws a generic CancellationException instead of TimeoutCancellationException\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8199\"\u003eKTOR-8199\u003c/a\u003e Autoreloading: default watch patterns don't match anything when project path contain spaces\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9549\"\u003eKTOR-9549\u003c/a\u003e Kotlin/JS: ktor-ktor-client-core.mjs is incompatible with Vite: toRaw naming conflict\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9544\"\u003eKTOR-9544\u003c/a\u003e Apache: body channel not cancelled when caller scope is cancelled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9546\"\u003eKTOR-9546\u003c/a\u003e HttpClient: cancelling ByteReadChannel body does not propagate to engine\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-455\"\u003eKTOR-455\u003c/a\u003e Content-Disposition additional parameters should be inside quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9500\"\u003eKTOR-9500\u003c/a\u003e RawSourceChannel returns false positive on awaitContent\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-646\"\u003eKTOR-646\u003c/a\u003e Netty engine still print annoying exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9527\"\u003eKTOR-9527\u003c/a\u003e Curl: Freeze when receiving large responses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9460\"\u003eKTOR-9460\u003c/a\u003e Curl: Can't build shared library with Ktor 3.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9483\"\u003eKTOR-9483\u003c/a\u003e Curl: backpressure implementation is never used\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ktorio/ktor/blob/main/CHANGELOG.md\"\u003eio.ktor:ktor-server-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.5.0\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003ePublished 14 May 2026\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8421\"\u003eKTOR-8421\u003c/a\u003e Route.contentType should support multiple ContentType\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7961\"\u003eKTOR-7961\u003c/a\u003e Add known TDM headers to the HttpHeaders object\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9418\"\u003eKTOR-9418\u003c/a\u003e Support getAs from the root ApplicationConfig\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9559\"\u003eKTOR-9559\u003c/a\u003e DNS configuration for the Apache5 client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9554\"\u003eKTOR-9554\u003c/a\u003e DNS configuration for OkHttp client engine\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9555\"\u003eKTOR-9555\u003c/a\u003e Custom SSE heartbeat function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8914\"\u003eKTOR-8914\u003c/a\u003e Dependency injection: read annotations in function references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-8300\"\u003eKTOR-8300\u003c/a\u003e Sessions: Add a way to create a user session shared for all user devices or look up sessions of the same user\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9521\"\u003eKTOR-9521\u003c/a\u003e Upgrade to Kotlin 2.3.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9276\"\u003eKTOR-9276\u003c/a\u003e Make DynamicProviderConfig.authenticateFunction suspend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9491\"\u003eKTOR-9491\u003c/a\u003e Provide parameter validation convenience functions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9506\"\u003eKTOR-9506\u003c/a\u003e OpenAPI: Support prefixItems in JsonSchema for tuple type definitions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-470\"\u003eKTOR-470\u003c/a\u003e Add an option to not resend the session cookie if the session data wasn't changed.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9355\"\u003eKTOR-9355\u003c/a\u003e Deprecate HttpHeaders.AcceptCharset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7659\"\u003eKTOR-7659\u003c/a\u003e Make ktor-network compatible with ES modules for nodejs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-9350\"\u003eKTOR-9350\u003c/a\u003e JS: Make ES2015 the default target for tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://youtrack.jetbrains.com/issue/KTOR-7578\"\u003eKTOR-7578\u003c/a\u003e Update Digest authentication implementation according...\n\n_Description has been truncated_","html_url":"https://github.com/FlintWave/SearchMob/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/FlintWave%2FSearchMob/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"1.21.1","new_version":"1.22.2","update_type":"minor","path":null,"pr_created_at":"2026-05-26T00:48:43.000Z","version_change":"1.21.1 → 1.22.2","issue":{"uuid":"4520412246","node_id":"PR_kwDOAH7_3c7fNx21","number":1231,"state":"open","title":"Bump org.jsoup:jsoup from 1.21.1 to 1.22.2","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":9,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T00:48:43.000Z","updated_at":"2026-06-03T02:42:46.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"org.jsoup:jsoup","old_version":"1.21.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"}],"path":null,"ecosystem":"maven"},"body":"Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.21.1 to 1.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.1\u003c/strong\u003e is out now, adding support for the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and numerous bug fixes and improvements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jsoup.org/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\r\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\r\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\r\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\r\n  \u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eRegex.usingRe2j()\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.22.1 (2026-Jan-01)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\n  \u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eorg.jsoup.helper.Regex.usingRe2j()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an instance method \u003ccode\u003eParser#unescape(String, boolean)\u003c/code\u003e that unescapes HTML entities using the parser's configuration (e.g. to support error tracking), complementing the existing static utility \u003ccode\u003eParser.unescapeEntities(String, boolean)\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded a configurable maximum parser depth (to limit the number of open elements on stack) to both HTML and XML parsers. The HTML parser now defaults to a depth of 512 to match browser behavior, and protect against unbounded stack growth, while the XML parser keeps unlimited depth by default, but can opt into a limit via \u003ccode\u003eorg.jsoup.parser.Parser#setMaxDepth\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2421\"\u003e#2421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added CI coverage for JDK 25 \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2403\"\u003e#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added a CI fuzzer for contextual fragment parsing (in addition to existing full body HTML and XML fuzzers). [oss-fuzz \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/14041\"\u003e#14041\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/google/oss-fuzz/pull/14041\"\u003egoogle/oss-fuzz#14041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet a removal schedule of jsoup 1.24.1 for previously deprecated APIs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously cached child \u003ccode\u003eElements\u003c/code\u003e of an \u003ccode\u003eElement\u003c/code\u003e were not correctly invalidated in \u003ccode\u003eNode#replaceWith(Node)\u003c/code\u003e, which could lead to incorrect results when subsequently calling \u003ccode\u003eElement#children()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2391\"\u003e#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttribute selector values are now compared literally without trimming. Previously, jsoup trimmed whitespace from selector values and from element attribute values, which could cause mismatches with browser behavior (e.g. \u003ccode\u003e[attr=\u0026quot; foo \u0026quot;]\u003c/code\u003e). Now matches align with the CSS specification and browser engines. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2380\"\u003e#2380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using the JDK HttpClient, any system default proxy (\u003ccode\u003eProxySelector.getDefault()\u003c/code\u003e) was ignored. Now, the system proxy is used if a per-request proxy is not set. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2388\"\u003e#2388\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2390\"\u003e#2390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eValidationException\u003c/code\u003e could be thrown in the adoption agency algorithm with particularly broken input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2393\"\u003e#2393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNull characters in the HTML body were not consistently removed; and in foreign content were not correctly replaced. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2395\"\u003e#2395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn \u003ccode\u003eIndexOutOfBoundsException\u003c/code\u003e could be thrown when parsing a body fragment with crafted input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2397\"\u003e#2397\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2406\"\u003e#2406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using StructuralEvaluators (e.g., a \u003ccode\u003eparent child\u003c/code\u003e selector) across many retained threads, their memoized results could also be retained, increasing memory use. These results are now cleared immediately after use, reducing overall memory consumption. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2411\"\u003e#2411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCloning a \u003ccode\u003eParser\u003c/code\u003e now preserves any custom \u003ccode\u003eTagSet\u003c/code\u003e applied to the parser. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2422\"\u003e#2422\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2423\"\u003e#2423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.21.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/Norconex/crawlers/pull/1231","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norconex%2Fcrawlers/issues/1231","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1231/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-24T12:13:12.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4511521588","node_id":"PR_kwDORkrpmc7exlv3","number":34,"state":"closed","title":"build(deps): bump the maven-dependencies group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-31T12:12:56.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-24T12:13:12.000Z","updated_at":"2026-05-31T12:12:58.000Z","time_to_close":604784,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"maven-dependencies","update_count":10,"packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"com.microsoft.playwright:playwright","old_version":"1.58.0","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright-java"},{"name":"com.anthropic:anthropic-java","old_version":"2.19.0","new_version":"2.34.0","repository_url":"https://github.com/anthropics/anthropic-sdk-java"},{"name":"com.fasterxml.jackson.core:jackson-databind","old_version":"2.21.2","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson"},{"name":"org.xerial:sqlite-jdbc","old_version":"3.51.3.0","new_version":"3.53.1.0","repository_url":"https://github.com/xerial/sqlite-jdbc"},{"name":"com.typesafe:config","old_version":"1.4.6","new_version":"1.4.8","repository_url":"https://github.com/lightbend/config"},{"name":"org.slf4j:slf4j-simple","old_version":"2.0.17","new_version":"2.0.18"},{"name":"org.junit.jupiter:junit-jupiter","old_version":"6.0.3","new_version":"6.1.0","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.jline:jline","old_version":"4.0.10","new_version":"4.1.2","repository_url":"https://github.com/jline/jline3"},{"name":"com.google.guava:guava","old_version":"33.5.0-jre","new_version":"33.6.0-jre","repository_url":"https://github.com/google/guava"}],"path":null,"ecosystem":"maven"},"body":"Bumps the maven-dependencies group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [com.microsoft.playwright:playwright](https://github.com/microsoft/playwright-java) | `1.58.0` | `1.60.0` |\n| [com.anthropic:anthropic-java](https://github.com/anthropics/anthropic-sdk-java) | `2.19.0` | `2.34.0` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.21.2` | `2.21.3` |\n| [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) | `3.51.3.0` | `3.53.1.0` |\n| [com.typesafe:config](https://github.com/lightbend/config) | `1.4.6` | `1.4.8` |\n| org.slf4j:slf4j-simple | `2.0.17` | `2.0.18` |\n| [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) | `6.0.3` | `6.1.0` |\n| [org.jline:jline](https://github.com/jline/jline3) | `4.0.10` | `4.1.2` |\n| [com.google.guava:guava](https://github.com/google/guava) | `33.5.0-jre` | `33.6.0-jre` |\n\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.microsoft.playwright:playwright` from 1.58.0 to 1.60.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/playwright-java/releases\"\u003ecom.microsoft.playwright:playwright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.60.0\u003c/h2\u003e\n\u003ch2\u003e🌐 HAR recording on Tracing\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-tracing#tracing-start-har\"\u003etracing.startHar()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-tracing#tracing-stop-har\"\u003etracing.stopHar()\u003c/a\u003e expose HAR recording as a first-class tracing API, with the same \u003ccode\u003econtent\u003c/code\u003e, \u003ccode\u003emode\u003c/code\u003e and \u003ccode\u003eurlFilter\u003c/code\u003e options as \u003ccode\u003erecordHar\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"java\"\u003e\u003ccode\u003econtext.tracing().startHar(Paths.get(\u0026quot;trace.har\u0026quot;));\r\nPage page = context.newPage();\r\npage.navigate(\u0026quot;https://playwright.dev\u0026quot;);\r\ncontext.tracing().stopHar();\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e🪝 Drop API\u003c/h2\u003e\n\u003cp\u003eNew \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-drop\"\u003elocator.drop()\u003c/a\u003e simulates an external drag-and-drop of files or clipboard-like data onto an element. Playwright dispatches \u003ccode\u003edragenter\u003c/code\u003e, \u003ccode\u003edragover\u003c/code\u003e, and \u003ccode\u003edrop\u003c/code\u003e with a synthetic [DataTransfer] in the page context — works cross-browser and is great for testing upload zones:\u003c/p\u003e\n\u003cpre lang=\"java\"\u003e\u003ccode\u003epage.locator(\u0026quot;#dropzone\u0026quot;).drop(new Locator.DropPayload()\r\n    .setFiles(new FilePayload(\u0026quot;note.txt\u0026quot;, \u0026quot;text/plain\u0026quot;, \u0026quot;hello\u0026quot;.getBytes(StandardCharsets.UTF_8))));\r\n\u003cp\u003epage.locator(\u0026quot;#dropzone\u0026quot;).drop(new Locator.DropPayload()\n.setData(Map.of(\n\u0026quot;text/plain\u0026quot;, \u0026quot;hello world\u0026quot;,\n\u0026quot;text/uri-list\u0026quot;, \u0026quot;\u003ca href=\"https://example.com\"\u003ehttps://example.com\u003c/a\u003e\u0026quot;)));\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003e🎯 Aria snapshots\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-pageassertions#page-assertions-to-match-aria-snapshot\"\u003eassertThat(page).matchesAriaSnapshot()\u003c/a\u003e now works on a \u003ca href=\"https://playwright.dev/java/docs/api/class-page\"\u003ePage\u003c/a\u003e, in addition to a \u003ca href=\"https://playwright.dev/java/docs/api/class-locator\"\u003eLocator\u003c/a\u003e — equivalent to asserting against \u003ccode\u003epage.locator(\u0026quot;body\u0026quot;)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eboxes\u003c/code\u003e option on \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-aria-snapshot\"\u003elocator.ariaSnapshot()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-aria-snapshot\"\u003epage.ariaSnapshot()\u003c/a\u003e appends each element's bounding box as \u003ccode\u003e[box=x,y,width,height]\u003c/code\u003e, useful for AI consumption.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew APIs\u003c/h2\u003e\n\u003ch3\u003eBrowser, Context and Page\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvent \u003ca href=\"https://playwright.dev/java/docs/api/class-browser#browser-event-context\"\u003ebrowser.onContext()\u003c/a\u003e — fired when a new context is created on the browser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext\"\u003eBrowserContext\u003c/a\u003e now mirrors lifecycle events from its pages: \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-download\"\u003ebrowserContext.onDownload()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-attached\"\u003ebrowserContext.onFrameAttached()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-detached\"\u003ebrowserContext.onFrameDetached()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-frame-navigated\"\u003ebrowserContext.onFrameNavigated()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-page-close\"\u003ebrowserContext.onPageClose()\u003c/a\u003e, \u003ca href=\"https://playwright.dev/java/docs/api/class-browsercontext#browser-context-event-page-load\"\u003ebrowserContext.onPageLoad()\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLocators and Assertions\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew option \u003ccode\u003edescription\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-get-by-role\"\u003epage.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-get-by-role\"\u003elocator.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-frame#frame-get-by-role\"\u003eframe.getByRole()\u003c/a\u003e / \u003ca href=\"https://playwright.dev/java/docs/api/class-framelocator#frame-locator-get-by-role\"\u003eframeLocator.getByRole()\u003c/a\u003e for matching the \u003ca href=\"https://www.w3.org/TR/wai-aria-1.2/#dfn-accessible-description\"\u003eaccessible description\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003epseudo\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-locatorassertions#locator-assertions-to-have-css\"\u003eassertThat(locator).hasCSS()\u003c/a\u003e reads computed styles from \u003ccode\u003e::before\u003c/code\u003e or \u003ccode\u003e::after\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003estyle\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-locator#locator-highlight\"\u003elocator.highlight()\u003c/a\u003e applies extra inline CSS to the highlight overlay, plus new \u003ca href=\"https://playwright.dev/java/docs/api/class-page#page-hide-highlight\"\u003epage.hideHighlight()\u003c/a\u003e to clear all highlights.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNetwork\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://playwright.dev/java/docs/api/class-websocketroute#web-socket-route-protocols\"\u003ewebSocketRoute.protocols()\u003c/a\u003e returns the WebSocket subprotocols requested by the page.\u003c/li\u003e\n\u003cli\u003eNew option \u003ccode\u003enoDefaults\u003c/code\u003e in \u003ca href=\"https://playwright.dev/java/docs/api/class-browsertype#browser-type-connect-over-cdp\"\u003ebrowserType.connectOverCDP()\u003c/a\u003e disables Playwright's default overrides on the default context (download behavior, focus emulation, media emulation), so attaching to a user's daily-driver browser doesn't disturb its state.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eErrors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNew \u003ca href=\"https://playwright.dev/java/docs/api/class-weberror#web-error-location\"\u003ewebError.location()\u003c/a\u003e mirrors \u003ca href=\"https://playwright.dev/java/docs/api/class-consolemessage#console-message-location\"\u003econsoleMessage.location()\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠️ Other improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTrace Viewer adds a pretty-print toggle for JSON / form request and response bodies in the network details panel.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/55134ef3a5ea7607cd200d4662738a172ae146b8\"\u003e\u003ccode\u003e55134ef\u003c/code\u003e\u003c/a\u003e chore: mark 1.60.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1922\"\u003e#1922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/793b1d3d6152437e21c327f0779370662a1aa0ed\"\u003e\u003ccode\u003e793b1d3\u003c/code\u003e\u003c/a\u003e chore: roll driver to 1.60.0 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1921\"\u003e#1921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/8f66ef1f13e23c48eb43a1805d017866e58fe80d\"\u003e\u003ccode\u003e8f66ef1\u003c/code\u003e\u003c/a\u003e test_docker: align container launch with playwright-browsers (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1919\"\u003e#1919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/dc66e4d1a39c9e04fb001ecd0a30b2a9d9842165\"\u003e\u003ccode\u003edc66e4d\u003c/code\u003e\u003c/a\u003e chore(deps): bump com.google.code.gson:gson from 2.13.2 to 2.14.0 in the all ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/d84a2db0b348ace4c349c3f93fd62646bbf7c929\"\u003e\u003ccode\u003ed84a2db\u003c/code\u003e\u003c/a\u003e chore: roll driver to 1.60.0-beta-1778180503000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1918\"\u003e#1918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/f081667e44b5e1fec2a9f1179af76b687808f684\"\u003e\u003ccode\u003ef081667\u003c/code\u003e\u003c/a\u003e chore: roll to 1.60.0-alpha-2026-05-05 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1916\"\u003e#1916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/5b33729849608904e8fe709ee7a6aa042708f629\"\u003e\u003ccode\u003e5b33729\u003c/code\u003e\u003c/a\u003e chore: reduce CI flakiness across webkit/macOS, ubuntu, windows (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1914\"\u003e#1914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/b01bf64e64ef3cad7252369f1d747709f7507e81\"\u003e\u003ccode\u003eb01bf64\u003c/code\u003e\u003c/a\u003e chore: resolve Object langAliases in function argument types (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1908\"\u003e#1908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/7dbd6cac3b0c3759e25538c8b2c02e4592da95d7\"\u003e\u003ccode\u003e7dbd6ca\u003c/code\u003e\u003c/a\u003e chore: use langAliases from api.json in api generator (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1907\"\u003e#1907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/playwright-java/commit/c3e4b92982067b90bfe297ed06ebbb80d36eb799\"\u003e\u003ccode\u003ec3e4b92\u003c/code\u003e\u003c/a\u003e chore: roll to 1.59.1-beta-1775752988000 (\u003ca href=\"https://redirect.github.com/microsoft/playwright-java/issues/1906\"\u003e#1906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/microsoft/playwright-java/compare/v1.58.0...v1.60.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.anthropic:anthropic-java` from 2.19.0 to 2.34.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/releases\"\u003ecom.anthropic:anthropic-java's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.33.0...v2.34.0\"\u003ev2.33.0...v2.34.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for thinking-token-count beta for estimated tokens in thinking block deltas when streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c814c7a24808d8f82875e02d3cde914fae334321\"\u003ec814c7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etest:\u003c/strong\u003e set required estimatedTokens on BetaThinkingDelta in BetaMessageAccumulatorTest (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/04aedf3c0b19b7c838c04f8fec09e82e4700c48a\"\u003e04aedf3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-05-19)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.32.0...v2.33.0\"\u003ev2.32.0...v2.33.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Add support for self-hosted sandboxes in CMA with sandbox helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/d5193622daa045073af0244a1fec4ae78131c205\"\u003ed519362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add BetaManagedAgentsSearchResultBlock types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/253feaad3ecbf3693985ffa205baa1b51e8972e7\"\u003e253feaa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for cache diagnostics beta (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/7a3223122c72898bcfbbd1385f2aaba1daa1824b\"\u003e7a32231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emcp:\u003c/strong\u003e add mcp tool helpers (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1161\"\u003e#1161\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/5d58812cba85153534f9eabba9bc256d289295c7\"\u003e5d58812\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e spec updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/3cd6b5b9b4948d7f80cc236a8ed360eac24b818c\"\u003e3cd6b5b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.31.0\u003c/h2\u003e\n\u003ch2\u003e2.31.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e improve logging (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/bbd371ef81059aca81f2ec6b62ae279e80b5ab3d\"\u003ebbd371e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/blob/main/CHANGELOG.md\"\u003ecom.anthropic:anthropic-java's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.33.0...v2.34.0\"\u003ev2.33.0...v2.34.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for thinking-token-count beta for estimated tokens in thinking block deltas when streaming (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/c814c7a24808d8f82875e02d3cde914fae334321\"\u003ec814c7a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etest:\u003c/strong\u003e set required estimatedTokens on BetaThinkingDelta in BetaMessageAccumulatorTest (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/04aedf3c0b19b7c838c04f8fec09e82e4700c48a\"\u003e04aedf3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-05-19)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.32.0...v2.33.0\"\u003ev2.32.0...v2.33.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Add support for self-hosted sandboxes in CMA with sandbox helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/d5193622daa045073af0244a1fec4ae78131c205\"\u003ed519362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add BetaManagedAgentsSearchResultBlock types (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/253feaad3ecbf3693985ffa205baa1b51e8972e7\"\u003e253feaa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for cache diagnostics beta (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/7a3223122c72898bcfbbd1385f2aaba1daa1824b\"\u003e7a32231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003emcp:\u003c/strong\u003e add mcp tool helpers (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1161\"\u003e#1161\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/5d58812cba85153534f9eabba9bc256d289295c7\"\u003e5d58812\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e spec updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/3cd6b5b9b4948d7f80cc236a8ed360eac24b818c\"\u003e3cd6b5b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.31.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e improve logging (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/bbd371ef81059aca81f2ec6b62ae279e80b5ab3d\"\u003ebbd371e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix concurrent tests with log output pollution (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/80cf0cf05d6ee2cdae74406d475ce252880cf219\"\u003e80cf0cf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ere-applying logging change (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/68e5c071ca978743e9d45f28f3e564711c33165e\"\u003e68e5c07\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eredact api-key headers in debug logs (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/3bca768637738a646ab1f06d44306ae23391fdd6\"\u003e3bca768\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/765ec0e21cb1e17d8b5adaad24e90b7d1afa96b5\"\u003e\u003ccode\u003e765ec0e\u003c/code\u003e\u003c/a\u003e release: 2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/56c637fc19053bd3088791518ade11f3055bb837\"\u003e\u003ccode\u003e56c637f\u003c/code\u003e\u003c/a\u003e fix(test): set required estimatedTokens on BetaThinkingDelta in BetaMessageAc...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/5d636b2d1aab522b8bb91d1de30901f812d1dc42\"\u003e\u003ccode\u003e5d636b2\u003c/code\u003e\u003c/a\u003e feat(api): Add support for thinking-token-count beta for estimated tokens in ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/ba2d183062ec1efc6558d3e18391803a0c07f183\"\u003e\u003ccode\u003eba2d183\u003c/code\u003e\u003c/a\u003e release: 2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/56312dbf8949cc0793e617ed0707a41557d47c57\"\u003e\u003ccode\u003e56312db\u003c/code\u003e\u003c/a\u003e feat(client): Add support for self-hosted sandboxes in CMA with sandbox helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/72d962276efcdb2107062aed3ca3587f798cadf2\"\u003e\u003ccode\u003e72d9622\u003c/code\u003e\u003c/a\u003e release: 2.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/b99fa176adb4575163b14ad32e49bd59699b0f20\"\u003e\u003ccode\u003eb99fa17\u003c/code\u003e\u003c/a\u003e feat(api): Add support for cache diagnostics beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/54fefaeafaa8d005e584e75709544f0302294fd1\"\u003e\u003ccode\u003e54fefae\u003c/code\u003e\u003c/a\u003e test: re-enable beta skill/version create tests (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-java/issues/1243\"\u003e#1243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/5224fff332f7baadf47b9ee1bc6ca99eb1e30631\"\u003e\u003ccode\u003e5224fff\u003c/code\u003e\u003c/a\u003e chore(api): spec updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/commit/dd0d0dabe9dbf4f9e900da7c44f24597fcfaa0b3\"\u003e\u003ccode\u003edd0d0da\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-java/compare/v2.19.0...v2.34.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.21.2 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.xerial:sqlite-jdbc` from 3.51.3.0 to 3.53.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xerial/sqlite-jdbc/releases\"\u003eorg.xerial:sqlite-jdbc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.53.1.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.1 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/8263322\"\u003e8263322\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔄️ Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erewrite amalgamation_version.sh for POSIX shell (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/52522d0\"\u003e52522d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix android usage (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7ef8e0f\"\u003e7ef8e0f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.14.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/a28d6ce\"\u003ea28d6ce\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.13.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/248e1e9\"\u003e248e1e9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.jreleaser:jreleaser-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/396fdf3\"\u003e396fdf3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.tngtech.archunit:archunit-junit5 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/458abe1\"\u003e458abe1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econditionally bootstrap SLF4J API JAR (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bc7d223\"\u003ebc7d223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake JAVA_CLASSPATH configurable (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/5aa7426\"\u003e5aa7426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Michael Osipov\u003c/p\u003e\n\u003ch2\u003eRelease 3.53.0.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejdbc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexpose wal_autocheckpoint pragma in SQLiteConfig (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/dd2adcc\"\u003edd2adcc\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1397\"\u003e#1397\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/baaf087\"\u003ebaaf087\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epublish multiple classifer jars (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bdd2b64\"\u003ebdd2b64\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1273\"\u003e#1273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter Android support (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7eb6f3f\"\u003e7eb6f3f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1378\"\u003e#1378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.sonatype.central:central-publishing-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/19259e5\"\u003e19259e5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/f572217\"\u003ef572217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/b01674f0bffc45b4c213dd873867e64b9194104b\"\u003e\u003ccode\u003eb01674f\u003c/code\u003e\u003c/a\u003e chore(release): 3.53.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/e6719db995a1fee385f0421cee1eaf78e3587013\"\u003e\u003ccode\u003ee6719db\u003c/code\u003e\u003c/a\u003e chore: update native libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/826332265f8f1069faeb4a61761a8651efaefb0c\"\u003e\u003ccode\u003e8263322\u003c/code\u003e\u003c/a\u003e feat(sqlite): upgrade to sqlite 3.53.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/396fdf30d850ca78dad59bccaafae25c1e86998a\"\u003e\u003ccode\u003e396fdf3\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump org.jreleaser:jreleaser-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/bc7d22394987d5c84706c844f0b95c7856e3f294\"\u003e\u003ccode\u003ebc7d223\u003c/code\u003e\u003c/a\u003e build: conditionally bootstrap SLF4J API JAR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/4cd221a72480a681f91f78f9d8a99372daf423ce\"\u003e\u003ccode\u003e4cd221a\u003c/code\u003e\u003c/a\u003e chore: remove execute bit on non-executable files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/5aa74267e6a01c071ec88d1882de8aeec0d8d22a\"\u003e\u003ccode\u003e5aa7426\u003c/code\u003e\u003c/a\u003e build: make JAVA_CLASSPATH configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/52522d02ee5cffa8f283054d8bf5a5165206caac\"\u003e\u003ccode\u003e52522d0\u003c/code\u003e\u003c/a\u003e refactor: rewrite amalgamation_version.sh for POSIX shell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/a28d6cef66da00f8559445dfacd9f34a871509d6\"\u003e\u003ccode\u003ea28d6ce\u003c/code\u003e\u003c/a\u003e build(deps): bump gummy-bears-api-24 to 0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/458abe135cad6e20f00504418a09946c81c8dbd7\"\u003e\u003ccode\u003e458abe1\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump com.tngtech.archunit:archunit-junit5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/xerial/sqlite-jdbc/compare/3.51.3.0...3.53.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.typesafe:config` from 1.4.6 to 1.4.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lightbend/config/releases\"\u003ecom.typesafe:config's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.8\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: BugOrBroken - partially-shadowed object has nested delayed merge by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/846\"\u003elightbend/config#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.7...v1.4.8\"\u003ehttps://github.com/lightbend/config/compare/v1.4.7...v1.4.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.4.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: adjust description of release process by \u003ca href=\"https://github.com/sebastian-alfers\"\u003e\u003ccode\u003e@​sebastian-alfers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/834\"\u003elightbend/config#834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Update NEWS with latest two releases by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/835\"\u003elightbend/config#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI fixes by \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003elightbend/config#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix spelling by \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/840\"\u003elightbend/config#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: rendering of substituted list with space by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/841\"\u003elightbend/config#841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Don't evaluate substitutions hidden by values from resolved objects by \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/839\"\u003elightbend/config#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop the broken Maven chip in Readme by \u003ca href=\"https://github.com/ennru\"\u003e\u003ccode\u003e@​ennru\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/844\"\u003elightbend/config#844\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003elightbend/config#843\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.6...v1.4.7\"\u003ehttps://github.com/lightbend/config/compare/v1.4.6...v1.4.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lightbend/config/blob/main/NEWS.md\"\u003ecom.typesafe:config's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.4.8: May 5, 2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: BugOrBroken - partially-shadowed object has nested delayed merge, fix for regression introduced in 1.4.7, (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/846\"\u003e#846\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.4.7: April 28, 2026\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003efix: rendering of substituted list with space (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/841\"\u003e#841\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Don't evaluate substitutions hidden by values from resolved objects (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/839\"\u003e#839\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/johanandren\"\u003e\u003ccode\u003e@​johanandren\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: CI improvements (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/843\"\u003e#843\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: spelling improvements by (\u003ca href=\"https://redirect.github.com/lightbend/config/pull/840\"\u003e#840\u003c/a\u003e) thanks to \u003ca href=\"https://github.com/jsoref\"\u003e\u003ccode\u003e@​jsoref\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/b0a1e43b61d11e0f1aeefb939ea8d8576229a684\"\u003e\u003ccode\u003eb0a1e43\u003c/code\u003e\u003c/a\u003e fix: regression - partially-shadowed object has nested delayed merge (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/846\"\u003e#846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/eb80714c074036e723d6cb14929bcb1582ec34a7\"\u003e\u003ccode\u003eeb80714\u003c/code\u003e\u003c/a\u003e Drop the broken Maven chip in Readme (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/833bacb616f92cae73c67d8b7a8ae9f6e44b474c\"\u003e\u003ccode\u003e833bacb\u003c/code\u003e\u003c/a\u003e fix: Don't evaluate substitutions hidden by values from resolved objects (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/dd3a0df142f7def91c13b4a0576af5528e9fd7f4\"\u003e\u003ccode\u003edd3a0df\u003c/code\u003e\u003c/a\u003e fix: rendering of substituted list with spacce (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/eb46e0e09065f974de851de83a7ab121aae91e6d\"\u003e\u003ccode\u003eeb46e0e\u003c/code\u003e\u003c/a\u003e chore: Fix spelling here and there (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/840\"\u003e#840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/affd59d79928662f262fc12c20aeff9784600349\"\u003e\u003ccode\u003eaffd59d\u003c/code\u003e\u003c/a\u003e build: update actions, replace deprecated apt-key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/93dbc6f42650c120a78506824db644aa637ad376\"\u003e\u003ccode\u003e93dbc6f\u003c/code\u003e\u003c/a\u003e docs: Update NEWS with latest two releases (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/835\"\u003e#835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lightbend/config/commit/c995aa0f11d9712c4eb41a3aa6d60cf179cda1ab\"\u003e\u003ccode\u003ec995aa0\u003c/code\u003e\u003c/a\u003e docs: adjust description of release process (\u003ca href=\"https://redirect.github.com/lightbend/config/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lightbend/config/compare/v1.4.6...v1.4.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.slf4j:slf4j-simple` from 2.0.17 to 2.0.18\n\nUpdates `org.junit.jupiter:junit-jupiter` from 6.0.3 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.1.0 = Platform 6.1.0 + Jupiter 6.1.0 + Vintage 6.1.0\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JarvisCraft\"\u003e\u003ccode\u003e@​JarvisCraft\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5633\"\u003ejunit-team/junit-framework#5633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Maran23\"\u003e\u003ccode\u003e@​Maran23\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5644\"\u003ejunit-team/junit-framework#5644\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.1.0-RC1 = Platform 6.1.0-RC1 + Jupiter 6.1.0-RC1 + Vintage 6.1.0-RC1\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0-RC1/release-notes/\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariokhoury4\"\u003e\u003ccode\u003e@​mariokhoury4\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/4574\"\u003ejunit-team/junit-framework#4574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ogu1208\"\u003e\u003ccode\u003e@​Ogu1208\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5145\"\u003ejunit-team/junit-framework#5145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HyungGeun94\"\u003e\u003ccode\u003e@​HyungGeun94\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5271\"\u003ejunit-team/junit-framework#5271\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yalishevant\"\u003e\u003ccode\u003e@​yalishevant\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5316\"\u003ejunit-team/junit-framework#5316\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JINU-CHANG\"\u003e\u003ccode\u003e@​JINU-CHANG\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5290\"\u003ejunit-team/junit-framework#5290\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaschdoc\"\u003e\u003ccode\u003e@​jaschdoc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5427\"\u003ejunit-team/junit-framework#5427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kawshikbuet17\"\u003e\u003ccode\u003e@​kawshikbuet17\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5561\"\u003ejunit-team/junit-framework#5561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msridhar\"\u003e\u003ccode\u003e@​msridhar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5602\"\u003ejunit-team/junit-framework#5602\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.1.0-M1...r6.1.0-RC1\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.1.0-M1...r6.1.0-RC1\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.1.0-M1 = Platform 6.1.0-M1 + Jupiter 6.1.0-M1 + Vintage 6.1.0-M1\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.1.0-M1/release-notes/\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vy\"\u003e\u003ccode\u003e@​vy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5041\"\u003ejunit-team/junit-framework#5041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Pankraz76\"\u003e\u003ccode\u003e@​Pankraz76\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5006\"\u003ejunit-team/junit-framework#5006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arukiidou\"\u003e\u003ccode\u003e@​arukiidou\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5066\"\u003ejunit-team/junit-framework#5066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/laeubi\"\u003e\u003ccode\u003e@​laeubi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5092\"\u003ejunit-team/junit-framework#5092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jihun4452\"\u003e\u003ccode\u003e@​jihun4452\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5088\"\u003ejunit-team/junit-framework#5088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TWiStErRob\"\u003e\u003ccode\u003e@​TWiStErRob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/junit-team/junit-framework/pull/5133\"\u003ejunit-team/junit-framework#5133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.0...r6.1.0-M1\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.0...r6.1.0-M1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0dc3af1cb1973d257b5bc75d81e02454d5e4e556\"\u003e\u003ccode\u003e0dc3af1\u003c/code\u003e\u003c/a\u003e Release 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/1d130020c85170edcb46ce7ed1f7f78824e37c04\"\u003e\u003ccode\u003e1d13002\u003c/code\u003e\u003c/a\u003e Prepare 6.1.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/072b2175bbd7b0b3b26f5d928550ec7a21e68268\"\u003e\u003ccode\u003e072b217\u003c/code\u003e\u003c/a\u003e Update plugin spotless to v8.5.0 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5668\"\u003e#5668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/3a53480218f4b752a9ca77506e10632cd483c0f8\"\u003e\u003ccode\u003e3a53480\u003c/code\u003e\u003c/a\u003e Update Gradle to v9.5.1 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5666\"\u003e#5666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0e18a20a9f98d063ae02b3ba19329143f5c7f034\"\u003e\u003ccode\u003e0e18a20\u003c/code\u003e\u003c/a\u003e Update zizmorcore/zizmor-action action to v0.5.4 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5669\"\u003e#5669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/0a2634fb9cbbd057b02cf629d7d272c16d62be4b\"\u003e\u003ccode\u003e0a2634f\u003c/code\u003e\u003c/a\u003e Update github/codeql-action action to v4.35.5 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5671\"\u003e#5671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/4dbd5561b00ac761a62c516bfaec51c212a2d60c\"\u003e\u003ccode\u003e4dbd556\u003c/code\u003e\u003c/a\u003e Restructure workflows to have single \u0026quot;status\u0026quot; job (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5670\"\u003e#5670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/f2194cebe377512cb0ade388c62a881a0bcf5d3e\"\u003e\u003ccode\u003ef2194ce\u003c/code\u003e\u003c/a\u003e Increase timeout to reduce flakiness\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fdd2df65b763151cccbe669ea9e1c3155efcd\"\u003e\u003ccode\u003e5c8fdd2\u003c/code\u003e\u003c/a\u003e Update dependency org.apache.groovy:groovy to v5.0.6 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5659\"\u003e#5659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/43c6982324602582902c9bdb213fd5e007f9cf3d\"\u003e\u003ccode\u003e43c6982\u003c/code\u003e\u003c/a\u003e Update dependency org.slf4j:slf4j-jdk14 to v2.0.18 (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5667\"\u003e#5667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.3...r6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jline:jline` from 4.0.10 to 4.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jline/jline3/releases\"\u003eorg.jline:jline's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJLine 4.1.2 is a patch release focused on correctness fixes across the parser, terminal I/O, and shell modules.\u003c/p\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: echo preserves backslash before unrecognised escape sequences (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1901\"\u003e#1901\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1863\"\u003e#1863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: DefaultParser preserves backslashes inside quotes (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1902\"\u003e#1902\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1877\"\u003e#1877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: NonBlockingInputStream keeps thread alive after EOF (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1903\"\u003e#1903\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1879\"\u003e#1879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: ensure cursor position after alternate screen init (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1904\"\u003e#1904\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use parser for command argument splitting (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1907\"\u003e#1907\u003c/a\u003e, fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1876\"\u003e#1876\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Bump eu.maveniverse.maven.nisse:extension from 0.9.1 to 0.9.2 (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1905\"\u003e#1905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jline/jline3/compare/4.1.1...4.1.2\"\u003ehttps://github.com/jline/jline3/compare/4.1.1...4.1.2\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJLine 4.1.1 is a patch release focused on stability fixes. The most notable change corrects the POSIX raw mode defaults (VMIN/VTIME) in \u003ccode\u003eenterRawMode\u003c/code\u003e, which could cause shell REPL sessions to hang or malfunction on certain platforms. This release also fixes a Display bug where the internal line buffer could alias or reject immutable caller-provided lists, hardens signal registration against null returns, and corrects alternate charset handling in ScreenTerminal.\u003c/p\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Fixed Display oldLines being set as possible immutable lists. (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1878\"\u003e#1878\u003c/a\u003e) \u003ca href=\"https://github.com/Elec332\"\u003e\u003ccode\u003e@​Elec332\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use POSIX cfmakeraw defaults (VMIN=1, VTIME=0) in enterRawMode (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1871\"\u003e#1871\u003c/a\u003e) \u003ca href=\"https://github.com/BryanSant\"\u003e\u003ccode\u003e@​BryanSant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: skip null returns from signal registration in AbstractUnixSysTerminal (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1869\"\u003e#1869\u003c/a\u003e) \u003ca href=\"https://github.com/BryanSant\"\u003e\u003ccode\u003e@​BryanSant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed ScreenTerminal alt-charset (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1867\"\u003e#1867\u003c/a\u003e) \u003ca href=\"https://github.com/Elec332\"\u003e\u003ccode\u003e@​Elec332\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: Bump com.palantir.javaformat:palantir-java-format from 2.90.0 to 2.91.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1898\"\u003e#1898\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump eu.maveniverse.maven.nisse:extension from 0.9.0 to 0.9.1 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1894\"\u003e#1894\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump junit.version from 6.0.3 to 6.1.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1893\"\u003e#1893\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump groovy.version from 5.0.5 to 5.0.6 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1865\"\u003e#1865\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump eu.maveniverse.maven.nisse:extension from 0.8.4 to 0.9.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1887\"\u003e#1887\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump com.diffplug.spotless:spotless-maven-plugin from 3.5.0 to 3.5.1 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1886\"\u003e#1886\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.6.2 to 3.6.3 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1889\"\u003e#1889\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump com.diffplug.spotless:spotless-maven-plugin from 3.4.0 to 3.5.0 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1880\"\u003e#1880\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Bump slf4j.version from 2.0.17 to 2.0.18 (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1874\"\u003e#1874\u003c/a\u003e) \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👻 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erefactor: Remove duplicate code in Shell impl tests (\u003ca href=\"https://redirect.github.com/jline/jline3/pull/1868\"\u003e#1868\u003c/a\u003e) \u003ca href=\"https://github.com/Elec332\"\u003e\u003ccode\u003e@​Elec332\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BryanSant\"\u003e\u003ccode\u003e@​BryanSant\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jline/jline3/pull/1869\"\u003e#1869\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jline/jline3/compare/4.1.0...4.1.1\"\u003ehttps://github.com/jline/jline3/compare/4.1.0...4.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eJLine 4.1.0\u003c/h2\u003e\n\u003cp\u003eJLine 4.1 is the first minor release of the 4.x series, bringing new features, significant performance improvements, internal refactoring, and many bug fixes across terminal handling, encoding, and platform support.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/9a74970108e84b2ab972b5609e692e147489bcc7\"\u003e\u003ccode\u003e9a74970\u003c/code\u003e\u003c/a\u003e fix: use parser for command argument splitting (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1907\"\u003e#1907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/c9b931546dca4f7ab528bdaaa6baa1eb0344b8fc\"\u003e\u003ccode\u003ec9b9315\u003c/code\u003e\u003c/a\u003e chore: Bump eu.maveniverse.maven.nisse:extension from 0.9.1 to 0.9.2 (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1905\"\u003e#1905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/a2e0670ca2461fb0351b067b520cb9ff019e39de\"\u003e\u003ccode\u003ea2e0670\u003c/code\u003e\u003c/a\u003e fix: ensure cursor position after alternate screen init (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1883\"\u003e#1883\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1904\"\u003e#1904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/6ac5ec1c4961deb7ae7405b1c087a4bba4f37e55\"\u003e\u003ccode\u003e6ac5ec1\u003c/code\u003e\u003c/a\u003e fix: NonBlockingInputStream keeps thread alive after EOF (fixes \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1879\"\u003e#1879\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1903\"\u003e#1903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/1ef5bede9876145ad7a61ff601d3e0fdce1fcaf9\"\u003e\u003ccode\u003e1ef5bed\u003c/code\u003e\u003c/a\u003e fix: DefaultParser preserves backslashes inside quotes (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1902\"\u003e#1902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/2825bc2a06c8764e186d2bf9005c1be160715e30\"\u003e\u003ccode\u003e2825bc2\u003c/code\u003e\u003c/a\u003e fix: echo preserves backslash before unrecognised escape sequences (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1901\"\u003e#1901\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/798308f86a0be6645423ec2857ed81cf15fb3d25\"\u003e\u003ccode\u003e798308f\u003c/code\u003e\u003c/a\u003e fix: add filter-by-commitish to 3.x release drafter config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/af5638ab34005a7b7184a56a9a6cf150a3f4848b\"\u003e\u003ccode\u003eaf5638a\u003c/code\u003e\u003c/a\u003e fix: avoid aliasing and immutable list issues in Display oldLines (\u003ca href=\"https://redirect.github.com/jline/jline3/issues/1878\"\u003e#1878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/f55dc2eb6e8c252d36bc4a0a18b9f75799f9b892\"\u003e\u003ccode\u003ef55dc2e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1898\"\u003e#1898\u003c/a\u003e from jline/dependabot/maven/master/com.palantir.java...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jline/jline3/commit/1f736678cded0f70ed1b6995f6ce9973def6125b\"\u003e\u003ccode\u003e1f73667\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jline/jline3/issues/1894\"\u003e#1894\u003c/a\u003e from jline/dependabot/maven/master/eu.maveniverse.ma...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jline/jline3/compare/4.0.10...4.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.guava:guava` from 33.5.0-jre to 33.6.0-jre\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/guava/releases\"\u003ecom.google.guava:guava's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e33.6.0\u003c/h2\u003e\n\u003ch3\u003eMaven\u003c/h3\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e\u0026lt;dependency\u0026gt;\r\n  \u0026lt;groupId\u0026gt;com.google.guava\u0026lt;/groupId\u0026gt;\r\n  \u0026lt;artifactId\u0026gt;guava\u0026lt;/artifactId\u0026gt;\r\n  \u0026lt;version\u0026gt;33.6.0-jre\u0026lt;/version\u0026gt;\r\n  \u0026lt;!-- or, for Android: --\u0026gt;\r\n  \u0026lt;version\u0026gt;33.6.0-android\u0026lt;/version\u0026gt;\r\n\u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eJar files\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/guava/33.6.0-jre/guava-33.6.0-jre.jar\"\u003e33.6.0-jre.jar\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/guava/33.6.0-android/guava-33.6.0-android.jar\"\u003e33.6.0-android.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGuava requires \u003ca href=\"https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies\"\u003eone runtime dependency\u003c/a\u003e, which you can download here:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\"\u003efailureaccess-1.0.3.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavadoc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-jre/api/docs/\"\u003e33.6.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/docs/\"\u003e33.6.0-android\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJDiff\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-jre/api/diffs/\"\u003e33.6.0-jre vs. 33.5.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/diffs/\"\u003e33.6.0-android vs. 33.5.0-android\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guava.dev/releases/33.6.0-android/api/androiddiffs/\"\u003e33.6.0-android vs. 33.6.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated some classes from \u003ccode\u003efinalize()\u003c/code\u003e to \u003ccode\u003ePhantomReference\u003c/code\u003e in preparation for \u003ca href=\"https://openjdk.org/jeps/421\"\u003ethe removal of finalization\u003c/a\u003e. (786b619dd6, 7c6b17c, aeef90988d)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecache\u003c/code\u003e: Deprecated \u003ccode\u003eCacheBuilder\u003c/code\u003e APIs that use \u003ccode\u003eTimeUnit\u003c/code\u003e in favor of those that use \u003ccode\u003eDuration\u003c/code\u003e. (73f8b0bb84)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Added \u003ccode\u003etoImmutableSortedMap\u003c/code\u003e collectors that use the natural comparator. (64d70b9f94)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Changed \u003ccode\u003eConcurrentHashMultiset\u003c/code\u003e, \u003ccode\u003eImmutableMap\u003c/code\u003e and \u003ccode\u003eTreeMultiset\u003c/code\u003e deserialization to \u003ca href=\"https://openjdk.org/jeps/500\"\u003eavoid mutating \u003ccode\u003efinal\u003c/code\u003e fields\u003c/a\u003e. In extremely unlikely scenarios in which an instance of that type contains an object that refers back to that instance, this could lead to \u003ca href=\"https://docs.oracle.com/en/java/javase/26/docs/specs/serialization/input.html#the-readresolve-method:~:text=in%20cases%20where%20an%20object%20being%20serialized%20nominates%20a%20replacement%20object%20whose%20object%20graph%20has%20a%20reference%20to%20the%20original%20object\"\u003ea broken instance\u003c/a\u003e that throws \u003ccode\u003eNullPointerException\u003c/code\u003e when used. (8240c7e596, 046468055f)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Removed \u003ccode\u003e@Beta\u003c/code\u003e from all APIs in the package. (dae9566b73)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Added support to \u003ccode\u003eGraphs.transitiveClosure()\u003c/code\u003e for different strategies for adding self-loops. (2e13df25b2)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egraph\u003c/code\u003e: Added an \u003ccode\u003easNetwork()\u003c/code\u003e view to \u003ccode\u003eGraph\u003c/code\u003e and \u003ccode\u003eValueGraph\u003c/code\u003e. (909c593c61)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ehash\u003c/code\u003e: Added \u003ccode\u003eBloomFilter.serializedSize()\u003c/code\u003e. (df9bcc251a)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enet\u003c/code\u003e: Added \u003ccode\u003eHttpHeaders.CDN_CACHE_CONTROL\u003c/code\u003e. (75331b5030)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/google/guava/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/MatthewOsorio/ai-job-hunter/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatthewOsorio%2Fai-job-hunter/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-22T03:13:03.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4499519588","node_id":"PR_kwDORvJjTc7eL9ZE","number":30,"state":"open","title":"chore(deps): bump the gradle-dependencies group across 1 directory with 18 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T03:13:03.000Z","updated_at":"2026-05-22T03:17:48.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-dependencies","update_count":18,"packages":[{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.7","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"org.flywaydb:flyway-mysql","old_version":"12.0.3","new_version":"12.6.2"},{"name":"org.projectlombok:lombok","old_version":"1.18.42","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"org.apache.pdfbox:pdfbox","old_version":"3.0.6","new_version":"3.0.7"},{"name":"org.apache.pdfbox:jbig2-imageio","old_version":"3.0.4","new_version":"3.0.5"},{"name":"com.github.RouHim:jaudiotagger","old_version":"2.0.16","new_version":"2.0.21"},{"name":"com.github.junrar:junrar","old_version":"7.5.8","new_version":"7.6.0","repository_url":"https://github.com/junrar/junrar"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.springdoc:springdoc-openapi-starter-webmvc-ui","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/springdoc/springdoc-openapi"},{"name":"org.glassfish.jaxb:jaxb-runtime","old_version":"4.0.6","new_version":"4.0.8"},{"name":"tools.jackson:jackson-bom","old_version":"3.1.0","new_version":"3.1.3","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"com.github.ben-manes.caffeine:caffeine","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/ben-manes/caffeine"},{"name":"org.springframework.boot","old_version":"4.0.3","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"org.hibernate.orm","old_version":"7.2.6.Final","new_version":"7.3.5.Final"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"gradle-wrapper","old_version":"9.4.0","new_version":"9.5.1","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-dependencies group with 16 updates in the /booklore-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.7` | `3.5.8` |\n| org.flywaydb:flyway-mysql | `12.0.3` | `12.6.2` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.42` | `1.18.46` |\n| org.apache.pdfbox:pdfbox | `3.0.6` | `3.0.7` |\n| org.apache.pdfbox:jbig2-imageio | `3.0.4` | `3.0.5` |\n| com.github.RouHim:jaudiotagger | `2.0.16` | `2.0.21` |\n| [com.github.junrar:junrar](https://github.com/junrar/junrar) | `7.5.8` | `7.6.0` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) | `3.0.2` | `3.0.3` |\n| org.glassfish.jaxb:jaxb-runtime | `4.0.6` | `4.0.8` |\n| [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `3.1.0` | `3.1.3` |\n| [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) | `3.2.3` | `3.2.4` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `4.0.3` | `4.0.6` |\n| org.hibernate.orm | `7.2.6.Final` | `7.3.5.Final` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.0` | `9.5.1` |\n\n\nUpdates `org.mariadb.jdbc:mariadb-java-client` from 3.5.7 to 3.5.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/releases\"\u003eorg.mariadb.jdbc:mariadb-java-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Java 3.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md\"\u003eorg.mariadb.jdbc:mariadb-java-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/26b34a2f060070beb73515cfd2a49fabc8728843\"\u003e\u003ccode\u003e26b34a2\u003c/code\u003e\u003c/a\u003e Merge branch 'develop'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/06d6efee7838ab8f89ef0f7f362c6b4a95754630\"\u003e\u003ccode\u003e06d6efe\u003c/code\u003e\u003c/a\u003e bump CI actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a86a83c8fd1fa84d8d4349baab3b29df8f575192\"\u003e\u003ccode\u003ea86a83c\u003c/code\u003e\u003c/a\u003e bump 3.5.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/975f9919232b21f40d823423eac6e32d87ea8e35\"\u003e\u003ccode\u003e975f991\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to implement Codec directly and extract shared...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/75bb509521661603e0e90dd6dd5942d1382bf499\"\u003e\u003ccode\u003e75bb509\u003c/code\u003e\u003c/a\u003e [misc] code formatting cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/4c0b6a0ddd95f42fa866ce0d08e384caa2553d43\"\u003e\u003ccode\u003e4c0b6a0\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to extend UtilDateCodec and extract common dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a5b7fb1a26277a076052dbbd1a7ee2bacd4f602f\"\u003e\u003ccode\u003ea5b7fb1\u003c/code\u003e\u003c/a\u003e [misc] convert Reader and Writer from interfaces to final class implementatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/d31eb060fc66e9e37479e18a38bb1401d53ecb63\"\u003e\u003ccode\u003ed31eb06\u003c/code\u003e\u003c/a\u003e [misc] convert ReadableByteBuf from interface to final class implementation, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/11d45a9e6ea4d942e75747132bb8982471d890b8\"\u003e\u003ccode\u003e11d45a9\u003c/code\u003e\u003c/a\u003e [misc] optimize binary row decoder null bitmap checks and simplify signed Big...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/5aad14c381cbc2c4e0383ffed275306f359bd508\"\u003e\u003ccode\u003e5aad14c\u003c/code\u003e\u003c/a\u003e [misc] optimize BigInt column decoding and improve type safety in codec inter...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-mysql` from 12.0.3 to 12.6.2\n\nUpdates `org.projectlombok:lombok` from 1.18.42 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.44 (March 11th, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Jacksonized\u003c/code\u003e now supports both Jackson2 and Jackson3; you'll get a warning until you configure which one (or even both!) you want lombok to generate. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3950\"\u003e#3950\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: On JDK25, \u003ccode\u003eval\u003c/code\u003e and \u003ccode\u003e@ExtensionMethod\u003c/code\u003e could sometimes cause erroneous errors (in that you see errors but compilation succeeds anyway) using javac. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3947\"\u003e#3947\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e + fields marked \u003ccode\u003etransient\u003c/code\u003e would result in those transient fields being serialised which is surprising (and thus undesired) behaviour. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3936\"\u003e#3936\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48c8f4b33ef9231ec2587a43d122\"\u003e\u003ccode\u003efcdab3f\u003c/code\u003e\u003c/a\u003e [version] pre-release version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/1cb7d49c5d2dc98af7a66413d8119dec285d0666\"\u003e\u003ccode\u003e1cb7d49\u003c/code\u003e\u003c/a\u003e [changelog]\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e Mention Jackson3 final touches in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/12a15b00555ec8097eca2bf7d77c2c2124e13e0e\"\u003e\u003ccode\u003e12a15b0\u003c/code\u003e\u003c/a\u003e Fix: Bump EA_JDK to 27 (25 and 26 have been released)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/2be766cfc2ef56f2d986f28f734c98535d611aee\"\u003e\u003ccode\u003e2be766c\u003c/code\u003e\u003c/a\u003e Merge branch 'jackson3-final-touches'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/290fa4c8539c7e97b47f7e80033e078127050eb5\"\u003e\u003ccode\u003e290fa4c\u003c/code\u003e\u003c/a\u003e [trivial] constantize the warning we spit out for ambiguous jackson2/3, and m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e6567b6621f86b43033ab4a75e0273780e18e998\"\u003e\u003ccode\u003ee6567b6\u003c/code\u003e\u003c/a\u003e test: Add Jackson 3 test cases and version ambiguity warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/45e72e241abe98dcfb66408402da825dd2b8e925\"\u003e\u003ccode\u003e45e72e2\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 databind/dataformat annotations to HandlerUtil copy lists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/184d42363d86446a63b6270ac1eb352dc43ae76c\"\u003e\u003ccode\u003e184d423\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 support to \u003ca href=\"https://github.com/Jacksonized\"\u003e\u003ccode\u003e@​Jacksonized\u003c/code\u003e\u003c/a\u003e handlers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e027ad0f1515bd33d4d329d90e59dccbaf44651e\"\u003e\u003ccode\u003ee027ad0\u003c/code\u003e\u003c/a\u003e refactored to ShadowClassLoader use Collections::enumeration instead of Vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectlombok/lombok/compare/v1.18.42...v1.18.46\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.pdfbox:pdfbox` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:pdfbox-io` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:xmpbox` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:jbig2-imageio` from 3.0.4 to 3.0.5\n\nUpdates `com.github.RouHim:jaudiotagger` from 2.0.16 to 2.0.21\n\nUpdates `com.github.junrar:junrar` from 7.5.8 to 7.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/releases\"\u003ecom.github.junrar:junrar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.6.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Robin Schimpf\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.10\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier Roebroeck\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/blob/master/CHANGELOG.md\"\u003ecom.github.junrar:junrar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.10...v7.6.0\"\u003e7.6.0\u003c/a\u003e (2026-05-13)\u003c/h1\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.9...v7.5.10\"\u003e7.5.10\u003c/a\u003e (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.9\"\u003e7.5.9\u003c/a\u003e (2026-04-13)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/cb4b7fdb84269e95741fa22120e08ceb15a06152\"\u003e\u003ccode\u003ecb4b7fd\u003c/code\u003e\u003c/a\u003e build(deps): bump gradle-wrapper to 9.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/0bb56b3df4e3b6d14f73de92746a2eb47dd2d7a3\"\u003e\u003ccode\u003e0bb56b3\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.core:jackson-databind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/ca621b22421f9e846df23112b32113230610c8d9\"\u003e\u003ccode\u003eca621b2\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/e0874d213832bbeaa8eb265c79479b01b5fa7392\"\u003e\u003ccode\u003ee0874d2\u003c/code\u003e\u003c/a\u003e feat: support random access for files in solid RAR4 archives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/90f0548c728b0bf2e94f6e26f9e6396d9d0a7262\"\u003e\u003ccode\u003e90f0548\u003c/code\u003e\u003c/a\u003e build(deps): bump org.jreleaser from 1.23.0 to 1.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/83a5d085dc84991226229fef1515cc902d129241\"\u003e\u003ccode\u003e83a5d08\u003c/code\u003e\u003c/a\u003e build(deps): bump commons-io:commons-io from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/338efcb5472be051989fbafd7179d561c71722eb\"\u003e\u003ccode\u003e338efcb\u003c/code\u003e\u003c/a\u003e ci: replace deprecated action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/5270d235ade54d96dfc9958ab06f495fbbd169e7\"\u003e\u003ccode\u003e5270d23\u003c/code\u003e\u003c/a\u003e perf: replace RarCRC.checkCrc with java.util.zip.CRC32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/d5abcdb9af988ddfa76e98d80787e15525488332\"\u003e\u003ccode\u003ed5abcdb\u003c/code\u003e\u003c/a\u003e build(deps): bump com.github.ben-manes.versions from 0.53.0 to 0.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/edadb28896962fdcf754029bafd0994aaff24530\"\u003e\u003ccode\u003eedadb28\u003c/code\u003e\u003c/a\u003e chore(release): 7.5.10 [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/releases\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003espringdoc-openapi v3.0.3 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seregamorph\"\u003e\u003ccode\u003e@​seregamorph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/pull/3260\"\u003espringdoc/springdoc-openapi#3260\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ehttps://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/blob/v3.0.3/CHANGELOG.md\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.0.3] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3c30283fb33ced3b8368c7a890ee05d23119322a\"\u003e\u003ccode\u003e3c30283\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release v3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4184c05db39e96e8d1ce1287d5f58f242a4c8165\"\u003e\u003ccode\u003e4184c05\u003c/code\u003e\u003c/a\u003e update .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/89745c20c3695b9b934cbf77f96ef1cd1df9fac7\"\u003e\u003ccode\u003e89745c2\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4d1a730134720740ed3b9a2831d14e97dbe28780\"\u003e\u003ccode\u003e4d1a730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e from seregamorph/SpringDocHateoasConfiguration-class...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/54e765036d9d49935a97e3ccebd875581efcc8ed\"\u003e\u003ccode\u003e54e7650\u003c/code\u003e\u003c/a\u003e ConditionalOnClass (HateoasProperties.class) in SpringDocHateoasConfiguration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/9f354b2a3cb92a8caa1d0518b1916ac4f79fbd71\"\u003e\u003ccode\u003e9f354b2\u003c/code\u003e\u003c/a\u003e Spring-boot upgrade to version 4.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/14df32f99179db89967a6260562775cd6b883128\"\u003e\u003ccode\u003e14df32f\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3ee9a44547f44fb4982c98b7a5dbc1f6f9aff1a3\"\u003e\u003ccode\u003e3ee9a44\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/df99408a7674af5ea3fc40f79d81bfef372e7c0e\"\u003e\u003ccode\u003edf99408\u003c/code\u003e\u003c/a\u003e upgrade swagger-ui to version 5.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/6ee70f4074e76d3d8554487e4318681d95e444d7\"\u003e\u003ccode\u003e6ee70f4\u003c/code\u003e\u003c/a\u003e upgrade swagger-api to version 2.2.47\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.glassfish.jaxb:jaxb-runtime` from 4.0.6 to 4.0.8\n\nUpdates `tools.jackson:jackson-bom` from 3.1.0 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/c2ea79e9178f0aaa5e4f381c644140357bfc307e\"\u003e\u003ccode\u003ec2ea79e\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3906b27dcdde8fc6a4fef193147109b70bf2f0dc\"\u003e\u003ccode\u003e3906b27\u003c/code\u003e\u003c/a\u003e Prep for 3.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/b17b616c7dc264cfef26f9dd28eaf54bc40b5c4c\"\u003e\u003ccode\u003eb17b616\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/36cf9995cff15aa3e69786da1d6c52f208fddf8a\"\u003e\u003ccode\u003e36cf999\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0ae1c2ae270dabe8e21700cbcee1c266b54e84f0\"\u003e\u003ccode\u003e0ae1c2a\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3c171ebd5d6c5d8f6e8d4f3614cf9b4f0a8babb9\"\u003e\u003ccode\u003e3c171eb\u003c/code\u003e\u003c/a\u003e Prep for 3.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/8046ced071e0b36747bae0f0a96fa21914de1303\"\u003e\u003ccode\u003e8046ced\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ea00ca4cc59ba656a17a071e30a68387e51d3e0d\"\u003e\u003ccode\u003eea00ca4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0628060381a5b86e3fc07854a27b7453de559b7e\"\u003e\u003ccode\u003e0628060\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/22b8aeec79b87751a41c586404850c526eed1dbe\"\u003e\u003ccode\u003e22b8aee\u003c/code\u003e\u003c/a\u003e Prep for 3.1.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.1.0...jackson-bom-3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.ben-manes.caffeine:caffeine` from 3.2.3 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ben-manes/caffeine/releases\"\u003ecom.github.ben-manes.caffeine:caffeine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved access expiration's read performance by avoiding false sharing effects caused by the timestamp update\u003c/li\u003e\n\u003cli\u003eFixed head-of-line blocking of expiration queues caused by in-flight async entries (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed various minor issues found using AI audits\u003c/li\u003e\n\u003cli\u003eAdded \u003ca href=\"https://docs.oracle.com/en/java/javase/25/docs/api//java.base/java/io/ObjectInputFilter.html\"\u003eObjectInputFilter\u003c/a\u003e support to JCache\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/836b65c0a83e5d1641ded9c6de578654bc04b2e9\"\u003e\u003ccode\u003e836b65c\u003c/code\u003e\u003c/a\u003e use a consistent expiration tolerance calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0dc7daf962730048fe46ae4626827afbb97ddf92\"\u003e\u003ccode\u003e0dc7daf\u003c/code\u003e\u003c/a\u003e resurrect in-flight async entries on expiration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0bac8b54fd634ffe95d35ccd1d94daba95e7b369\"\u003e\u003ccode\u003e0bac8b5\u003c/code\u003e\u003c/a\u003e handle head-of-line blocking of expiration queues (fixes \u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/ff258366de0a89129152ead72524ce88f8fca67b\"\u003e\u003ccode\u003eff25836\u003c/code\u003e\u003c/a\u003e test polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f3a6176e2e3a7fe085214472858c6029c108fc3f\"\u003e\u003ccode\u003ef3a6176\u003c/code\u003e\u003c/a\u003e Fix JCache close/createCache races and recursive teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/622fbe7dbf7606f114b956205706935be2fcf3c8\"\u003e\u003ccode\u003e622fbe7\u003c/code\u003e\u003c/a\u003e Fix removal in identity views and widen hill-climber counters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/8da5a7a05d8b725c9dbd577be8ffaf2372aa7e23\"\u003e\u003ccode\u003e8da5a7a\u003c/code\u003e\u003c/a\u003e defer weighing the entry until after the putIfAbsent hit fast-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/94ad0ff8556c9923a8d9746ab85af9ee830dd051\"\u003e\u003ccode\u003e94ad0ff\u003c/code\u003e\u003c/a\u003e Record eviction stats before notifying the removal listener consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f94c0113d0c98dc0afaadf1f6748ea280aa4dff7\"\u003e\u003ccode\u003ef94c011\u003c/code\u003e\u003c/a\u003e Auto-assert eviction stats alongside notifications.withCause.exclusively\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/2e945e090fbff4f96251dfe1bacba3780a5bdb0c\"\u003e\u003ccode\u003e2e945e0\u003c/code\u003e\u003c/a\u003e Skip timestamp writes within tolerance on the read path.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ben-manes/caffeine/compare/v3.2.3...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springframework.boot` from 4.0.3 to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spring-projects/spring-boot/releases\"\u003eorg.springframework.boot's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.6\u003c/h2\u003e\n\u003ch2\u003e:lady_beetle: Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50188\"\u003e#50188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eElasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50187\"\u003e#50187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationPidFileWriter does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50185\"\u003e#50185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRandomValuePropertySource is not suitable for secrets \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50183\"\u003e#50183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCassandra auto-configuration misconfigures CqlSessionBuilder \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50180\"\u003e#50180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationTemp does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50178\"\u003e#50178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemote DevTools performs comparison incorrectly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50176\"\u003e#50176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring.rabbitmq.ssl.verify-hostname is applied inconsistently \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50174\"\u003e#50174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50077\"\u003e#50077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClassic starters are missing several modules \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50071\"\u003e#50071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModule spring-boot-resttestclient is missing from spring-boot-starter-test-classic \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/50069\"\u003e#50069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotations like \u003ccode\u003e@Ssl\u003c/code\u003e don't work on \u003ccode\u003e@Bean\u003c/code\u003e methods when using \u003ccode\u003e@ServiceConnection\u003c/code\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50064\"\u003e#50064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnversRevisionRepositoriesRegistrar should reuse \u003ccode\u003e@EnableEnversRepositories\u003c/code\u003e rather than configuring the JPA counterpart \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50039\"\u003e#50039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebFlux Cloud Foundry links endpoint includes query string from received request in resolved links \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50017\"\u003e#50017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImports on a containing test class are ignored when a nested class has imports \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50012\"\u003e#50012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWith spring.jackson.use-jackson2-defaults set to true, FAIL_ON_UNKNOWN_PROPERTIES is enabled \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49951\"\u003e#49951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e500 response from env endpoint when supplied pattern is invalid \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49946\"\u003e#49946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49945\"\u003e#49945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP method is lost when configuring excludes in EndpointRequest \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49943\"\u003e#49943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonor HttpMethod for reactive additional endpoint paths \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49880\"\u003e#49880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/artemis image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49869\"\u003e#49869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/activemq image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49866\"\u003e#49866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49854\"\u003e#49854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAPI versioning path strategy should be applied path last as it is not meant to yield \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49800\"\u003e#49800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:notebook_with_decorative_cover: Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs to encourage Java fundamentals for beginners that prefer to learn that way \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50146\"\u003e#50146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP Service Interface Clients still document that API versioning can be configured via properties \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50126\"\u003e#50126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the observability section of the Lettuce documentation is broken \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50097\"\u003e#50097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJavadoc for StaticResourceLocation.FAVICON doesn't describe icons location \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50085\"\u003e#50085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMySamlRelyingPartyConfiguration is missing a Kotlin sample \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50024\"\u003e#50024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncorrect default value for management.httpexchanges.recording.include in configuration metadata \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50019\"\u003e#50019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the Kubernetes documentation when discussing startup probes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50015\"\u003e#50015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypo in JdbcSessionAutoConfiguration Javadoc \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49873\"\u003e#49873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify that configuration property default values are not available through the Environment \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49851\"\u003e#49851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument the need for Liquibase and Flyway starters \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49839\"\u003e#49839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKafka documentation refers to deprecated JSON serializer and deserializer classes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49826\"\u003e#49826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Elasticsearch Client 9.2.8 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50027\"\u003e#50027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Groovy 5.0.5 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49911\"\u003e#49911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Hibernate 7.2.12.Final \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50134\"\u003e#50134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Jackson Bom 3.1.2 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50051\"\u003e#50051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/jaxen-xpath/jaxen/releases/tag/v2.0.1\"\u003eJaxen 2.0.1\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50104\"\u003e#50104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/FirebirdSQL/jaybird/releases/tag/v6.0.5\"\u003eJaybird 6.0.5\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49914\"\u003e#49914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/8821ad2cd381bb4b9615a61479e1de7305a8ba39\"\u003e\u003ccode\u003e8821ad2\u003c/code\u003e\u003c/a\u003e Release v4.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9e4048a03f17adfe78057a3c4d5b4693305c0ae0\"\u003e\u003ccode\u003e9e4048a\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/20bb11c3984802990572ddbeae8b66885a8f2462\"\u003e\u003ccode\u003e20bb11c\u003c/code\u003e\u003c/a\u003e Next development version (v3.5.15-SNAPSHOT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/98daa8ea30f39a5b0ca6768b5cbc2dc8698ef4e1\"\u003e\u003ccode\u003e98daa8e\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9dc5aa2863f598a15d3dfa116f4b89249daba7e7\"\u003e\u003ccode\u003e9dc5aa2\u003c/code\u003e\u003c/a\u003e Polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/874f6294b91da18367b8b5ab7b2fad3fa23cfba6\"\u003e\u003ccode\u003e874f629\u003c/code\u003e\u003c/a\u003e Fix default security with actuator but without health\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/e41b3bf731d1134bc18ec1f68ac01e0fe1c54923\"\u003e\u003ccode\u003ee41b3bf\u003c/code\u003e\u003c/a\u003e Enable hostname verification for SSL connections to Elasticsearch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/ef8527bb0ef8f564f4f9c57a7be99a7aa96c6ab0\"\u003e\u003ccode\u003eef8527b\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/f533a4549c3999aac30cb5830f07dc304933e93d\"\u003e\u003ccode\u003ef533a45\u003c/code\u003e\u003c/a\u003e Do not follow symlinks when writing PID file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/4a7bd332b6d19fef1aa4cf28434985f2b03a2e0f\"\u003e\u003ccode\u003e4a7bd33\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spring-projects/spring-boot/compare/v4.0.3...v4.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.hibernate.orm` from 7.2.6.Final to 7.3.5.Final\n\nUpdates `com.github.ben-manes.versions` from 0.53.0 to 0.54.0\n\nUpdates `gradle-wrapper` from 9.4.0 to 9.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.5.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.5.1.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTask provenance in reports and failure messages\u003c/li\u003e\n\u003cli\u003eType-safe accessors for precompiled Kotlin Settings plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.5.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/atm1020\"\u003eatm1020\u003c/a\u003e,\n\u003ca href=\"https://github.com/mataha\"\u003emataha\u003c/a\u003e,\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/kelemen\"\u003eAttila Kelemen\u003c/a\u003e,\n\u003ca href=\"https://github.com/britter\"\u003eBenedikt Ritter\u003c/a\u003e,\n\u003ca href=\"https://github.com/Vampire\"\u003eBjörn Kautler\u003c/a\u003e,\n\u003ca href=\"https://github.com/budindepunk\"\u003eCaro Silva Rode\u003c/a\u003e,\n\u003ca href=\"https://github.com/chanani\"\u003eCHANHAN\u003c/a\u003e,\n\u003ca href=\"https://github.com/DmitryNez\"\u003eDmitry Nezavitin\u003c/a\u003e,\n\u003ca href=\"https://github.com/Juneezee\"\u003eEng Zer Jun\u003c/a\u003e,\n\u003ca href=\"https://github.com/KugelLibelle\"\u003eKugelLibelle\u003c/a\u003e,\n\u003ca href=\"https://github.com/vmadalin\"\u003eMadalin Valceleanu\u003c/a\u003e,\n\u003ca href=\"https://github.com/quijote\"\u003eMarkus Gaisbauer\u003c/a\u003e,\n\u003ca href=\"https://github.com/koppor\"\u003eOliver Kopp\u003c/a\u003e,\n\u003ca href=\"https://github.com/hfhbd\"\u003ePhilip Wedemann\u003c/a\u003e,\n\u003ca href=\"https://github.com/ploober\"\u003eploober\u003c/a\u003e,\n\u003ca href=\"https://github.com/rpalcolea\"\u003eRoberto Perez Alcolea\u003c/a\u003e,\n\u003ca href=\"https://github.com/R0h1tAnand\"\u003eRohit Anand\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/usv240\"\u003eUjwal Suresh Vanjare\u003c/a\u003e,\n\u003ca href=\"https://github.com/urdak\"\u003eVictor Merkulov\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.5.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew wrapper --gradle-version=9.5.1 \u0026amp;\u0026amp; ./gradlew wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.5.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.5.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/fd78213f09782e62ca4957f9cfd3d90c6c3f1767\"\u003e\u003ccode\u003efd78213\u003c/code\u003e\u003c/a\u003e Update Documentation Infrastructure: Fix scrolling issue in user manual (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37861\"\u003e#37861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/7758437128d1c52702786ad719a13ade1b860aa8\"\u003e\u003ccode\u003e7758437\u003c/code\u003e\u003c/a\u003e fix scroll\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/2fd605fdcd69fea10570e9eb1343bbd7ca01c9d0\"\u003e\u003ccode\u003e2fd605f\u003c/code\u003e\u003c/a\u003e Only try to run as worker thread in DefaultBuildOperationQueue (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37845\"\u003e#37845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/af6984901238402386ae263d746380504e5f9138\"\u003e\u003ccode\u003eaf69849\u003c/code\u003e\u003c/a\u003e Release notes for Gradle 9.5.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37853\"\u003e#37853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f4d9d03e9bb47d2d17b6d8314fdaa32c3d0b3c1e\"\u003e\u003ccode\u003ef4d9d03\u003c/code\u003e\u003c/a\u003e Release notes for Gradle 9.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/01eda3adf40dbe97e81475e813705409dcfe1091\"\u003e\u003ccode\u003e01eda3a\u003c/code\u003e\u003c/a\u003e Address review feedback on worker-lease retry changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/7024e15139b2db9df831dd15a8b9e9052acd9a51\"\u003e\u003ccode\u003e7024e15\u003c/code\u003e\u003c/a\u003e Revert enrich file visitor with size info on \u003ccode\u003erelease\u003c/code\u003e branch (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37848\"\u003e#37848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/d51476fda21330c037a04b43ec9a93a929d05b87\"\u003e\u003ccode\u003ed51476f\u003c/code\u003e\u003c/a\u003e Fix tryRunAsWorkerThread null-return test to match contract\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/090ebabc5b6f648e01c0269a321d80372fdbfe0f\"\u003e\u003ccode\u003e090ebab\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add getLength() to FilePropertyVisitor.VisitState\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bceab24677298144860f6919bdcb031e806dbf23\"\u003e\u003ccode\u003ebceab24\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix annotation\u0026quot;\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.0...v9.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/cdome/ollumi/pull/30","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdome%2Follumi/issues/30","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/30/packages"}},{"old_version":"1.21.2","new_version":"1.22.2","update_type":"minor","path":null,"pr_created_at":"2026-05-22T03:12:52.000Z","version_change":"1.21.2 → 1.22.2","issue":{"uuid":"4499519012","node_id":"PR_kwDORqdfXc7eL9SP","number":15,"state":"open","title":"chore(deps): bump the gradle-dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T03:12:52.000Z","updated_at":"2026-05-22T03:16:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-dependencies","update_count":23,"packages":[{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.7","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"org.flywaydb:flyway-mysql","old_version":"11.19.0","new_version":"12.6.2"},{"name":"org.projectlombok:lombok","old_version":"1.18.42","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"org.apache.pdfbox:pdfbox","old_version":"3.0.6","new_version":"3.0.7"},{"name":"org.apache.pdfbox:jbig2-imageio","old_version":"3.0.4","new_version":"3.0.5"},{"name":"com.twelvemonkeys.imageio:imageio-jpeg","old_version":"3.13.0","new_version":"3.13.1"},{"name":"io.documentnode:epub4j-core","old_version":"4.2.2","new_version":"4.2.3","repository_url":"https://github.com/documentnode/epub4j"},{"name":"com.github.junrar:junrar","old_version":"7.5.7","new_version":"7.6.0","repository_url":"https://github.com/junrar/junrar"},{"name":"org.jsoup:jsoup","old_version":"1.21.2","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.springdoc:springdoc-openapi-starter-webmvc-ui","old_version":"2.8.14","new_version":"3.0.3","repository_url":"https://github.com/springdoc/springdoc-openapi"},{"name":"org.tukaani:xz","old_version":"1.11","new_version":"1.12","repository_url":"https://github.com/tukaani-project/xz-java"},{"name":"tools.jackson:jackson-bom","old_version":"3.0.4","new_version":"3.1.3","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"com.github.ben-manes.caffeine:caffeine","old_version":"3.2.0","new_version":"3.2.4","repository_url":"https://github.com/ben-manes/caffeine"},{"name":"org.assertj:assertj-core","old_version":"3.27.6","new_version":"3.27.7","repository_url":"https://github.com/assertj/assertj"},{"name":"org.springframework.boot","old_version":"4.0.2","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"org.hibernate.orm","old_version":"7.2.0.Final","new_version":"7.3.5.Final"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"gradle-wrapper","old_version":"9.3.1","new_version":"9.5.1","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-dependencies group with 18 updates in the /booklore-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.7` | `3.5.8` |\n| org.flywaydb:flyway-mysql | `11.19.0` | `12.6.2` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.42` | `1.18.46` |\n| org.apache.pdfbox:pdfbox | `3.0.6` | `3.0.7` |\n| org.apache.pdfbox:jbig2-imageio | `3.0.4` | `3.0.5` |\n| com.twelvemonkeys.imageio:imageio-jpeg | `3.13.0` | `3.13.1` |\n| [io.documentnode:epub4j-core](https://github.com/documentnode/epub4j) | `4.2.2` | `4.2.3` |\n| [com.github.junrar:junrar](https://github.com/junrar/junrar) | `7.5.7` | `7.6.0` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.21.2` | `1.22.2` |\n| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) | `2.8.14` | `3.0.3` |\n| [org.tukaani:xz](https://github.com/tukaani-project/xz-java) | `1.11` | `1.12` |\n| [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `3.0.4` | `3.1.3` |\n| [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) | `3.2.0` | `3.2.4` |\n| [org.assertj:assertj-core](https://github.com/assertj/assertj) | `3.27.6` | `3.27.7` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `4.0.2` | `4.0.6` |\n| org.hibernate.orm | `7.2.0.Final` | `7.3.5.Final` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.3.1` | `9.5.1` |\n\n\nUpdates `org.mariadb.jdbc:mariadb-java-client` from 3.5.7 to 3.5.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/releases\"\u003eorg.mariadb.jdbc:mariadb-java-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Java 3.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md\"\u003eorg.mariadb.jdbc:mariadb-java-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/26b34a2f060070beb73515cfd2a49fabc8728843\"\u003e\u003ccode\u003e26b34a2\u003c/code\u003e\u003c/a\u003e Merge branch 'develop'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/06d6efee7838ab8f89ef0f7f362c6b4a95754630\"\u003e\u003ccode\u003e06d6efe\u003c/code\u003e\u003c/a\u003e bump CI actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a86a83c8fd1fa84d8d4349baab3b29df8f575192\"\u003e\u003ccode\u003ea86a83c\u003c/code\u003e\u003c/a\u003e bump 3.5.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/975f9919232b21f40d823423eac6e32d87ea8e35\"\u003e\u003ccode\u003e975f991\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to implement Codec directly and extract shared...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/75bb509521661603e0e90dd6dd5942d1382bf499\"\u003e\u003ccode\u003e75bb509\u003c/code\u003e\u003c/a\u003e [misc] code formatting cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/4c0b6a0ddd95f42fa866ce0d08e384caa2553d43\"\u003e\u003ccode\u003e4c0b6a0\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to extend UtilDateCodec and extract common dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a5b7fb1a26277a076052dbbd1a7ee2bacd4f602f\"\u003e\u003ccode\u003ea5b7fb1\u003c/code\u003e\u003c/a\u003e [misc] convert Reader and Writer from interfaces to final class implementatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/d31eb060fc66e9e37479e18a38bb1401d53ecb63\"\u003e\u003ccode\u003ed31eb06\u003c/code\u003e\u003c/a\u003e [misc] convert ReadableByteBuf from interface to final class implementation, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/11d45a9e6ea4d942e75747132bb8982471d890b8\"\u003e\u003ccode\u003e11d45a9\u003c/code\u003e\u003c/a\u003e [misc] optimize binary row decoder null bitmap checks and simplify signed Big...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/5aad14c381cbc2c4e0383ffed275306f359bd508\"\u003e\u003ccode\u003e5aad14c\u003c/code\u003e\u003c/a\u003e [misc] optimize BigInt column decoding and improve type safety in codec inter...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-mysql` from 11.19.0 to 12.6.2\n\nUpdates `org.projectlombok:lombok` from 1.18.42 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.44 (March 11th, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Jacksonized\u003c/code\u003e now supports both Jackson2 and Jackson3; you'll get a warning until you configure which one (or even both!) you want lombok to generate. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3950\"\u003e#3950\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: On JDK25, \u003ccode\u003eval\u003c/code\u003e and \u003ccode\u003e@ExtensionMethod\u003c/code\u003e could sometimes cause erroneous errors (in that you see errors but compilation succeeds anyway) using javac. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3947\"\u003e#3947\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e + fields marked \u003ccode\u003etransient\u003c/code\u003e would result in those transient fields being serialised which is surprising (and thus undesired) behaviour. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3936\"\u003e#3936\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48c8f4b33ef9231ec2587a43d122\"\u003e\u003ccode\u003efcdab3f\u003c/code\u003e\u003c/a\u003e [version] pre-release version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/1cb7d49c5d2dc98af7a66413d8119dec285d0666\"\u003e\u003ccode\u003e1cb7d49\u003c/code\u003e\u003c/a\u003e [changelog]\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e Mention Jackson3 final touches in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/12a15b00555ec8097eca2bf7d77c2c2124e13e0e\"\u003e\u003ccode\u003e12a15b0\u003c/code\u003e\u003c/a\u003e Fix: Bump EA_JDK to 27 (25 and 26 have been released)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/2be766cfc2ef56f2d986f28f734c98535d611aee\"\u003e\u003ccode\u003e2be766c\u003c/code\u003e\u003c/a\u003e Merge branch 'jackson3-final-touches'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/290fa4c8539c7e97b47f7e80033e078127050eb5\"\u003e\u003ccode\u003e290fa4c\u003c/code\u003e\u003c/a\u003e [trivial] constantize the warning we spit out for ambiguous jackson2/3, and m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e6567b6621f86b43033ab4a75e0273780e18e998\"\u003e\u003ccode\u003ee6567b6\u003c/code\u003e\u003c/a\u003e test: Add Jackson 3 test cases and version ambiguity warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/45e72e241abe98dcfb66408402da825dd2b8e925\"\u003e\u003ccode\u003e45e72e2\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 databind/dataformat annotations to HandlerUtil copy lists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/184d42363d86446a63b6270ac1eb352dc43ae76c\"\u003e\u003ccode\u003e184d423\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 support to \u003ca href=\"https://github.com/Jacksonized\"\u003e\u003ccode\u003e@​Jacksonized\u003c/code\u003e\u003c/a\u003e handlers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e027ad0f1515bd33d4d329d90e59dccbaf44651e\"\u003e\u003ccode\u003ee027ad0\u003c/code\u003e\u003c/a\u003e refactored to ShadowClassLoader use Collections::enumeration instead of Vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectlombok/lombok/compare/v1.18.42...v1.18.46\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.pdfbox:pdfbox` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:pdfbox-io` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:xmpbox` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:jbig2-imageio` from 3.0.4 to 3.0.5\n\nUpdates `com.twelvemonkeys.imageio:imageio-jpeg` from 3.13.0 to 3.13.1\n\nUpdates `com.twelvemonkeys.imageio:imageio-tiff` from 3.13.0 to 3.13.1\n\nUpdates `com.twelvemonkeys.imageio:imageio-webp` from 3.13.0 to 3.13.1\n\nUpdates `com.twelvemonkeys.imageio:imageio-bmp` from 3.13.0 to 3.13.1\n\nUpdates `io.documentnode:epub4j-core` from 4.2.2 to 4.2.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/documentnode/epub4j/commit/4bf55082feba0496f98b867ec03ebec5f393b649\"\u003e\u003ccode\u003e4bf5508\u003c/code\u003e\u003c/a\u003e Migrate Maven Central publishing to new Central Portal API\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/documentnode/epub4j/commit/b153885ef8aefbe4063a40894c048a5cc2b5a354\"\u003e\u003ccode\u003eb153885\u003c/code\u003e\u003c/a\u003e Load sdkman environment before running gradle commands\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/documentnode/epub4j/compare/v4.2.2...v4.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.junrar:junrar` from 7.5.7 to 7.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/releases\"\u003ecom.github.junrar:junrar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.6.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Robin Schimpf\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.10\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier Roebroeck\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/blob/master/CHANGELOG.md\"\u003ecom.github.junrar:junrar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.10...v7.6.0\"\u003e7.6.0\u003c/a\u003e (2026-05-13)\u003c/h1\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.9...v7.5.10\"\u003e7.5.10\u003c/a\u003e (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.9\"\u003e7.5.9\u003c/a\u003e (2026-04-13)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/cb4b7fdb84269e95741fa22120e08ceb15a06152\"\u003e\u003ccode\u003ecb4b7fd\u003c/code\u003e\u003c/a\u003e build(deps): bump gradle-wrapper to 9.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/0bb56b3df4e3b6d14f73de92746a2eb47dd2d7a3\"\u003e\u003ccode\u003e0bb56b3\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.core:jackson-databind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/ca621b22421f9e846df23112b32113230610c8d9\"\u003e\u003ccode\u003eca621b2\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/e0874d213832bbeaa8eb265c79479b01b5fa7392\"\u003e\u003ccode\u003ee0874d2\u003c/code\u003e\u003c/a\u003e feat: support random access for files in solid RAR4 archives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/90f0548c728b0bf2e94f6e26f9e6396d9d0a7262\"\u003e\u003ccode\u003e90f0548\u003c/code\u003e\u003c/a\u003e build(deps): bump org.jreleaser from 1.23.0 to 1.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/83a5d085dc84991226229fef1515cc902d129241\"\u003e\u003ccode\u003e83a5d08\u003c/code\u003e\u003c/a\u003e build(deps): bump commons-io:commons-io from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/338efcb5472be051989fbafd7179d561c71722eb\"\u003e\u003ccode\u003e338efcb\u003c/code\u003e\u003c/a\u003e ci: replace deprecated action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/5270d235ade54d96dfc9958ab06f495fbbd169e7\"\u003e\u003ccode\u003e5270d23\u003c/code\u003e\u003c/a\u003e perf: replace RarCRC.checkCrc with java.util.zip.CRC32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/d5abcdb9af988ddfa76e98d80787e15525488332\"\u003e\u003ccode\u003ed5abcdb\u003c/code\u003e\u003c/a\u003e build(deps): bump com.github.ben-manes.versions from 0.53.0 to 0.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/edadb28896962fdcf754029bafd0994aaff24530\"\u003e\u003ccode\u003eedadb28\u003c/code\u003e\u003c/a\u003e chore(release): 7.5.10 [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.7...v7.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.21.2 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.1\u003c/strong\u003e is out now, adding support for the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and numerous bug fixes and improvements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jsoup.org/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\r\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\r\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\r\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\r\n  \u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eRegex.usingRe2j()\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.22.1 (2026-Jan-01)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\n  \u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eorg.jsoup.helper.Regex.usingRe2j()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an instance method \u003ccode\u003eParser#unescape(String, boolean)\u003c/code\u003e that unescapes HTML entities using the parser's configuration (e.g. to support error tracking), complementing the existing static utility \u003ccode\u003eParser.unescapeEntities(String, boolean)\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded a configurable maximum parser depth (to limit the number of open elements on stack) to both HTML and XML parsers. The HTML parser now defaults to a depth of 512 to match browser behavior, and protect against unbounded stack growth, while the XML parser keeps unlimited depth by default, but can opt into a limit via \u003ccode\u003eorg.jsoup.parser.Parser#setMaxDepth\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2421\"\u003e#2421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added CI coverage for JDK 25 \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2403\"\u003e#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added a CI fuzzer for contextual fragment parsing (in addition to existing full body HTML and XML fuzzers). [oss-fuzz \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/14041\"\u003e#14041\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/google/oss-fuzz/pull/14041\"\u003egoogle/oss-fuzz#14041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet a removal schedule of jsoup 1.24.1 for previously deprecated APIs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously cached child \u003ccode\u003eElements\u003c/code\u003e of an \u003ccode\u003eElement\u003c/code\u003e were not correctly invalidated in \u003ccode\u003eNode#replaceWith(Node)\u003c/code\u003e, which could lead to incorrect results when subsequently calling \u003ccode\u003eElement#children()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2391\"\u003e#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttribute selector values are now compared literally without trimming. Previously, jsoup trimmed whitespace from selector values and from element attribute values, which could cause mismatches with browser behavior (e.g. \u003ccode\u003e[attr=\u0026quot; foo \u0026quot;]\u003c/code\u003e). Now matches align with the CSS specification and browser engines. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2380\"\u003e#2380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using the JDK HttpClient, any system default proxy (\u003ccode\u003eProxySelector.getDefault()\u003c/code\u003e) was ignored. Now, the system proxy is used if a per-request proxy is not set. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2388\"\u003e#2388\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2390\"\u003e#2390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eValidationException\u003c/code\u003e could be thrown in the adoption agency algorithm with particularly broken input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2393\"\u003e#2393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNull characters in the HTML body were not consistently removed; and in foreign content were not correctly replaced. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2395\"\u003e#2395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn \u003ccode\u003eIndexOutOfBoundsException\u003c/code\u003e could be thrown when parsing a body fragment with crafted input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2397\"\u003e#2397\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2406\"\u003e#2406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using StructuralEvaluators (e.g., a \u003ccode\u003eparent child\u003c/code\u003e selector) across many retained threads, their memoized results could also be retained, increasing memory use. These results are now cleared immediately after use, reducing overall memory consumption. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2411\"\u003e#2411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCloning a \u003ccode\u003eParser\u003c/code\u003e now preserves any custom \u003ccode\u003eTagSet\u003c/code\u003e applied to the parser. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2422\"\u003e#2422\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2423\"\u003e#2423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.21.2...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 2.8.14 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/releases\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003espringdoc-openapi v3.0.3 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seregamorph\"\u003e\u003ccode\u003e@​seregamorph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/pull/3260\"\u003espringdoc/springdoc-openapi#3260\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ehttps://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003espringdoc-openapi v3.0.2 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3229\"\u003e#3229\u003c/a\u003e – Add support for Spring Framework API Versioning with Functional Endpoints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3208\"\u003e#3208\u003c/a\u003e – Add \u003ccode\u003espringdoc.swagger-ui.document-title\u003c/code\u003e property\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.3\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.43\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.0\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Scalar to version \u003cstrong\u003e0.5.55\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3232\"\u003e#3232\u003c/a\u003e – Gracefully handle springdoc endpoint paths during API version resolution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3230\"\u003e#3230\u003c/a\u003e – Scalar source URLs resolve to \u003ccode\u003enull/\u0026lt;groupName\u0026gt;\u003c/code\u003e on second request when using \u003ccode\u003eGroupedOpenApi\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3228\"\u003e#3228\u003c/a\u003e – springdoc-openapi-starter 3.x doesn't depend on \u003ccode\u003eorg.springframework.boot:spring-boot-starter\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/blob/v3.0.3/CHANGELOG.md\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.0.3] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.0.2] - 2026-02-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3229\"\u003e#3229\u003c/a\u003e – Add support for Spring Framework API Versioning with Functional Endpoints\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3208\"\u003e#3208\u003c/a\u003e – Add \u003ccode\u003espringdoc.swagger-ui.document-title\u003c/code\u003e property\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.3\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.43\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.0\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Scalar to version \u003cstrong\u003e0.5.55\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3232\"\u003e#3232\u003c/a\u003e – Gracefully handle springdoc endpoint paths during API version resolution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3230\"\u003e#3230\u003c/a\u003e – Scalar source URLs resolve to \u003ccode\u003enull/\u0026lt;groupName\u0026gt;\u003c/code\u003e on second request when using \u003ccode\u003eGroupedOpenApi\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3228\"\u003e#3228\u003c/a\u003e – springdoc-openapi-starter 3.x doesn't depend on \u003ccode\u003eorg.springframework.boot:spring-boot-starter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3220\"\u003e#3220\u003c/a\u003e – Reachability metadata not compatible with GraalVM 25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3195\"\u003e#3195\u003c/a\u003e – Application won't compile when OpenApi and spring-boot-data-rest is present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3193\"\u003e#3193\u003c/a\u003e – \u003ccode\u003eOpenApi\u003c/code\u003e field in \u003ccode\u003eSpringDocConfigProperties\u003c/code\u003e does not comply with camel case naming conventions\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3c30283fb33ced3b8368c7a890ee05d23119322a\"\u003e\u003ccode\u003e3c30283\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release v3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4184c05db39e96e8d1ce1287d5f58f242a4c8165\"\u003e\u003ccode\u003e4184c05\u003c/code\u003e\u003c/a\u003e update .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/89745c20c3695b9b934cbf77f96ef1cd1df9fac7\"\u003e\u003ccode\u003e89745c2\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4d1a730134720740ed3b9a2831d14e97dbe28780\"\u003e\u003ccode\u003e4d1a730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e from seregamorph/SpringDocHateoasConfiguration-class...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/54e765036d9d49935a97e3ccebd875581efcc8ed\"\u003e\u003ccode\u003e54e7650\u003c/code\u003e\u003c/a\u003e ConditionalOnClass (HateoasProperties.class) in SpringDocHateoasConfiguration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/9f354b2a3cb92a8caa1d0518b1916ac4f79fbd71\"\u003e\u003ccode\u003e9f354b2\u003c/code\u003e\u003c/a\u003e Spring-boot upgrade to version 4.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/14df32f99179db89967a6260562775cd6b883128\"\u003e\u003ccode\u003e14df32f\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3ee9a44547f44fb4982c98b7a5dbc1f6f9aff1a3\"\u003e\u003ccode\u003e3ee9a44\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/df99408a7674af5ea3fc40f79d81bfef372e7c0e\"\u003e\u003ccode\u003edf99408\u003c/code\u003e\u003c/a\u003e upgrade swagger-ui to version 5.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/6ee70f4074e76d3d8554487e4318681d95e444d7\"\u003e\u003ccode\u003e6ee70f4\u003c/code\u003e\u003c/a\u003e upgrade swagger-api to version 2.2.47\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v2.8.14...v3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.tukaani:xz` from 1.11 to 1.12\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tukaani-project/xz-java/blob/master/NEWS.md\"\u003eorg.tukaani:xz's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.12 (2026-03-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix ArrayIndexOutOfBoundsException in the LZMA/LZMA2 encoder on\nx86-64 and ARM64 when running on Java 9 or newer. The affected\ncode isn't used on Java 8. The bug is present in versions 1.10\nand 1.11. If one cannot upgrade, one should set the property\n\u003ccode\u003eorg.tukaani.xz.MatchLengthFinder=Basic\u003c/code\u003e to disable the affected\ncode path.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix ArrayCache usage in LZMAInputStream. If ArrayCache was enabled,\ndecompression was likely to fail quickly when the cache returns a\ncached array. ArrayCache is disabled by default.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe binaries of 1.12 in the Maven Central require Java 8 and\ncontain optimized classes for Java \u0026gt;= 9 as multi-release JAR.\nThey were built with OpenJDK 21.0.10 on GNU/Linux and can be\nreproduced using the following command:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSOURCE_DATE_EPOCH=1772370000 TZ=UTC0 ant maven\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/107a519fac1e6789101ad9c234afe3dc407be7f5\"\u003e\u003ccode\u003e107a519\u003c/code\u003e\u003c/a\u003e Bump the version number to 1.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/3061152e66a8ea2cc6366fd5da21409b8a3d4788\"\u003e\u003ccode\u003e3061152\u003c/code\u003e\u003c/a\u003e Update NEWS.md for 1.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/0ecee25c1590dae305135317cf6e768f49093af7\"\u003e\u003ccode\u003e0ecee25\u003c/code\u003e\u003c/a\u003e Refactor EXTRA_SIZE to getExtraSize()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/ac1aeb197dd8589dc6892f13f5ef68801383ec34\"\u003e\u003ccode\u003eac1aeb1\u003c/code\u003e\u003c/a\u003e Fix ArrayIndexOutOfBoundsException in the LZMA/LZMA2 encoder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/12c75fd1d06ef7db89335d3da1ca5bb91ab6ac0b\"\u003e\u003ccode\u003e12c75fd\u003c/code\u003e\u003c/a\u003e Fix ArrayCache usage with LZMAInputStream\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/e52d9ad621afcaa422668484bad91ce7ba0506ef\"\u003e\u003ccode\u003ee52d9ad\u003c/code\u003e\u003c/a\u003e SHA256SUMS: Add 1.11 files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tukaani-project/xz-java/commit/9a755ec5335de00ce365b365b72e4683e591171f\"\u003e\u003ccode\u003e9a755ec\u003c/code\u003e\u003c/a\u003e CI: Add missing SPDX tags\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tukaani-project/xz-java/compare/v1.11...v1.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tools.jackson:jackson-bom` from 3.0.4 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/c2ea79e9178f0aaa5e4f381c644140357bfc307e\"\u003e\u003ccode\u003ec2ea79e\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3906b27dcdde8fc6a4fef193147109b70bf2f0dc\"\u003e\u003ccode\u003e3906b27\u003c/code\u003e\u003c/a\u003e Prep for 3.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/b17b616c7dc264cfef26f9dd28eaf54bc40b5c4c\"\u003e\u003ccode\u003eb17b616\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/36cf9995cff15aa3e69786da1d6c52f208fddf8a\"\u003e\u003ccode\u003e36cf999\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0ae1c2ae270dabe8e21700cbcee1c266b54e84f0\"\u003e\u003ccode\u003e0ae1c2a\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3c171ebd5d6c5d8f6e8d4f3614cf9b4f0a8babb9\"\u003e\u003ccode\u003e3c171eb\u003c/code\u003e\u003c/a\u003e Prep for 3.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/8046ced071e0b36747bae0f0a96fa21914de1303\"\u003e\u003ccode\u003e8046ced\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ea00ca4cc59ba656a17a071e30a68387e51d3e0d\"\u003e\u003ccode\u003eea00ca4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0628060381a5b86e3fc07854a27b7453de559b7e\"\u003e\u003ccode\u003e0628060\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/22b8aeec79b87751a41c586404850c526eed1dbe\"\u003e\u003ccode\u003e22b8aee\u003c/code\u003e\u003c/a\u003e Prep for 3.1.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.0.4...jackson-bom-3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.ben-manes.caffeine:caffeine` from 3.2.0 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ben-manes/caffeine/releases\"\u003ecom.github.ben-manes.caffeine:caffeine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved access expiration's read performance by avoiding false sharing effects caused by the timestamp update\u003c/li\u003e\n\u003cli\u003eFixed head-of-line blocking of expiration queues caused by in-flight async entries (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed various minor issues found using AI audits\u003c/li\u003e\n\u003cli\u003eAdded \u003ca href=\"https://docs.oracle.com/en/java/javase/25/docs/api//java.base/java/io/ObjectInputFilter.html\"\u003eObjectInputFilter\u003c/a\u003e support to JCache\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.2.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed frequency tracking of weak keys to use the object's identity hash code (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1902\"\u003e#1902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for underscores in \u003ccode\u003eCaffeineSpec\u003c/code\u003e when using numeric literals (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1890\"\u003e#1890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the external api to no longer lock when querying for the maximum size or weighted size (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1897\"\u003e#1897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded detection and recovery when a custom \u003ccode\u003eCompletableFuture\u003c/code\u003e is in an inconsistent state (\u003ca href=\"https://redirect.github.com/quarkusio/quarkus/issues/50513\"\u003equarkus#50513\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.2.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed characteristics returned by Spliterators (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1883\"\u003e#1883\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ecomputeIfAbsent\u003c/code\u003e for an async cache's synchronous view to retry if incomplete\u003c/li\u003e\n\u003cli\u003eImproved \u003ccode\u003eCaffeineSpec\u003c/code\u003e when being reflectively constructed (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1839\"\u003e#1839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the handling of negative durations with variable expiration\u003c/li\u003e\n\u003cli\u003eFixed intermittent null after replacing a weak/soft value (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1820\"\u003e#1820\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/836b65c0a83e5d1641ded9c6de578654bc04b2e9\"\u003e\u003ccode\u003e836b65c\u003c/code\u003e\u003c/a\u003e use a consistent expiration tolerance calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0dc7daf962730048fe46ae4626827afbb97ddf92\"\u003e\u003ccode\u003e0dc7daf\u003c/code\u003e\u003c/a\u003e resurrect in-flight async entries on expiration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0bac8b54fd634ffe95d35ccd1d94daba95e7b369\"\u003e\u003ccode\u003e0bac8b5\u003c/code\u003e\u003c/a\u003e handle head-of-line blocking of expiration queues (fixes \u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/ff258366de0a89129152ead72524ce88f8fca67b\"\u003e\u003ccode\u003eff25836\u003c/code\u003e\u003c/a\u003e test polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f3a6176e2e3a7fe085214472858c6029c108fc3f\"\u003e\u003ccode\u003ef3a6176\u003c/code\u003e\u003c/a\u003e Fix JCache close/createCache races and recursive teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/622fbe7dbf7606f114b956205706935be2fcf3c8\"\u003e\u003ccode\u003e622fbe7\u003c/code\u003e\u003c/a\u003e Fix removal in identity views and widen hill-climber counters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/8da5a7a05d8b725c9dbd577be8ffaf2372aa7e23\"\u003e\u003ccode\u003e8da5a7a\u003c/code\u003e\u003c/a\u003e defer weighing the entry until after the putIfAbsent hit fast-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/94ad0ff8556c9923a8d9746ab85af9ee830dd051\"\u003e\u003ccode\u003e94ad0ff\u003c/code\u003e\u003c/a\u003e Record eviction stats before notifying the removal listener consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f94c0113d0c98dc0afaadf1f6748ea280aa4dff7\"\u003e\u003ccode\u003ef94c011\u003c/code\u003e\u003c/a\u003e Auto-assert eviction stats alongside notifications.withCause.exclusively\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/2e945e090fbff4f96251dfe1bacba3780a5bdb0c\"\u003e\u003ccode\u003e2e945e0\u003c/code\u003e\u003c/a\u003e Skip timestamp writes within tolerance on the read path.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ben-manes/caffeine/compare/v3.2.0...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.assertj:assertj-core` from 3.27.6 to 3.27.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/assertj/assertj/releases\"\u003eorg.assertj:assertj-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.27.7\u003c/h2\u003e\n\u003ch2\u003e:lock: Security\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix XXE vulnerability in \u003ccode\u003eisXmlEqualTo\u003c/code\u003e assertion (CVE-2026-24400)\n\u003cul\u003e\n\u003cli\u003eSee GHSA-rqfh-9r24-8c9r for details; many thanks to \u003ca href=\"https://github.com/wxt201\"\u003e\u003ccode\u003e@​wxt201\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Song-Li\"\u003e\u003ccode\u003e@​Song-Li\u003c/code\u003e\u003c/a\u003e for responsibly reporting it!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:no_entry_sign: Deprecated\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eXmlStringPrettyFormatter\u003c/code\u003e with no replacement\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:bug: Bug Fixes\u003c/h2\u003e\n\u003ch3\u003eGuava\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNavigation to \u003ccode\u003eassertj-core\u003c/code\u003e or \u003ccode\u003eguava\u003c/code\u003e types from \u003ccode\u003eassertj-guava\u003c/code\u003e Javadoc site has unnecessary header \u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3478\"\u003e#3478\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003ch3\u003eCore\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Byte Buddy 1.18.3\u003c/li\u003e\n\u003cli\u003eUpgrade to JUnit BOM 5.14.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGuava\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Guava 33.5.0-jre\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/e84071667f5f8f13084af9dfa54cee5fd9db18db\"\u003e\u003ccode\u003ee840716\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release assertj-build-3.27.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/85ca7eb6609bb179c043b85ae7d290523b1ba79a\"\u003e\u003ccode\u003e85ca7eb\u003c/code\u003e\u003c/a\u003e Deprecate \u003ccode\u003eXmlStringPrettyFormatter\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/77081dc5eb107141df80f95bd0149b468e451341\"\u003e\u003ccode\u003e77081dc\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/b68fc24a9de28f28a486fc5b887c1b8a003a5823\"\u003e\u003ccode\u003eb68fc24\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.31.9 to 4.31.10 in the github-actions group ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/0cf5bb6c50f6ead3deaa2a2ff50ef1e7d933c8a3\"\u003e\u003ccode\u003e0cf5bb6\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003ekotlin.version\u003c/code\u003e from 2.1.0 to 2.2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/d393ef1f5e48c89d47d7cf6d1eae359ceda0a126\"\u003e\u003ccode\u003ed393ef1\u003c/code\u003e\u003c/a\u003e Abort tests when symbolic links cannot be created (\u003ca href=\"https://redirect.github.com/assertj/assertj/issues/3788\"\u003e#3788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/22124331e9922af5a43ab50f7a9a25b65be53be1\"\u003e\u003ccode\u003e2212433\u003c/code\u003e\u003c/a\u003e Add IntelliJ custom inspection for test class names\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/5717d025cfe0f4c66de20f3253c0b0ecba259aa1\"\u003e\u003ccode\u003e5717d02\u003c/code\u003e\u003c/a\u003e Update JetBrains icon\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/a8ec20bd42ed01f9cc6f654046c7dd424b0af07c\"\u003e\u003ccode\u003ea8ec20b\u003c/code\u003e\u003c/a\u003e Add icon for JetBrains products\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/assertj/assertj/commit/c05fb3d052b415fb2d6051df939f3b7903a76afe\"\u003e\u003ccode\u003ec05fb3d\u003c/code\u003e\u003c/a\u003e Bump Maven to 3.9.12 and Wrapper to 3.3.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/assertj/assertj/compare/assertj-build-3.27.6...assertj-build-3.27.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springframework.boot` from 4.0.2 to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spring-projects/spring-boot/releases\"\u003eorg.springframework.boot's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.6\u003c/h2\u003e\n\u003ch2\u003e:lady_beetle: Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50188\"\u003e#50188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eElasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50187\"\u003e#50187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationPidFileWriter does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50185\"\u003e#50185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRandomValuePropertySource is not suitable for secrets \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50183\"\u003e#50183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCassandra auto-configuration misconfigures CqlSessionBuilder \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50180\"\u003e#50180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationTemp does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50178\"\u003e#50178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemote DevTools performs comparison incorrectly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50176\"\u003e#50176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring.rabbitmq.ssl.verify-hostname is applied inconsistently \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50174\"\u003e#50174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50077\"\u003e#50077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClassic starters are missing several modules \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50071\"\u003e#50071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModule spring-boot-resttestclient is missing from spring-boot-starter-test-classic \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/50069\"\u003e#50069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotations like \u003ccode\u003e@Ssl\u003c/code\u003e don't work on \u003ccode\u003e@Bean\u003c/code\u003e methods when using \u003ccode\u003e@ServiceConnection\u003c/code\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50064\"\u003e#50064\u003c/a...\n\n_Description has been truncated_","html_url":"https://github.com/BlindMint/booklore/pull/15","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlindMint%2Fbooklore/issues/15","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/15/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-22T03:12:50.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4499518853","node_id":"PR_kwDORprh4c7eL9QV","number":40,"state":"open","title":"chore(deps): bump the gradle-dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-22T03:12:50.000Z","updated_at":"2026-05-22T03:17:36.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-dependencies","update_count":15,"packages":[{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.7","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"org.flywaydb:flyway-mysql","old_version":"12.1.1","new_version":"12.6.2"},{"name":"org.projectlombok:lombok","old_version":"1.18.44","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"org.apache.pdfbox:jbig2-imageio","old_version":"3.0.4","new_version":"3.0.5"},{"name":"com.github.RouHim:jaudiotagger","old_version":"2.0.18","new_version":"2.0.21"},{"name":"com.github.junrar:junrar","old_version":"7.5.8","new_version":"7.6.0","repository_url":"https://github.com/junrar/junrar"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.springdoc:springdoc-openapi-starter-webmvc-ui","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/springdoc/springdoc-openapi"},{"name":"org.glassfish.jaxb:jaxb-runtime","old_version":"4.0.7","new_version":"4.0.8"},{"name":"tools.jackson:jackson-bom","old_version":"3.1.0","new_version":"3.1.3","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"com.github.ben-manes.caffeine:caffeine","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/ben-manes/caffeine"},{"name":"org.springframework.boot","old_version":"4.0.3","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"org.hibernate.orm","old_version":"7.3.0.Final","new_version":"7.3.5.Final"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"gradle-wrapper","old_version":"9.4.0","new_version":"9.5.1","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-dependencies group with 15 updates in the /booklore-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.7` | `3.5.8` |\n| org.flywaydb:flyway-mysql | `12.1.1` | `12.6.2` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.44` | `1.18.46` |\n| org.apache.pdfbox:jbig2-imageio | `3.0.4` | `3.0.5` |\n| com.github.RouHim:jaudiotagger | `2.0.18` | `2.0.21` |\n| [com.github.junrar:junrar](https://github.com/junrar/junrar) | `7.5.8` | `7.6.0` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) | `3.0.2` | `3.0.3` |\n| org.glassfish.jaxb:jaxb-runtime | `4.0.7` | `4.0.8` |\n| [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `3.1.0` | `3.1.3` |\n| [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) | `3.2.3` | `3.2.4` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `4.0.3` | `4.0.6` |\n| org.hibernate.orm | `7.3.0.Final` | `7.3.5.Final` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.0` | `9.5.1` |\n\n\nUpdates `org.mariadb.jdbc:mariadb-java-client` from 3.5.7 to 3.5.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/releases\"\u003eorg.mariadb.jdbc:mariadb-java-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Java 3.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md\"\u003eorg.mariadb.jdbc:mariadb-java-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/26b34a2f060070beb73515cfd2a49fabc8728843\"\u003e\u003ccode\u003e26b34a2\u003c/code\u003e\u003c/a\u003e Merge branch 'develop'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/06d6efee7838ab8f89ef0f7f362c6b4a95754630\"\u003e\u003ccode\u003e06d6efe\u003c/code\u003e\u003c/a\u003e bump CI actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a86a83c8fd1fa84d8d4349baab3b29df8f575192\"\u003e\u003ccode\u003ea86a83c\u003c/code\u003e\u003c/a\u003e bump 3.5.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/975f9919232b21f40d823423eac6e32d87ea8e35\"\u003e\u003ccode\u003e975f991\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to implement Codec directly and extract shared...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/75bb509521661603e0e90dd6dd5942d1382bf499\"\u003e\u003ccode\u003e75bb509\u003c/code\u003e\u003c/a\u003e [misc] code formatting cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/4c0b6a0ddd95f42fa866ce0d08e384caa2553d43\"\u003e\u003ccode\u003e4c0b6a0\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to extend UtilDateCodec and extract common dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a5b7fb1a26277a076052dbbd1a7ee2bacd4f602f\"\u003e\u003ccode\u003ea5b7fb1\u003c/code\u003e\u003c/a\u003e [misc] convert Reader and Writer from interfaces to final class implementatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/d31eb060fc66e9e37479e18a38bb1401d53ecb63\"\u003e\u003ccode\u003ed31eb06\u003c/code\u003e\u003c/a\u003e [misc] convert ReadableByteBuf from interface to final class implementation, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/11d45a9e6ea4d942e75747132bb8982471d890b8\"\u003e\u003ccode\u003e11d45a9\u003c/code\u003e\u003c/a\u003e [misc] optimize binary row decoder null bitmap checks and simplify signed Big...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/5aad14c381cbc2c4e0383ffed275306f359bd508\"\u003e\u003ccode\u003e5aad14c\u003c/code\u003e\u003c/a\u003e [misc] optimize BigInt column decoding and improve type safety in codec inter...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-mysql` from 12.1.1 to 12.6.2\n\nUpdates `org.projectlombok:lombok` from 1.18.44 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48c8f4b33ef9231ec2587a43d122\"\u003e\u003ccode\u003efcdab3f\u003c/code\u003e\u003c/a\u003e [version] pre-release version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/1cb7d49c5d2dc98af7a66413d8119dec285d0666\"\u003e\u003ccode\u003e1cb7d49\u003c/code\u003e\u003c/a\u003e [changelog]\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e Mention Jackson3 final touches in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/12a15b00555ec8097eca2bf7d77c2c2124e13e0e\"\u003e\u003ccode\u003e12a15b0\u003c/code\u003e\u003c/a\u003e Fix: Bump EA_JDK to 27 (25 and 26 have been released)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/2be766cfc2ef56f2d986f28f734c98535d611aee\"\u003e\u003ccode\u003e2be766c\u003c/code\u003e\u003c/a\u003e Merge branch 'jackson3-final-touches'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/290fa4c8539c7e97b47f7e80033e078127050eb5\"\u003e\u003ccode\u003e290fa4c\u003c/code\u003e\u003c/a\u003e [trivial] constantize the warning we spit out for ambiguous jackson2/3, and m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e6567b6621f86b43033ab4a75e0273780e18e998\"\u003e\u003ccode\u003ee6567b6\u003c/code\u003e\u003c/a\u003e test: Add Jackson 3 test cases and version ambiguity warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/45e72e241abe98dcfb66408402da825dd2b8e925\"\u003e\u003ccode\u003e45e72e2\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 databind/dataformat annotations to HandlerUtil copy lists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/184d42363d86446a63b6270ac1eb352dc43ae76c\"\u003e\u003ccode\u003e184d423\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 support to \u003ca href=\"https://github.com/Jacksonized\"\u003e\u003ccode\u003e@​Jacksonized\u003c/code\u003e\u003c/a\u003e handlers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e027ad0f1515bd33d4d329d90e59dccbaf44651e\"\u003e\u003ccode\u003ee027ad0\u003c/code\u003e\u003c/a\u003e refactored to ShadowClassLoader use Collections::enumeration instead of Vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectlombok/lombok/compare/v1.18.44...v1.18.46\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.pdfbox:jbig2-imageio` from 3.0.4 to 3.0.5\n\nUpdates `com.github.RouHim:jaudiotagger` from 2.0.18 to 2.0.21\n\nUpdates `com.github.junrar:junrar` from 7.5.8 to 7.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/releases\"\u003ecom.github.junrar:junrar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.6.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Robin Schimpf\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.10\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier Roebroeck\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.9\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/blob/master/CHANGELOG.md\"\u003ecom.github.junrar:junrar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.10...v7.6.0\"\u003e7.6.0\u003c/a\u003e (2026-05-13)\u003c/h1\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport random access for files in solid RAR4 archives (\u003ca href=\"https://github.com/junrar/junrar/commits/e0874d2\"\u003ee0874d2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🏎 Perf\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ereplace RarCRC.checkCrc with java.util.zip.CRC32 (\u003ca href=\"https://github.com/junrar/junrar/commits/5270d23\"\u003e5270d23\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gradle-wrapper to 9.5.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/cb4b7fd\"\u003ecb4b7fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/0bb56b3\"\u003e0bb56b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/ca621b2\"\u003eca621b2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.23.0 to 1.24.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/90f0548\"\u003e90f0548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/83a5d08\"\u003e83a5d08\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.github.ben-manes.versions from 0.53.0 to 0.54.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d5abcdb\"\u003ed5abcdb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ereplace deprecated action (\u003ca href=\"https://github.com/junrar/junrar/commits/338efcb\"\u003e338efcb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.9...v7.5.10\"\u003e7.5.10\u003c/a\u003e (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.9\"\u003e7.5.9\u003c/a\u003e (2026-04-13)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/cb4b7fdb84269e95741fa22120e08ceb15a06152\"\u003e\u003ccode\u003ecb4b7fd\u003c/code\u003e\u003c/a\u003e build(deps): bump gradle-wrapper to 9.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/0bb56b3df4e3b6d14f73de92746a2eb47dd2d7a3\"\u003e\u003ccode\u003e0bb56b3\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.core:jackson-databind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/ca621b22421f9e846df23112b32113230610c8d9\"\u003e\u003ccode\u003eca621b2\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/e0874d213832bbeaa8eb265c79479b01b5fa7392\"\u003e\u003ccode\u003ee0874d2\u003c/code\u003e\u003c/a\u003e feat: support random access for files in solid RAR4 archives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/90f0548c728b0bf2e94f6e26f9e6396d9d0a7262\"\u003e\u003ccode\u003e90f0548\u003c/code\u003e\u003c/a\u003e build(deps): bump org.jreleaser from 1.23.0 to 1.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/83a5d085dc84991226229fef1515cc902d129241\"\u003e\u003ccode\u003e83a5d08\u003c/code\u003e\u003c/a\u003e build(deps): bump commons-io:commons-io from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/338efcb5472be051989fbafd7179d561c71722eb\"\u003e\u003ccode\u003e338efcb\u003c/code\u003e\u003c/a\u003e ci: replace deprecated action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/5270d235ade54d96dfc9958ab06f495fbbd169e7\"\u003e\u003ccode\u003e5270d23\u003c/code\u003e\u003c/a\u003e perf: replace RarCRC.checkCrc with java.util.zip.CRC32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/d5abcdb9af988ddfa76e98d80787e15525488332\"\u003e\u003ccode\u003ed5abcdb\u003c/code\u003e\u003c/a\u003e build(deps): bump com.github.ben-manes.versions from 0.53.0 to 0.54.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/edadb28896962fdcf754029bafd0994aaff24530\"\u003e\u003ccode\u003eedadb28\u003c/code\u003e\u003c/a\u003e chore(release): 7.5.10 [skip ci]\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/releases\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003espringdoc-openapi v3.0.3 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seregamorph\"\u003e\u003ccode\u003e@​seregamorph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/pull/3260\"\u003espringdoc/springdoc-openapi#3260\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ehttps://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/blob/v3.0.3/CHANGELOG.md\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.0.3] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3c30283fb33ced3b8368c7a890ee05d23119322a\"\u003e\u003ccode\u003e3c30283\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release v3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4184c05db39e96e8d1ce1287d5f58f242a4c8165\"\u003e\u003ccode\u003e4184c05\u003c/code\u003e\u003c/a\u003e update .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/89745c20c3695b9b934cbf77f96ef1cd1df9fac7\"\u003e\u003ccode\u003e89745c2\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4d1a730134720740ed3b9a2831d14e97dbe28780\"\u003e\u003ccode\u003e4d1a730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e from seregamorph/SpringDocHateoasConfiguration-class...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/54e765036d9d49935a97e3ccebd875581efcc8ed\"\u003e\u003ccode\u003e54e7650\u003c/code\u003e\u003c/a\u003e ConditionalOnClass (HateoasProperties.class) in SpringDocHateoasConfiguration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/9f354b2a3cb92a8caa1d0518b1916ac4f79fbd71\"\u003e\u003ccode\u003e9f354b2\u003c/code\u003e\u003c/a\u003e Spring-boot upgrade to version 4.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/14df32f99179db89967a6260562775cd6b883128\"\u003e\u003ccode\u003e14df32f\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3ee9a44547f44fb4982c98b7a5dbc1f6f9aff1a3\"\u003e\u003ccode\u003e3ee9a44\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/df99408a7674af5ea3fc40f79d81bfef372e7c0e\"\u003e\u003ccode\u003edf99408\u003c/code\u003e\u003c/a\u003e upgrade swagger-ui to version 5.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/6ee70f4074e76d3d8554487e4318681d95e444d7\"\u003e\u003ccode\u003e6ee70f4\u003c/code\u003e\u003c/a\u003e upgrade swagger-api to version 2.2.47\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.glassfish.jaxb:jaxb-runtime` from 4.0.7 to 4.0.8\n\nUpdates `tools.jackson:jackson-bom` from 3.1.0 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/c2ea79e9178f0aaa5e4f381c644140357bfc307e\"\u003e\u003ccode\u003ec2ea79e\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3906b27dcdde8fc6a4fef193147109b70bf2f0dc\"\u003e\u003ccode\u003e3906b27\u003c/code\u003e\u003c/a\u003e Prep for 3.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/b17b616c7dc264cfef26f9dd28eaf54bc40b5c4c\"\u003e\u003ccode\u003eb17b616\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/36cf9995cff15aa3e69786da1d6c52f208fddf8a\"\u003e\u003ccode\u003e36cf999\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0ae1c2ae270dabe8e21700cbcee1c266b54e84f0\"\u003e\u003ccode\u003e0ae1c2a\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3c171ebd5d6c5d8f6e8d4f3614cf9b4f0a8babb9\"\u003e\u003ccode\u003e3c171eb\u003c/code\u003e\u003c/a\u003e Prep for 3.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/8046ced071e0b36747bae0f0a96fa21914de1303\"\u003e\u003ccode\u003e8046ced\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ea00ca4cc59ba656a17a071e30a68387e51d3e0d\"\u003e\u003ccode\u003eea00ca4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0628060381a5b86e3fc07854a27b7453de559b7e\"\u003e\u003ccode\u003e0628060\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/22b8aeec79b87751a41c586404850c526eed1dbe\"\u003e\u003ccode\u003e22b8aee\u003c/code\u003e\u003c/a\u003e Prep for 3.1.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.1.0...jackson-bom-3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.ben-manes.caffeine:caffeine` from 3.2.3 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ben-manes/caffeine/releases\"\u003ecom.github.ben-manes.caffeine:caffeine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved access expiration's read performance by avoiding false sharing effects caused by the timestamp update\u003c/li\u003e\n\u003cli\u003eFixed head-of-line blocking of expiration queues caused by in-flight async entries (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed various minor issues found using AI audits\u003c/li\u003e\n\u003cli\u003eAdded \u003ca href=\"https://docs.oracle.com/en/java/javase/25/docs/api//java.base/java/io/ObjectInputFilter.html\"\u003eObjectInputFilter\u003c/a\u003e support to JCache\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/836b65c0a83e5d1641ded9c6de578654bc04b2e9\"\u003e\u003ccode\u003e836b65c\u003c/code\u003e\u003c/a\u003e use a consistent expiration tolerance calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0dc7daf962730048fe46ae4626827afbb97ddf92\"\u003e\u003ccode\u003e0dc7daf\u003c/code\u003e\u003c/a\u003e resurrect in-flight async entries on expiration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0bac8b54fd634ffe95d35ccd1d94daba95e7b369\"\u003e\u003ccode\u003e0bac8b5\u003c/code\u003e\u003c/a\u003e handle head-of-line blocking of expiration queues (fixes \u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/ff258366de0a89129152ead72524ce88f8fca67b\"\u003e\u003ccode\u003eff25836\u003c/code\u003e\u003c/a\u003e test polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f3a6176e2e3a7fe085214472858c6029c108fc3f\"\u003e\u003ccode\u003ef3a6176\u003c/code\u003e\u003c/a\u003e Fix JCache close/createCache races and recursive teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/622fbe7dbf7606f114b956205706935be2fcf3c8\"\u003e\u003ccode\u003e622fbe7\u003c/code\u003e\u003c/a\u003e Fix removal in identity views and widen hill-climber counters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/8da5a7a05d8b725c9dbd577be8ffaf2372aa7e23\"\u003e\u003ccode\u003e8da5a7a\u003c/code\u003e\u003c/a\u003e defer weighing the entry until after the putIfAbsent hit fast-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/94ad0ff8556c9923a8d9746ab85af9ee830dd051\"\u003e\u003ccode\u003e94ad0ff\u003c/code\u003e\u003c/a\u003e Record eviction stats before notifying the removal listener consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f94c0113d0c98dc0afaadf1f6748ea280aa4dff7\"\u003e\u003ccode\u003ef94c011\u003c/code\u003e\u003c/a\u003e Auto-assert eviction stats alongside notifications.withCause.exclusively\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/2e945e090fbff4f96251dfe1bacba3780a5bdb0c\"\u003e\u003ccode\u003e2e945e0\u003c/code\u003e\u003c/a\u003e Skip timestamp writes within tolerance on the read path.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ben-manes/caffeine/compare/v3.2.3...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springframework.boot` from 4.0.3 to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spring-projects/spring-boot/releases\"\u003eorg.springframework.boot's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.6\u003c/h2\u003e\n\u003ch2\u003e:lady_beetle: Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50188\"\u003e#50188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eElasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50187\"\u003e#50187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationPidFileWriter does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50185\"\u003e#50185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRandomValuePropertySource is not suitable for secrets \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50183\"\u003e#50183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCassandra auto-configuration misconfigures CqlSessionBuilder \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50180\"\u003e#50180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationTemp does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50178\"\u003e#50178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemote DevTools performs comparison incorrectly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50176\"\u003e#50176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring.rabbitmq.ssl.verify-hostname is applied inconsistently \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50174\"\u003e#50174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50077\"\u003e#50077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClassic starters are missing several modules \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50071\"\u003e#50071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModule spring-boot-resttestclient is missing from spring-boot-starter-test-classic \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/50069\"\u003e#50069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotations like \u003ccode\u003e@Ssl\u003c/code\u003e don't work on \u003ccode\u003e@Bean\u003c/code\u003e methods when using \u003ccode\u003e@ServiceConnection\u003c/code\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50064\"\u003e#50064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnversRevisionRepositoriesRegistrar should reuse \u003ccode\u003e@EnableEnversRepositories\u003c/code\u003e rather than configuring the JPA counterpart \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50039\"\u003e#50039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebFlux Cloud Foundry links endpoint includes query string from received request in resolved links \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50017\"\u003e#50017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImports on a containing test class are ignored when a nested class has imports \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50012\"\u003e#50012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWith spring.jackson.use-jackson2-defaults set to true, FAIL_ON_UNKNOWN_PROPERTIES is enabled \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49951\"\u003e#49951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e500 response from env endpoint when supplied pattern is invalid \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49946\"\u003e#49946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49945\"\u003e#49945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP method is lost when configuring excludes in EndpointRequest \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49943\"\u003e#49943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonor HttpMethod for reactive additional endpoint paths \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49880\"\u003e#49880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/artemis image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49869\"\u003e#49869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/activemq image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49866\"\u003e#49866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49854\"\u003e#49854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAPI versioning path strategy should be applied path last as it is not meant to yield \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49800\"\u003e#49800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:notebook_with_decorative_cover: Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs to encourage Java fundamentals for beginners that prefer to learn that way \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50146\"\u003e#50146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP Service Interface Clients still document that API versioning can be configured via properties \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50126\"\u003e#50126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the observability section of the Lettuce documentation is broken \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50097\"\u003e#50097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJavadoc for StaticResourceLocation.FAVICON doesn't describe icons location \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50085\"\u003e#50085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMySamlRelyingPartyConfiguration is missing a Kotlin sample \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50024\"\u003e#50024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncorrect default value for management.httpexchanges.recording.include in configuration metadata \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50019\"\u003e#50019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the Kubernetes documentation when discussing startup probes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50015\"\u003e#50015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypo in JdbcSessionAutoConfiguration Javadoc \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49873\"\u003e#49873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify that configuration property default values are not available through the Environment \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49851\"\u003e#49851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument the need for Liquibase and Flyway starters \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49839\"\u003e#49839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKafka documentation refers to deprecated JSON serializer and deserializer classes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49826\"\u003e#49826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Elasticsearch Client 9.2.8 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50027\"\u003e#50027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Groovy 5.0.5 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49911\"\u003e#49911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Hibernate 7.2.12.Final \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50134\"\u003e#50134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Jackson Bom 3.1.2 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50051\"\u003e#50051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/jaxen-xpath/jaxen/releases/tag/v2.0.1\"\u003eJaxen 2.0.1\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50104\"\u003e#50104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/FirebirdSQL/jaybird/releases/tag/v6.0.5\"\u003eJaybird 6.0.5\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49914\"\u003e#49914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/8821ad2cd381bb4b9615a61479e1de7305a8ba39\"\u003e\u003ccode\u003e8821ad2\u003c/code\u003e\u003c/a\u003e Release v4.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9e4048a03f17adfe78057a3c4d5b4693305c0ae0\"\u003e\u003ccode\u003e9e4048a\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/20bb11c3984802990572ddbeae8b66885a8f2462\"\u003e\u003ccode\u003e20bb11c\u003c/code\u003e\u003c/a\u003e Next development version (v3.5.15-SNAPSHOT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/98daa8ea30f39a5b0ca6768b5cbc2dc8698ef4e1\"\u003e\u003ccode\u003e98daa8e\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9dc5aa2863f598a15d3dfa116f4b89249daba7e7\"\u003e\u003ccode\u003e9dc5aa2\u003c/code\u003e\u003c/a\u003e Polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/874f6294b91da18367b8b5ab7b2fad3fa23cfba6\"\u003e\u003ccode\u003e874f629\u003c/code\u003e\u003c/a\u003e Fix default security with actuator but without health\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/e41b3bf731d1134bc18ec1f68ac01e0fe1c54923\"\u003e\u003ccode\u003ee41b3bf\u003c/code\u003e\u003c/a\u003e Enable hostname verification for SSL connections to Elasticsearch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/ef8527bb0ef8f564f4f9c57a7be99a7aa96c6ab0\"\u003e\u003ccode\u003eef8527b\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/f533a4549c3999aac30cb5830f07dc304933e93d\"\u003e\u003ccode\u003ef533a45\u003c/code\u003e\u003c/a\u003e Do not follow symlinks when writing PID file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/4a7bd332b6d19fef1aa4cf28434985f2b03a2e0f\"\u003e\u003ccode\u003e4a7bd33\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spring-projects/spring-boot/compare/v4.0.3...v4.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.hibernate.orm` from 7.3.0.Final to 7.3.5.Final\n\nUpdates `com.github.ben-manes.versions` from 0.53.0 to 0.54.0\n\nUpdates `gradle-wrapper` from 9.4.0 to 9.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.5.1\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.5.1.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTask provenance in reports and failure messages\u003c/li\u003e\n\u003cli\u003eType-safe accessors for precompiled Kotlin Settings plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.5.1/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/atm1020\"\u003eatm1020\u003c/a\u003e,\n\u003ca href=\"https://github.com/mataha\"\u003emataha\u003c/a\u003e,\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/kelemen\"\u003eAttila Kelemen\u003c/a\u003e,\n\u003ca href=\"https://github.com/britter\"\u003eBenedikt Ritter\u003c/a\u003e,\n\u003ca href=\"https://github.com/Vampire\"\u003eBjörn Kautler\u003c/a\u003e,\n\u003ca href=\"https://github.com/budindepunk\"\u003eCaro Silva Rode\u003c/a\u003e,\n\u003ca href=\"https://github.com/chanani\"\u003eCHANHAN\u003c/a\u003e,\n\u003ca href=\"https://github.com/DmitryNez\"\u003eDmitry Nezavitin\u003c/a\u003e,\n\u003ca href=\"https://github.com/Juneezee\"\u003eEng Zer Jun\u003c/a\u003e,\n\u003ca href=\"https://github.com/KugelLibelle\"\u003eKugelLibelle\u003c/a\u003e,\n\u003ca href=\"https://github.com/vmadalin\"\u003eMadalin Valceleanu\u003c/a\u003e,\n\u003ca href=\"https://github.com/quijote\"\u003eMarkus Gaisbauer\u003c/a\u003e,\n\u003ca href=\"https://github.com/koppor\"\u003eOliver Kopp\u003c/a\u003e,\n\u003ca href=\"https://github.com/hfhbd\"\u003ePhilip Wedemann\u003c/a\u003e,\n\u003ca href=\"https://github.com/ploober\"\u003eploober\u003c/a\u003e,\n\u003ca href=\"https://github.com/rpalcolea\"\u003eRoberto Perez Alcolea\u003c/a\u003e,\n\u003ca href=\"https://github.com/R0h1tAnand\"\u003eRohit Anand\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/usv240\"\u003eUjwal Suresh Vanjare\u003c/a\u003e,\n\u003ca href=\"https://github.com/urdak\"\u003eVictor Merkulov\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.5.1 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew wrapper --gradle-version=9.5.1 \u0026amp;\u0026amp; ./gradlew wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.5.1/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.5.1/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.5.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/fd78213f09782e62ca4957f9cfd3d90c6c3f1767\"\u003e\u003ccode\u003efd78213\u003c/code\u003e\u003c/a\u003e Update Documentation Infrastructure: Fix scrolling issue in user manual (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37861\"\u003e#37861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/7758437128d1c52702786ad719a13ade1b860aa8\"\u003e\u003ccode\u003e7758437\u003c/code\u003e\u003c/a\u003e fix scroll\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/2fd605fdcd69fea10570e9eb1343bbd7ca01c9d0\"\u003e\u003ccode\u003e2fd605f\u003c/code\u003e\u003c/a\u003e Only try to run as worker thread in DefaultBuildOperationQueue (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37845\"\u003e#37845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/af6984901238402386ae263d746380504e5f9138\"\u003e\u003ccode\u003eaf69849\u003c/code\u003e\u003c/a\u003e Release notes for Gradle 9.5.1 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37853\"\u003e#37853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f4d9d03e9bb47d2d17b6d8314fdaa32c3d0b3c1e\"\u003e\u003ccode\u003ef4d9d03\u003c/code\u003e\u003c/a\u003e Release notes for Gradle 9.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/01eda3adf40dbe97e81475e813705409dcfe1091\"\u003e\u003ccode\u003e01eda3a\u003c/code\u003e\u003c/a\u003e Address review feedback on worker-lease retry changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/7024e15139b2db9df831dd15a8b9e9052acd9a51\"\u003e\u003ccode\u003e7024e15\u003c/code\u003e\u003c/a\u003e Revert enrich file visitor with size info on \u003ccode\u003erelease\u003c/code\u003e branch (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37848\"\u003e#37848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/d51476fda21330c037a04b43ec9a93a929d05b87\"\u003e\u003ccode\u003ed51476f\u003c/code\u003e\u003c/a\u003e Fix tryRunAsWorkerThread null-return test to match contract\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/090ebabc5b6f648e01c0269a321d80372fdbfe0f\"\u003e\u003ccode\u003e090ebab\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add getLength() to FilePropertyVisitor.VisitState\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/bceab24677298144860f6919bdcb031e806dbf23\"\u003e\u003ccode\u003ebceab24\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix annotation\u0026quot;\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.0...v9.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Owemeone/grimmory/pull/40","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Owemeone%2Fgrimmory/issues/40","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/40/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-21T01:10:13.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4490923096","node_id":"PR_kwDODf4ejs7dv_2n","number":60,"state":"closed","title":"build(deps): bump the gradle group across 1 directory with 32 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-23T07:07:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-21T01:10:13.000Z","updated_at":"2026-05-23T07:07:51.000Z","time_to_close":194256,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"gradle","update_count":32,"packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"commons-io:commons-io","old_version":"2.21.0","new_version":"2.22.0"},{"name":"com.fasterxml.jackson:jackson-bom","old_version":"2.21.2","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"org.flywaydb:flyway-core","old_version":"12.3.0","new_version":"12.6.1"},{"name":"org.flywaydb:flyway-database-hsqldb","old_version":"12.3.0","new_version":"12.6.1"},{"name":"org.xerial:sqlite-jdbc","old_version":"3.51.3.0","new_version":"3.53.1.0","repository_url":"https://github.com/xerial/sqlite-jdbc"},{"name":"org.graalvm.js:js-community","old_version":"25.0.2","new_version":"25.0.3","repository_url":"https://github.com/oracle/graal"},{"name":"org.graalvm.js:js-scriptengine","old_version":"25.0.2","new_version":"25.0.3","repository_url":"https://github.com/graalvm/graaljs"},{"name":"com.graphql-java:graphql-java","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/graphql-java/graphql-java"},{"name":"org.apache.groovy:groovy-all","old_version":"5.0.5","new_version":"5.0.6","repository_url":"https://github.com/apache/groovy"},{"name":"io.grpc:grpc-protobuf","old_version":"1.80.0","new_version":"1.81.0","repository_url":"https://github.com/grpc/grpc-java"},{"name":"com.drewnoakes:metadata-extractor","old_version":"2.19.0","new_version":"2.20.0","repository_url":"https://github.com/drewnoakes/metadata-extractor"},{"name":"dev.langchain4j:langchain4j","old_version":"1.12.2","new_version":"1.15.0","repository_url":"https://github.com/langchain4j/langchain4j"},{"name":"dev.langchain4j:langchain4j-azure-open-ai","old_version":"1.12.2","new_version":"1.15.0","repository_url":"https://github.com/langchain4j/langchain4j"},{"name":"dev.langchain4j:langchain4j-ollama","old_version":"1.12.2","new_version":"1.15.0","repository_url":"https://github.com/langchain4j/langchain4j"},{"name":"dev.langchain4j:langchain4j-open-ai","old_version":"1.12.2","new_version":"1.15.0","repository_url":"https://github.com/langchain4j/langchain4j"},{"name":"dev.langchain4j:langchain4j-google-ai-gemini","old_version":"1.12.2","new_version":"1.15.0","repository_url":"https://github.com/langchain4j/langchain4j"},{"name":"org.bouncycastle:bcmail-jdk18on","old_version":"1.83","new_version":"1.84","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.bouncycastle:bcpkix-jdk18on","old_version":"1.83","new_version":"1.84","repository_url":"https://github.com/bcgit/bc-java"},{"name":"org.bouncycastle:bcprov-jdk18on","old_version":"1.83","new_version":"1.84","repository_url":"https://github.com/bcgit/bc-java"},{"name":"io.swagger:swagger-compat-spec-parser","old_version":"1.0.75","new_version":"1.0.76"},{"name":"io.swagger.parser.v3:swagger-parser","old_version":"2.1.39","new_version":"2.1.42","repository_url":"https://github.com/swagger-api/swagger-parser"},{"name":"org.thymeleaf:thymeleaf","old_version":"3.1.3.RELEASE","new_version":"3.1.5.RELEASE"},{"name":"org.glassfish.jaxb:jaxb-runtime","old_version":"4.0.7","new_version":"4.0.8"},{"name":"org.seleniumhq.selenium:selenium-java","old_version":"4.41.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"com.sun.xml.messaging.saaj:saaj-impl","old_version":"3.0.4","new_version":"3.0.5"},{"name":"org.slf4j:jul-to-slf4j","old_version":"2.0.17","new_version":"2.0.18"},{"name":"org.junit.jupiter:junit-jupiter","old_version":"6.0.3","new_version":"6.1.0","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"com.github.weisj:jsvg","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/weisJ/jsvg"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"io.freefair.lombok","old_version":"9.2.0","new_version":"9.5.0","repository_url":"https://github.com/freefair/gradle-plugins"},{"name":"org.sonarqube","old_version":"7.2.3.7755","new_version":"7.3.0.8198"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle group with 32 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| commons-io:commons-io | `2.21.0` | `2.22.0` |\n| [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `2.21.2` | `2.21.3` |\n| org.flywaydb:flyway-core | `12.3.0` | `12.6.1` |\n| org.flywaydb:flyway-database-hsqldb | `12.3.0` | `12.6.1` |\n| [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) | `3.51.3.0` | `3.53.1.0` |\n| [org.graalvm.js:js-community](https://github.com/oracle/graal) | `25.0.2` | `25.0.3` |\n| [org.graalvm.js:js-scriptengine](https://github.com/graalvm/graaljs) | `25.0.2` | `25.0.3` |\n| [com.graphql-java:graphql-java](https://github.com/graphql-java/graphql-java) | `25.0` | `26.0` |\n| [org.apache.groovy:groovy-all](https://github.com/apache/groovy) | `5.0.5` | `5.0.6` |\n| [io.grpc:grpc-protobuf](https://github.com/grpc/grpc-java) | `1.80.0` | `1.81.0` |\n| [com.drewnoakes:metadata-extractor](https://github.com/drewnoakes/metadata-extractor) | `2.19.0` | `2.20.0` |\n| [dev.langchain4j:langchain4j](https://github.com/langchain4j/langchain4j) | `1.12.2` | `1.15.0` |\n| [dev.langchain4j:langchain4j-azure-open-ai](https://github.com/langchain4j/langchain4j) | `1.12.2` | `1.15.0` |\n| [dev.langchain4j:langchain4j-ollama](https://github.com/langchain4j/langchain4j) | `1.12.2` | `1.15.0` |\n| [dev.langchain4j:langchain4j-open-ai](https://github.com/langchain4j/langchain4j) | `1.12.2` | `1.15.0` |\n| [dev.langchain4j:langchain4j-google-ai-gemini](https://github.com/langchain4j/langchain4j) | `1.12.2` | `1.15.0` |\n| [org.bouncycastle:bcmail-jdk18on](https://github.com/bcgit/bc-java) | `1.83` | `1.84` |\n| [org.bouncycastle:bcpkix-jdk18on](https://github.com/bcgit/bc-java) | `1.83` | `1.84` |\n| [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) | `1.83` | `1.84` |\n| io.swagger:swagger-compat-spec-parser | `1.0.75` | `1.0.76` |\n| [io.swagger.parser.v3:swagger-parser](https://github.com/swagger-api/swagger-parser) | `2.1.39` | `2.1.42` |\n| org.thymeleaf:thymeleaf | `3.1.3.RELEASE` | `3.1.5.RELEASE` |\n| org.glassfish.jaxb:jaxb-runtime | `4.0.7` | `4.0.8` |\n| [org.seleniumhq.selenium:selenium-java](https://github.com/SeleniumHQ/selenium) | `4.41.0` | `4.44.0` |\n| com.sun.xml.messaging.saaj:saaj-impl | `3.0.4` | `3.0.5` |\n| org.slf4j:jul-to-slf4j | `2.0.17` | `2.0.18` |\n| [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) | `6.0.3` | `6.1.0` |\n| [com.github.weisj:jsvg](https://github.com/weisJ/jsvg) | `2.0.0` | `2.1.0` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [io.freefair.lombok](https://github.com/freefair/gradle-plugins) | `9.2.0` | `9.5.0` |\n| org.sonarqube | `7.2.3.7755` | `7.3.0.8198` |\n\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `commons-io:commons-io` from 2.21.0 to 2.22.0\n\nUpdates `com.fasterxml.jackson:jackson-bom` from 2.21.2 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/374fbd08ee91a6c91626bae1d6497df21c89b541\"\u003e\u003ccode\u003e374fbd0\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-2.21.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/7059df78cc36832349acad026169ff890f4c718c\"\u003e\u003ccode\u003e7059df7\u003c/code\u003e\u003c/a\u003e Prep for 2.21.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/2fd60bdab3228f6b99dce81326d9fd7eaf587401\"\u003e\u003ccode\u003e2fd60bd\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/b82a3640491f66be2e56bef377b5002cd9d1567b\"\u003e\u003ccode\u003eb82a364\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ef4e013e95fc64583b0a414711648a84fc50be46\"\u003e\u003ccode\u003eef4e013\u003c/code\u003e\u003c/a\u003e Merge branch '2.18' into 2.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/536ae51c1db9dfbfc8dda697ccfd6545cf626d2b\"\u003e\u003ccode\u003e536ae51\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/536c5339035643fdca46ddd947f253afd072f764\"\u003e\u003ccode\u003e536c533\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/426b778e5ea490d164e572a63319c7cf2f362f2f\"\u003e\u003ccode\u003e426b778\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-2.18.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/a73cda9be3e57f29c53fea748f1f867eaa1457ab\"\u003e\u003ccode\u003ea73cda9\u003c/code\u003e\u003c/a\u003e Prep for 2.18.7 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/76b4a05087a9e42eb1b26f59d5b7028b0496da5e\"\u003e\u003ccode\u003e76b4a05\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.21.2...jackson-bom-2.21.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-core` from 12.3.0 to 12.6.1\n\nUpdates `org.flywaydb:flyway-database-hsqldb` from 12.3.0 to 12.6.1\n\nUpdates `org.flywaydb:flyway-database-hsqldb` from 12.3.0 to 12.6.1\n\nUpdates `org.xerial:sqlite-jdbc` from 3.51.3.0 to 3.53.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/xerial/sqlite-jdbc/releases\"\u003eorg.xerial:sqlite-jdbc's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.53.1.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.1 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/8263322\"\u003e8263322\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔄️ Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erewrite amalgamation_version.sh for POSIX shell (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/52522d0\"\u003e52522d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix android usage (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7ef8e0f\"\u003e7ef8e0f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.14.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/a28d6ce\"\u003ea28d6ce\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gummy-bears-api-24 to 0.13.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/248e1e9\"\u003e248e1e9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.jreleaser:jreleaser-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/396fdf3\"\u003e396fdf3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.tngtech.archunit:archunit-junit5 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/458abe1\"\u003e458abe1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econditionally bootstrap SLF4J API JAR (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bc7d223\"\u003ebc7d223\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emake JAVA_CLASSPATH configurable (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/5aa7426\"\u003e5aa7426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Gauthier Roebroeck, Michael Osipov\u003c/p\u003e\n\u003ch2\u003eRelease 3.53.0.0\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🚀 Features\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejdbc\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eexpose wal_autocheckpoint pragma in SQLiteConfig (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/dd2adcc\"\u003edd2adcc\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1397\"\u003e#1397\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003esqlite\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to sqlite 3.53.0 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/baaf087\"\u003ebaaf087\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eunscoped\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epublish multiple classifer jars (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/bdd2b64\"\u003ebdd2b64\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1273\"\u003e#1273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter Android support (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/7eb6f3f\"\u003e7eb6f3f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/xerial/sqlite-jdbc/issues/1378\"\u003e#1378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.sonatype.central:central-publishing-maven-plugin (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/19259e5\"\u003e19259e5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commits/f572217\"\u003ef572217\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003edeps-dev\u003c/strong\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/b01674f0bffc45b4c213dd873867e64b9194104b\"\u003e\u003ccode\u003eb01674f\u003c/code\u003e\u003c/a\u003e chore(release): 3.53.1.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/e6719db995a1fee385f0421cee1eaf78e3587013\"\u003e\u003ccode\u003ee6719db\u003c/code\u003e\u003c/a\u003e chore: update native libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/826332265f8f1069faeb4a61761a8651efaefb0c\"\u003e\u003ccode\u003e8263322\u003c/code\u003e\u003c/a\u003e feat(sqlite): upgrade to sqlite 3.53.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/396fdf30d850ca78dad59bccaafae25c1e86998a\"\u003e\u003ccode\u003e396fdf3\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump org.jreleaser:jreleaser-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/bc7d22394987d5c84706c844f0b95c7856e3f294\"\u003e\u003ccode\u003ebc7d223\u003c/code\u003e\u003c/a\u003e build: conditionally bootstrap SLF4J API JAR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/4cd221a72480a681f91f78f9d8a99372daf423ce\"\u003e\u003ccode\u003e4cd221a\u003c/code\u003e\u003c/a\u003e chore: remove execute bit on non-executable files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/5aa74267e6a01c071ec88d1882de8aeec0d8d22a\"\u003e\u003ccode\u003e5aa7426\u003c/code\u003e\u003c/a\u003e build: make JAVA_CLASSPATH configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/52522d02ee5cffa8f283054d8bf5a5165206caac\"\u003e\u003ccode\u003e52522d0\u003c/code\u003e\u003c/a\u003e refactor: rewrite amalgamation_version.sh for POSIX shell\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/a28d6cef66da00f8559445dfacd9f34a871509d6\"\u003e\u003ccode\u003ea28d6ce\u003c/code\u003e\u003c/a\u003e build(deps): bump gummy-bears-api-24 to 0.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xerial/sqlite-jdbc/commit/458abe135cad6e20f00504418a09946c81c8dbd7\"\u003e\u003ccode\u003e458abe1\u003c/code\u003e\u003c/a\u003e build(deps-dev): bump com.tngtech.archunit:archunit-junit5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/xerial/sqlite-jdbc/compare/3.51.3.0...3.53.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.graalvm.js:js-community` from 25.0.2 to 25.0.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/oracle/graal/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.graalvm.js:js-scriptengine` from 25.0.2 to 25.0.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oracle/graaljs/blob/vm-25.0.3/CHANGELOG.md\"\u003eorg.graalvm.js:js-scriptengine's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Node.js to version 22.22.0.\u003c/li\u003e\n\u003cli\u003eLimited Chrome inspector remote debugging to localhost.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 25.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eECMAScript 2025 mode/features enabled by default.\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 22.17.1.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-intl-duration-format\"\u003e\u003ccode\u003eIntl.DurationFormat\u003c/code\u003e\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.text-encoding\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.CONSTRAINED\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-defer-import-eval\"\u003e\u003ccode\u003eimport defer\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-upsert\"\u003e\u003ccode\u003eUpsert\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEnabled source phase imports from WebAssembly modules (\u003ccode\u003eimport source mod from \u0026quot;./mod.wasm\u0026quot;\u003c/code\u003e) by default if the \u003ccode\u003ejs.webassembly\u003c/code\u003e option is enabled and the \u003ccode\u003ejs.source-phase-imports\u003c/code\u003e option is not explicitly set to \u003ccode\u003efalse\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Node.js to version 22.13.1.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-is-error\"\u003e\u003ccode\u003eError.isError\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-math-sum\"\u003e\u003ccode\u003eMath.sumPrecise\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-promise-try\"\u003e\u003ccode\u003ePromise.try\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-atomics-microwait\"\u003e\u003ccode\u003eAtomics.pause\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-arraybuffer-base64\"\u003eUint8Array to/from base64 and hex\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-source-phase-imports\"\u003eSource Phase Imports\u003c/a\u003e proposal. It is available behind the experimental option (\u003ccode\u003e--js.source-phase-imports\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/WebAssembly/esm-integration\"\u003eWebAssembly/ES Module Integration\u003c/a\u003e proposal, allowing \u003ccode\u003e.wasm\u003c/code\u003e modules to be loaded via \u003ccode\u003eimport\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eImplemented basic Worker API (resembling the API available in \u003ccode\u003ed8\u003c/code\u003e). It is available behind the experimental option \u003ccode\u003e--js.worker\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded option \u003ccode\u003ejs.stack-trace-api\u003c/code\u003e that enables/disables \u003ccode\u003eError.captureStackTrace\u003c/code\u003e, \u003ccode\u003eError.prepareStackTrace\u003c/code\u003e and \u003ccode\u003eError.stackTraceLimit\u003c/code\u003e. These non-standard extensions are disabled by default (unless \u003ccode\u003ejs.v8-compat\u003c/code\u003e or \u003ccode\u003ejs.nashorn-compat\u003c/code\u003e is used).\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.webassembly\u003c/code\u003e stable.\u003c/li\u003e\n\u003cli\u003eMade options \u003ccode\u003ejs.load\u003c/code\u003e, \u003ccode\u003ejs.print\u003c/code\u003e, and \u003ccode\u003ejs.graal-builtin\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.locale\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e. Its value, if non-empty, must be a well-formed Unicode BCP 47 locale identifier and is now validated.\u003c/li\u003e\n\u003cli\u003eAdded an experimental \u003ccode\u003ejava.util.concurrent.Executor\u003c/code\u003e that can be used to post tasks into the event loop thread in \u003ccode\u003egraal-nodejs\u003c/code\u003e. It is available as \u003ccode\u003erequire('node:graal').eventLoopExecutor\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ccode\u003eTextDecoder\u003c/code\u003e and \u003ccode\u003eTextEncoder\u003c/code\u003e APIs of the \u003ca href=\"https://encoding.spec.whatwg.org/\"\u003eWHATWG Encoding Standard\u003c/a\u003e. They are available behind the experimental option (\u003ccode\u003e--js.text-encoding\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-regex-escaping\"\u003e\u003ccode\u003eRegExp.escape\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-regexp-modifiers\"\u003eRegular Expression Pattern Modifiers\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-iterator-sequencing\"\u003eIterator Sequencing\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eECMAScript 2024 mode/features enabled by default.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-redeclarable-global-eval-vars\"\u003eMake eval-introduced global vars redeclarable\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-float16array\"\u003eFloat16Array\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-array-from-async\"\u003eArray.fromAsync\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-resizablearraybuffer\"\u003eResizable and Growable ArrayBuffers\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 20.13.1.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.esm-eval-returns-exports\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/WebAssembly/threads\"\u003eWebAssembly threads\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-promise-with-resolvers\"\u003ePromise.withResolvers\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplementation of \u003ca href=\"https://github.com/tc39/proposal-async-iterator-helpers\"\u003eAsync Iterator Helpers\u003c/a\u003e proposal (that was split out from Iterator Helpers proposal) was moved behind the experimental option \u003ccode\u003e--js.async-iterator-helpers\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-is-usv-string\"\u003eWell-Formed Unicode Strings\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-json-parse-with-source\"\u003eJSON.parse source text access\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 18.18.2.\u003c/li\u003e\n\u003cli\u003eWebAssembly support in Node.js has been enabled by default. It can be disabled using the experimental option \u003ccode\u003e--js.webassembly=false\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/eba5be12437ddf85b56b6d50180ce93e6769f72b\"\u003e\u003ccode\u003eeba5be1\u003c/code\u003e\u003c/a\u003e release GraalVM 25.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/8df2eb01cb3db4a30762d4bf42d206048f251242\"\u003e\u003ccode\u003e8df2eb0\u003c/code\u003e\u003c/a\u003e [GR-74224] Backport to 25.0: Restrict Chrome Inspector to localhost.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/af7f1c39a9e4ec97b7566467751eac01a2052e5e\"\u003e\u003ccode\u003eaf7f1c3\u003c/code\u003e\u003c/a\u003e [GR-73523] Backport to 25.0: Fix PE bailout in eval().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/768265bdcffb8e3f68f76fc072b286263daff706\"\u003e\u003ccode\u003e768265b\u003c/code\u003e\u003c/a\u003e Run basic smoke tests in the gate.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/3a36e8d60d2662fe0f940a5e95b100bd262225c0\"\u003e\u003ccode\u003e3a36e8d\u003c/code\u003e\u003c/a\u003e Restrict Chrome Inspector to localhost\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/131723667b91e4a6d4a454775768332c4d2996d7\"\u003e\u003ccode\u003e1317236\u003c/code\u003e\u003c/a\u003e Add regression test for eval() compilation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/f4583082cb7e3214bcc348d8826f2f78e95952ba\"\u003e\u003ccode\u003ef458308\u003c/code\u003e\u003c/a\u003e ScriptNode.runEval should create function object behind a TruffleBoundary.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/45949a471dc38a93dc07db5b3ce9a3f15dc1e95a\"\u003e\u003ccode\u003e45949a4\u003c/code\u003e\u003c/a\u003e [GR-72571] Backport to 25.0: Transient aux-engine-cache test failure.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/6e789095b2500bc40245b393ff29a56b790dfc1b\"\u003e\u003ccode\u003e6e78909\u003c/code\u003e\u003c/a\u003e Work around transient aux-engine-cache test failure due to speculative optimi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/bae1c8504b284238aa1f3140abddbb2592d7b82a\"\u003e\u003ccode\u003ebae1c85\u003c/code\u003e\u003c/a\u003e [GR-72939] Backport to 25.0.3: Upgrading Node.js version used by graal-nodejs...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/graalvm/graaljs/compare/vm-25.0.2...vm-25.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.graalvm.js:js-scriptengine` from 25.0.2 to 25.0.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/oracle/graaljs/blob/vm-25.0.3/CHANGELOG.md\"\u003eorg.graalvm.js:js-scriptengine's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Node.js to version 22.22.0.\u003c/li\u003e\n\u003cli\u003eLimited Chrome inspector remote debugging to localhost.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 25.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eECMAScript 2025 mode/features enabled by default.\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 22.17.1.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-intl-duration-format\"\u003e\u003ccode\u003eIntl.DurationFormat\u003c/code\u003e\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.text-encoding\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.CONSTRAINED\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-defer-import-eval\"\u003e\u003ccode\u003eimport defer\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-upsert\"\u003e\u003ccode\u003eUpsert\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eEnabled source phase imports from WebAssembly modules (\u003ccode\u003eimport source mod from \u0026quot;./mod.wasm\u0026quot;\u003c/code\u003e) by default if the \u003ccode\u003ejs.webassembly\u003c/code\u003e option is enabled and the \u003ccode\u003ejs.source-phase-imports\u003c/code\u003e option is not explicitly set to \u003ccode\u003efalse\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Node.js to version 22.13.1.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-is-error\"\u003e\u003ccode\u003eError.isError\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-math-sum\"\u003e\u003ccode\u003eMath.sumPrecise\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-promise-try\"\u003e\u003ccode\u003ePromise.try\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-atomics-microwait\"\u003e\u003ccode\u003eAtomics.pause\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-arraybuffer-base64\"\u003eUint8Array to/from base64 and hex\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-source-phase-imports\"\u003eSource Phase Imports\u003c/a\u003e proposal. It is available behind the experimental option (\u003ccode\u003e--js.source-phase-imports\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/WebAssembly/esm-integration\"\u003eWebAssembly/ES Module Integration\u003c/a\u003e proposal, allowing \u003ccode\u003e.wasm\u003c/code\u003e modules to be loaded via \u003ccode\u003eimport\u003c/code\u003e statements.\u003c/li\u003e\n\u003cli\u003eImplemented basic Worker API (resembling the API available in \u003ccode\u003ed8\u003c/code\u003e). It is available behind the experimental option \u003ccode\u003e--js.worker\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded option \u003ccode\u003ejs.stack-trace-api\u003c/code\u003e that enables/disables \u003ccode\u003eError.captureStackTrace\u003c/code\u003e, \u003ccode\u003eError.prepareStackTrace\u003c/code\u003e and \u003ccode\u003eError.stackTraceLimit\u003c/code\u003e. These non-standard extensions are disabled by default (unless \u003ccode\u003ejs.v8-compat\u003c/code\u003e or \u003ccode\u003ejs.nashorn-compat\u003c/code\u003e is used).\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.webassembly\u003c/code\u003e stable.\u003c/li\u003e\n\u003cli\u003eMade options \u003ccode\u003ejs.load\u003c/code\u003e, \u003ccode\u003ejs.print\u003c/code\u003e, and \u003ccode\u003ejs.graal-builtin\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.locale\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e. Its value, if non-empty, must be a well-formed Unicode BCP 47 locale identifier and is now validated.\u003c/li\u003e\n\u003cli\u003eAdded an experimental \u003ccode\u003ejava.util.concurrent.Executor\u003c/code\u003e that can be used to post tasks into the event loop thread in \u003ccode\u003egraal-nodejs\u003c/code\u003e. It is available as \u003ccode\u003erequire('node:graal').eventLoopExecutor\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ccode\u003eTextDecoder\u003c/code\u003e and \u003ccode\u003eTextEncoder\u003c/code\u003e APIs of the \u003ca href=\"https://encoding.spec.whatwg.org/\"\u003eWHATWG Encoding Standard\u003c/a\u003e. They are available behind the experimental option (\u003ccode\u003e--js.text-encoding\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-regex-escaping\"\u003e\u003ccode\u003eRegExp.escape\u003c/code\u003e\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-regexp-modifiers\"\u003eRegular Expression Pattern Modifiers\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-iterator-sequencing\"\u003eIterator Sequencing\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eECMAScript 2024 mode/features enabled by default.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-redeclarable-global-eval-vars\"\u003eMake eval-introduced global vars redeclarable\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-float16array\"\u003eFloat16Array\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-array-from-async\"\u003eArray.fromAsync\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-resizablearraybuffer\"\u003eResizable and Growable ArrayBuffers\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 20.13.1.\u003c/li\u003e\n\u003cli\u003eMade option \u003ccode\u003ejs.esm-eval-returns-exports\u003c/code\u003e stable and allowed in \u003ccode\u003eSandboxPolicy.UNTRUSTED\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 24.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/WebAssembly/threads\"\u003eWebAssembly threads\u003c/a\u003e proposal.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-promise-with-resolvers\"\u003ePromise.withResolvers\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplementation of \u003ca href=\"https://github.com/tc39/proposal-async-iterator-helpers\"\u003eAsync Iterator Helpers\u003c/a\u003e proposal (that was split out from Iterator Helpers proposal) was moved behind the experimental option \u003ccode\u003e--js.async-iterator-helpers\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-is-usv-string\"\u003eWell-Formed Unicode Strings\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eImplemented the \u003ca href=\"https://github.com/tc39/proposal-json-parse-with-source\"\u003eJSON.parse source text access\u003c/a\u003e proposal. It is available in ECMAScript staging mode (\u003ccode\u003e--js.ecmascript-version=staging\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eUpdated Node.js to version 18.18.2.\u003c/li\u003e\n\u003cli\u003eWebAssembly support in Node.js has been enabled by default. It can be disabled using the experimental option \u003ccode\u003e--js.webassembly=false\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/eba5be12437ddf85b56b6d50180ce93e6769f72b\"\u003e\u003ccode\u003eeba5be1\u003c/code\u003e\u003c/a\u003e release GraalVM 25.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/8df2eb01cb3db4a30762d4bf42d206048f251242\"\u003e\u003ccode\u003e8df2eb0\u003c/code\u003e\u003c/a\u003e [GR-74224] Backport to 25.0: Restrict Chrome Inspector to localhost.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/af7f1c39a9e4ec97b7566467751eac01a2052e5e\"\u003e\u003ccode\u003eaf7f1c3\u003c/code\u003e\u003c/a\u003e [GR-73523] Backport to 25.0: Fix PE bailout in eval().\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/768265bdcffb8e3f68f76fc072b286263daff706\"\u003e\u003ccode\u003e768265b\u003c/code\u003e\u003c/a\u003e Run basic smoke tests in the gate.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/3a36e8d60d2662fe0f940a5e95b100bd262225c0\"\u003e\u003ccode\u003e3a36e8d\u003c/code\u003e\u003c/a\u003e Restrict Chrome Inspector to localhost\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/131723667b91e4a6d4a454775768332c4d2996d7\"\u003e\u003ccode\u003e1317236\u003c/code\u003e\u003c/a\u003e Add regression test for eval() compilation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/f4583082cb7e3214bcc348d8826f2f78e95952ba\"\u003e\u003ccode\u003ef458308\u003c/code\u003e\u003c/a\u003e ScriptNode.runEval should create function object behind a TruffleBoundary.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/45949a471dc38a93dc07db5b3ce9a3f15dc1e95a\"\u003e\u003ccode\u003e45949a4\u003c/code\u003e\u003c/a\u003e [GR-72571] Backport to 25.0: Transient aux-engine-cache test failure.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/6e789095b2500bc40245b393ff29a56b790dfc1b\"\u003e\u003ccode\u003e6e78909\u003c/code\u003e\u003c/a\u003e Work around transient aux-engine-cache test failure due to speculative optimi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oracle/graaljs/commit/bae1c8504b284238aa1f3140abddbb2592d7b82a\"\u003e\u003ccode\u003ebae1c85\u003c/code\u003e\u003c/a\u003e [GR-72939] Backport to 25.0.3: Upgrading Node.js version used by graal-nodejs...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/graalvm/graaljs/compare/vm-25.0.2...vm-25.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.graphql-java:graphql-java` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/graphql-java/graphql-java/releases\"\u003ecom.graphql-java:graphql-java's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eThis is the 26.0 release of graphql-java. Highlights are summarized below; the full list of merged PRs is at the end.\u003c/p\u003e\n\u003ch2\u003e⚠️ Breaking Changes\u003c/h2\u003e\n\u003ch3\u003eQuery complexity limits are now enforced by default\u003c/h3\u003e\n\u003cp\u003eNew \u003ccode\u003eQueryComplexityLimits\u003c/code\u003e validation checks \u003ccode\u003emaxDepth\u003c/code\u003e (default \u003cstrong\u003e100\u003c/strong\u003e) and \u003ccode\u003emaxFieldsCount\u003c/code\u003e (default \u003cstrong\u003e100,000\u003c/strong\u003e) as part of standard validation. Queries exceeding these limits will now fail with new \u003ccode\u003eMaxQueryDepthExceeded\u003c/code\u003e / \u003ccode\u003eMaxQueryFieldsExceeded\u003c/code\u003e validation errors.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSet custom limits via \u003ccode\u003eGraphQLContext\u003c/code\u003e using \u003ccode\u003eQueryComplexityLimits.KEY\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDisable entirely with \u003ccode\u003eQueryComplexityLimits.NONE\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIntroduced in \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4256\"\u003e#4256\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eValidation rule filtering API changed\u003c/h3\u003e\n\u003cp\u003eIn \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4228\"\u003e#4228\u003c/a\u003e the rule-filter predicate changed from \u003ccode\u003ePredicate\u0026lt;Class\u0026lt;?\u0026gt;\u0026gt;\u003c/code\u003e to \u003ccode\u003ePredicate\u0026lt;OperationValidationRule\u0026gt;\u003c/code\u003e in \u003ccode\u003eValidator.validateDocument(...)\u003c/code\u003e and \u003ccode\u003eParseAndValidate.parseAndValidate(...)\u003c/code\u003e. Callers that filtered by class (e.g. \u003ccode\u003erule -\u0026gt; rule != NoUnusedFragments.class\u003c/code\u003e) must migrate to the enum (\u003ccode\u003erule -\u0026gt; rule != OperationValidationRule.NO_UNUSED_FRAGMENTS\u003c/code\u003e). The \u003ccode\u003e@Internal\u003c/code\u003e classes \u003ccode\u003eAbstractRule\u003c/code\u003e and \u003ccode\u003eRulesVisitor\u003c/code\u003e were removed.\u003c/p\u003e\n\u003ch3\u003eBuilt-in directive handling consolidated (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4229\"\u003e#4229\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDirectiveInfo\u003c/code\u003e was removed. Replace usages:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDirectiveInfo.isGraphqlSpecifiedDirective(...)\u003c/code\u003e → \u003ccode\u003eDirectives.isBuiltInDirective(...)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDirectiveInfo.GRAPHQL_SPECIFICATION_DIRECTIVES\u003c/code\u003e → \u003ccode\u003eDirectives.BUILT_IN_DIRECTIVES\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDirectiveInfo.GRAPHQL_SPECIFICATION_DIRECTIVE_MAP\u003c/code\u003e → \u003ccode\u003eDirectives.BUILT_IN_DIRECTIVES_MAP\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDirective ordering is now consistent: all 7 built-in directives appear first, followed by user-defined directives.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eGraphQLSchema.Builder.clearDirectives()\u003c/code\u003e was initially removed then re-added in \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4276\"\u003e#4276\u003c/a\u003e with new semantics — it clears all \u003ccode\u003eadditionalDirectives\u003c/code\u003e, but built-in directives are always re-added automatically at build time.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOneOf inhabitability validation (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4248\"\u003e#4248\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eNew validator rejects OneOf input types that cannot be populated with a finite value (e.g. \u003ccode\u003einput A @oneOf { a: A }\u003c/code\u003e). Schemas that previously validated may now be rejected.\u003c/p\u003e\n\u003ch3\u003eNon-null field validation for code-built schemas (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4194\"\u003e#4194\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eCode-built schemas now perform the same deprecated-on-non-null field validation as SDL-built ones. Schemas relying on the gap may now fail validation.\u003c/p\u003e\n\u003ch3\u003e\u003ccode\u003eGraphQLSchema.getCodeRegistry()\u003c/code\u003e is no longer \u003ccode\u003e@Nullable\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4247\"\u003e#4247\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eThe return type was incorrectly annotated nullable. Callers may now drop redundant null checks; downstream nullness tooling will reflect the change.\u003c/p\u003e\n\u003ch3\u003eJSpecify nullability annotations rolled out broadly\u003c/h3\u003e\n\u003cp\u003eWaves 2 and 3 (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4184\"\u003e#4184\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4274\"\u003e#4274\u003c/a\u003e) plus many individual PRs annotated hundreds of classes across \u003ccode\u003egraphql.analysis\u003c/code\u003e, \u003ccode\u003egraphql.execution\u003c/code\u003e, \u003ccode\u003egraphql.language\u003c/code\u003e, \u003ccode\u003egraphql.schema\u003c/code\u003e and others with \u003ccode\u003e@NullMarked\u003c/code\u003e/\u003ccode\u003e@NullUnmarked\u003c/code\u003e/\u003ccode\u003e@Nullable\u003c/code\u003e. Kotlin and other null-aware callers will now see stricter nullability contracts; code that relied on previously-permissive signatures may need adjustment.\u003c/p\u003e\n\u003ch2\u003e✨ New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eGraphQLSchema.FastBuilder\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4197\"\u003e#4197\u003c/a\u003e) — a more restrictive but \u003cstrong\u003e~5× faster\u003c/strong\u003e schema builder that reduces both time and memory for large schemas.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eQuery complexity limits\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4256\"\u003e#4256\u003c/a\u003e) — depth/field-count guardrails baked into validation (see breaking changes above for the enforcement side).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eQueryAppliedDirective\u003c/code\u003e on operations and documents\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4297\"\u003e#4297\u003c/a\u003e) — directives applied at the operation/document level are now exposed as \u003ccode\u003eQueryAppliedDirective\u003c/code\u003es.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNew instrumentation hook for post-exception-handling results\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4206\"\u003e#4206\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4207\"\u003e#4207\u003c/a\u003e) — observe the \u003ccode\u003eDataFetcherResult\u003c/code\u003e after \u003ccode\u003eDataFetcherExceptionHandler\u003c/code\u003e has mapped exceptions to errors. \u003ccode\u003eChainedInstrumentation\u003c/code\u003e delegates the new hook correctly.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGeneric \u003ccode\u003eDataFetcherResult.newBuilder(T data)\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4254\"\u003e#4254\u003c/a\u003e) — removes the need for explicit type witnesses on the common \u003ccode\u003eDataFetcherResult.\u0026lt;T\u0026gt;newResult().data(x)...\u003c/code\u003e pattern.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRe-added \u003ccode\u003eGraphQLSchema.Builder.clearDirectives()\u003c/code\u003e\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4276\"\u003e#4276\u003c/a\u003e) — useful with \u003ccode\u003eGraphQLSchema.transform\u003c/code\u003e to rewrite non-built-in directives; built-ins are always re-added.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003etoString()\u003c/code\u003e on AST directives holders\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4195\"\u003e#4195\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚡ Performance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eIncremental \u003ccode\u003e@defer\u003c/code\u003e execution starts earlier\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4174\"\u003e#4174\u003c/a\u003e) — begins processing deferred payloads as soon as the first incremental call is detected instead of waiting for the initial result to complete.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eValidation consolidation\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4228\"\u003e#4228\u003c/a\u003e) — all operation validation rules run in a single \u003ccode\u003eOperationValidator\u003c/code\u003e pass, significantly cutting validation overhead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/86afa76971b94b7887c1c3b0e5afa996ef46805b\"\u003e\u003ccode\u003e86afa76\u003c/code\u003e\u003c/a\u003e Update test baseline [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/95f49d95945b34ca45e9e1cc23ce1368309632fc\"\u003e\u003ccode\u003e95f49d9\u003c/code\u003e\u003c/a\u003e Bump JaCoCo to 0.8.14 for Java 25 class file support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/3af0c5cc61331ade2787bb3a0891e19750357345\"\u003e\u003ccode\u003e3af0c5c\u003c/code\u003e\u003c/a\u003e Update test baseline [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/a6cc631e328d7d01ea261aa21d9225294adfd155\"\u003e\u003ccode\u003ea6cc631\u003c/code\u003e\u003c/a\u003e JSpecify big wave 3 (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4274\"\u003e#4274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/d26e4d61dfa90f092b36e0756bfae31655d17751\"\u003e\u003ccode\u003ed26e4d6\u003c/code\u003e\u003c/a\u003e Update test baseline [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/c86eb07d9d99be6f15e1caeb7958be109cdd6ef8\"\u003e\u003ccode\u003ec86eb07\u003c/code\u003e\u003c/a\u003e Add JSpecify annotations to 10 language package classes (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4219\"\u003e#4219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/b1543882a65b1af4207c0a0626b04ae797c3a2bb\"\u003e\u003ccode\u003eb154388\u003c/code\u003e\u003c/a\u003e Update test baseline [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/aafbbd54f0591cc1c34de9c7d8451aff09bb4b8f\"\u003e\u003ccode\u003eaafbbd5\u003c/code\u003e\u003c/a\u003e Add JSpecify annotations to 10 language package classes (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4218\"\u003e#4218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/3e15aed1209b59e71bedf8ad6e3e46ba5b28a177\"\u003e\u003ccode\u003e3e15aed\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4359\"\u003e#4359\u003c/a\u003e from graphql-java/dependabot/github_actions/actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/graphql-java/graphql-java/commit/e0ca0613e1c15a7a6c4d012e1ebba37e091ac682\"\u003e\u003ccode\u003ee0ca061\u003c/code\u003e\u003c/a\u003e Bump org.apache.groovy:groovy from 5.0.4 to 5.0.5 (\u003ca href=\"https://redirect.github.com/graphql-java/graphql-java/issues/4363\"\u003e#4363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/graphql-java/graphql-java/compare/v25.0...v26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.groovy:groovy-all` from 5.0.5 to 5.0.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/apache/groovy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.grpc:grpc-protobuf` from 1.80.0 to 1.81.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/grpc/grpc-java/releases\"\u003eio.grpc:grpc-protobuf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eV1.81.0\u003c/h2\u003e\n\u003cp\u003eIn this release we drop support for Android API level 22 or lower (Lollipop or earlier), following Google Play Service’s \u003ca href=\"https://developers.google.com/android/guides/setup\"\u003ediscontinued updates for Lollipop (API levels 21 \u0026amp; 22)\u003c/a\u003e and now requires a minimum of API level 23 (Android 6.0 Marshmallow).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAPI Changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eapi: Deprecate LoadBalancer.handleResolvedAddresses(). Developers maintaining custom LoadBalancer implementations should transition to using LoadBalancer.acceptResolvedAddresses(). Unlike the deprecated method, acceptResolvedAddresses() returns a Status object, allowing the load balancer to explicitly report success or reject the update if the provided addresses or configuration are invalid. (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/11623\"\u003e#11623\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBehavior Changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ecore: Enable dns \u0026quot;caching\u0026quot; on Android for 30 seconds to reduce CPU impact of a refresh loop with an LB policy (0675f70af). DnsNameResolver ignores re-resolution requests on OpenJDK-like platforms if it has been too soon since the last DNS query because InetAddress.getAllByName() has a cache with a fixed entry lifetime, but this logic was disabled for Android which does not have that style of cache. Android’s cache uses the result TTL, which will rarely be less than 30 seconds. This change would probably be most noticeable when 1) changing to a different network (e.g., from wifi to mobile), 2) the server has different addresses for different networks, and 3) the app is not using AndroidChannelBuilder with an \u003ccode\u003eandroid.context.Context\u003c/code\u003e. For reference, it seems Chrome caches for 1 minute\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug Fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eopentelemetry: Fix baggage propagation, the baggage propagation for opentelemetry introduced in \u003ca href=\"https://redirect.github.com/grpc/grpc-java/pull/12389\"\u003e#12389\u003c/a\u003e was broken. The context is decided once and used for all recording for the call, thus guaranteeing all record()s have consistent information.\u003c/li\u003e\n\u003cli\u003ecore: Address a race condition where \u003ccode\u003eManagedChannelOrphanWrapper\u003c/code\u003e could incorrectly log a \u0026quot;not shutdown properly\u0026quot; warning during garbage collection when using directExecutor(). (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12705\"\u003e#12705\u003c/a\u003e) (d459338d9)\u003c/li\u003e\n\u003cli\u003exds: Fix xDS HTTP CONNECT's transport socket name bug which is now corrected to use \u003ccode\u003etypeUrl\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12740\"\u003e#12740\u003c/a\u003e) (eac9fe961)\u003c/li\u003e\n\u003cli\u003exds: Fix an issue where subchannel metrics were dropping their association with the \u003ccode\u003ebackend_service\u003c/code\u003e. This ensures xDS load balancing metrics are reported accurately. (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12735\"\u003e#12735\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eNew Features\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enetty: Add tcp metrics, by implementing a few of the metrics defined in \u003ca href=\"https://redirect.github.com/grpc/proposal/pull/519\"\u003eA80\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eapi: Add a CallOption for a custom label on per-RPC metrics (0e39b2967). This CallOption is copied by grpc-opentelemetry to the \u003ccode\u003egrpc.client.call.custom\u003c/code\u003e label as defined by \u003ca href=\"https://github.com/grpc/proposal/blob/master/A108-otel-custom-per-call-label.md\"\u003egRFC A108\u003c/a\u003e. See also the \u003ca href=\"https://grpc.io/docs/guides/opentelemetry-metrics/\"\u003egRPC OpenTelemetry Metrics guide\u003c/a\u003e (update \u003ca href=\"https://redirect.github.com/grpc/grpc.io/pull/1505\"\u003ein-progress\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003exds: Add support for Weighted Round Robin (WRR) load balancing driven by custom backend metrics, implementing the behavior defined in gRFC A114. (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12645\"\u003e#12645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eutils: Update \u003ccode\u003eAdvancedTlsX509KeyManager\u003c/code\u003e so that developers can now preserve and use key aliases when dynamically reloading TLS certificates. (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12686\"\u003e#12686\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the \u0026quot;Outgoing Flow Control\u0026quot; section in the Manual Flow Control example to say onNext() does not block, but rather queues the messages in memory and advises developers to use CallStreamObserver.isReady() to prevent this memory exhaustion (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12700\"\u003e#12700\u003c/a\u003e) (a3a9ffcbe) (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12726\"\u003e#12726\u003c/a\u003e) (65ae2efda)\u003c/li\u003e\n\u003cli\u003eexamples: Clean up Health example, and document need for grpc-services (3ed732fc0)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDependencies\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Dependencies (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12719\"\u003e#12719\u003c/a\u003e) (16e17abba). Google-auth-library: 1.42.1, animal-sniffer: 1.27, assertj-core:3.27.7, error_prone_annotations:2.48.0, proto-google-common-protos:2.64.1, google-cloud-logging:3.23.10, jetty-http2-server:12.1.7, jetty-ee10-servlet:12.1.7, lincheck:3.4, opentelemetry-api:1.60.1, opentelemetry-exporter-prometheus:1.60.1-alpha, opentelemetry-gcp-resources:1.54.0-alpha, opentelemetry-sdk-extension-autoconfigure:1.60.1, opentelemetry-sdk-testing:1.60.1, robolectric:4.16.1, tomcat-embed-core:10.1.52, tomcat-embed-core9: 9.0.115,\u003c/li\u003e\n\u003cli\u003eUpgrade Netty to 4.1.132 and netty-tcnative to 2.0.75 (1528f809c)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eThanks to\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/becomeStar\"\u003e\u003ccode\u003e@​becomeStar\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benjaminp\"\u003e\u003ccode\u003e@​benjaminp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoeCqupt\"\u003e\u003ccode\u003e@​JoeCqupt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kainsin\"\u003e\u003ccode\u003e@​Kainsin\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/merlimat\"\u003e\u003ccode\u003e@​merlimat\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SreeramdasLavanya\"\u003e\u003ccode\u003e@​SreeramdasLavanya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/themechbro\"\u003e\u003ccode\u003e@​themechbro\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zhangweikop\"\u003e\u003ccode\u003e@​zhangweikop\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/6951542f66c59f63cbf5348b38a2306a3964adda\"\u003e\u003ccode\u003e6951542\u003c/code\u003e\u003c/a\u003e Bump version to 1.81.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/e94188e81298c36ac9654dc76025940171abc0a4\"\u003e\u003ccode\u003ee94188e\u003c/code\u003e\u003c/a\u003e Update README etc to reference 1.81.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/4813c6d06089d49a479f7f1786297dc3d8c0e549\"\u003e\u003ccode\u003e4813c6d\u003c/code\u003e\u003c/a\u003e core,xds: Fix backend_service plumbing for subchannel metrics (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12735\"\u003e#12735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/6737eb583a273dd13bf9e7b82cc1d9df75e551bd\"\u003e\u003ccode\u003e6737eb5\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Replace javax ThreadSafe annotation with errorprone ThreadSafe (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/1274\"\u003e#1274\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/ef3531325ba98fa043f6f7f16fa0715e9296d7a3\"\u003e\u003ccode\u003eef35313\u003c/code\u003e\u003c/a\u003e Replace javax ThreadSafe annotation with errorprone ThreadSafe (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12742\"\u003e#12742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/3ed732fc09c41b185cd03fdd6864c4ebb82f3a80\"\u003e\u003ccode\u003e3ed732f\u003c/code\u003e\u003c/a\u003e examples: Clean up Health, and document need for grpc-services\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/eac9fe9612881d54d51ddc5496599ba9a8201021\"\u003e\u003ccode\u003eeac9fe9\u003c/code\u003e\u003c/a\u003e xds: fix xDS HTTP CONNECT's transport socket name bug (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12740\"\u003e#12740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/1528f809c9e506cf2e7052e3f41fd8b75636d3d3\"\u003e\u003ccode\u003e1528f80\u003c/code\u003e\u003c/a\u003e Upgrade Netty to 4.1.132 and netty-tcnative to 2.0.75\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/d057a7ebee2945fc0a9ca58b36afdb5b37a99680\"\u003e\u003ccode\u003ed057a7e\u003c/code\u003e\u003c/a\u003e [xds] Implement A114: WRR support for custom backend metrics (\u003ca href=\"https://redirect.github.com/grpc/grpc-java/issues/12645\"\u003e#12645\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/grpc/grpc-java/commit/842636f88452c30769a5561f7659db6e4f9fc2a0\"\u003e\u003ccode\u003e842636f\u003c/code\u003e\u003c/a\u003e xds: Add configuration objects for ExtAuthz, GrpcService and Bootstrap change...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/grpc/grpc-java/compare/v1.80.0...v1.81.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.drewnoakes:metadata-extractor` from 2.19.0 to 2.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/drewnoakes/metadata-extractor/releases\"\u003ecom.drewnoakes:metadata-extractor's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify string creation by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/637\"\u003edrewnoakes/metadata-extractor#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCopy paste error fixed by \u003ca href=\"https://github.com/GRuppert\"\u003e\u003ccode\u003e@​GRuppert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/641\"\u003edrewnoakes/metadata-extractor#641\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded code to parse OM System II makernote (uses Olympus II makernote) by \u003ca href=\"https://github.com/AndyDragon\"\u003e\u003ccode\u003e@​AndyDragon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/642\"\u003edrewnoakes/metadata-extractor#642\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd HEIC/HEIF to README by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/645\"\u003edrewnoakes/metadata-extractor#645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTrim trailing null bytes from some string values by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/647\"\u003edrewnoakes/metadata-extractor#647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed parsing of illegal dates + handle known null value by \u003ca href=\"https://github.com/StefanOltmann\"\u003e\u003ccode\u003e@​StefanOltmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/650\"\u003edrewnoakes/metadata-extractor#650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport AVIF / AV1 images by \u003ca href=\"https://github.com/StefanOltmann\"\u003e\u003ccode\u003e@​StefanOltmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/649\"\u003edrewnoakes/metadata-extractor#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emaven.yml fixed after branch rename by \u003ca href=\"https://github.com/StefanOltmann\"\u003e\u003ccode\u003e@​StefanOltmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/652\"\u003edrewnoakes/metadata-extractor#652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed wrong date/time when timezone is null by \u003ca href=\"https://github.com/StefanOltmann\"\u003e\u003ccode\u003e@​StefanOltmann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/651\"\u003edrewnoakes/metadata-extractor#651\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate lengths before parsing JPEG data by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/653\"\u003edrewnoakes/metadata-extractor#653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Automatic-Module-Name by \u003ca href=\"https://github.com/tsmock\"\u003e\u003ccode\u003e@​tsmock\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/621\"\u003edrewnoakes/metadata-extractor#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PDF support to detectFileType by \u003ca href=\"https://github.com/max-peroch\"\u003e\u003ccode\u003e@​max-peroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/665\"\u003edrewnoakes/metadata-extractor#665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix of \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/issues/676\"\u003e#676\u003c/a\u003e by \u003ca href=\"https://github.com/ogawaffm\"\u003e\u003ccode\u003e@​ogawaffm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/677\"\u003edrewnoakes/metadata-extractor#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/issues/685\"\u003e#685\u003c/a\u003e | Fix StringIndexOutOfBoundsException in ICC DESC tag processing by \u003ca href=\"https://github.com/DAN-MU-ZI\"\u003e\u003ccode\u003e@​DAN-MU-ZI\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/687\"\u003edrewnoakes/metadata-extractor#687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump Java version to 1.8 by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/696\"\u003edrewnoakes/metadata-extractor#696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix rounding error in shutter speed description by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/695\"\u003edrewnoakes/metadata-extractor#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtend file type detection by \u003ca href=\"https://github.com/drewnoakes\"\u003e\u003ccode\u003e@​drewnoakes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/drewnoakes/metadata-extractor/pull/697\"\u003edrewnoakes/metadata-extractor#697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue \u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/ricekot/zap-extensions/pull/60","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricekot%2Fzap-extensions/issues/60","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/60/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-14T00:27:03.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4442091877","node_id":"PR_kwDOP3VK-c7bVHXb","number":413,"state":"closed","title":"Bump the gradle-updates group across 1 directory with 12 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-21T01:34:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-14T00:27:03.000Z","updated_at":"2026-05-21T01:34:54.000Z","time_to_close":608869,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"gradle-updates","update_count":12,"packages":[{"name":"tools.jackson.core:jackson-core","old_version":"3.1.2","new_version":"3.1.3","repository_url":"https://github.com/FasterXML/jackson-core"},{"name":"io.sentry:sentry-bom","old_version":"8.38.0","new_version":"8.41.0","repository_url":"https://github.com/getsentry/sentry-java"},{"name":"au.com.dius.pact.consumer:junit5","old_version":"4.6.20","new_version":"4.7.1","repository_url":"https://github.com/pact-foundation/pact-jvm"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"io.sentry.jvm.gradle","old_version":"6.4.0","new_version":"6.6.0","repository_url":"https://github.com/getsentry/sentry-android-gradle-plugin"},{"name":"au.com.dius.pact","old_version":"4.6.20","new_version":"4.7.1"},{"name":"com.deque.html.axe-core:playwright","old_version":"4.11.1","new_version":"4.11.3","repository_url":"https://github.com/dequelabs/axe-core-maven-html"},{"name":"com.fasterxml.jackson.core:jackson-databind","old_version":"2.21.2","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson"},{"name":"org.postgresql:postgresql","old_version":"42.7.10","new_version":"42.7.11","repository_url":"https://github.com/pgjdbc/pgjdbc"},{"name":"org.projectlombok:lombok","old_version":"1.18.44","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"gradle-wrapper","old_version":"9.4.1","new_version":"9.5.0","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-updates group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tools.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) | `3.1.2` | `3.1.3` |\n| [io.sentry:sentry-bom](https://github.com/getsentry/sentry-java) | `8.38.0` | `8.41.0` |\n| [au.com.dius.pact.consumer:junit5](https://github.com/pact-foundation/pact-jvm) | `4.6.20` | `4.7.1` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [io.sentry.jvm.gradle](https://github.com/getsentry/sentry-android-gradle-plugin) | `6.4.0` | `6.6.0` |\n| au.com.dius.pact | `4.6.20` | `4.7.1` |\n| [com.deque.html.axe-core:playwright](https://github.com/dequelabs/axe-core-maven-html) | `4.11.1` | `4.11.3` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.21.2` | `2.21.3` |\n| [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) | `42.7.10` | `42.7.11` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.44` | `1.18.46` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.1` | `9.5.0` |\n\n\nUpdates `tools.jackson.core:jackson-core` from 3.1.2 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/6956129ace69d7d28dfde174be6490e1707b43ae\"\u003e\u003ccode\u003e6956129\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/2796462b783180ad13cc9c8a6dbe1e8efe221e62\"\u003e\u003ccode\u003e2796462\u003c/code\u003e\u003c/a\u003e Prep for 3.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/87c70b305d74b3bfff32fab0daebfec12f6a8301\"\u003e\u003ccode\u003e87c70b3\u003c/code\u003e\u003c/a\u003e Merge branch '2.x' into 3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/f21195dc779d1fcf7e25dd1ba445bbd524536efc\"\u003e\u003ccode\u003ef21195d\u003c/code\u003e\u003c/a\u003e Merge branch '2.21' into 2.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/59fb9cc1bbe4424221b171e88b37bcbdbdba1c50\"\u003e\u003ccode\u003e59fb9cc\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/3cb88d1cf3bc30e9629af25f0f503db236b508e2\"\u003e\u003ccode\u003e3cb88d1\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/5815636064ca5f5f2f5af0a91c7ad96368c239e7\"\u003e\u003ccode\u003e5815636\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.21.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/6e728f9bde605f98e34d67d5db0a1b530b0a9bfd\"\u003e\u003ccode\u003e6e728f9\u003c/code\u003e\u003c/a\u003e Prep for 2.21.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/4e30cf21ca4faeffa062ae13730fade890ce2540\"\u003e\u003ccode\u003e4e30cf2\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/1429fffeca1eee24d7c3d7a0887c5ac10cac7a58\"\u003e\u003ccode\u003e1429fff\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-core/compare/jackson-core-3.1.2...jackson-core-3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tools.jackson.core:jackson-databind` from 3.1.2 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.sentry:sentry-bom` from 8.38.0 to 8.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-java/releases\"\u003eio.sentry:sentry-bom's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.41.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSession Replay: experimental support for capturing \u003ccode\u003eSurfaceView\u003c/code\u003e content (e.g. Unity, video players, maps) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5333\"\u003e#5333\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eTo enable, set \u003ccode\u003eoptions.sessionReplay.isCaptureSurfaceViews = true\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eOr via manifest: \u003ccode\u003e\u0026lt;meta-data android:name=\u0026quot;io.sentry.session-replay.capture-surface-views\u0026quot; android:value=\u0026quot;true\u0026quot; /\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWarning:\u003c/strong\u003e masking granularity is at the SurfaceView level only — the SDK cannot mask individual elements rendered inside the SurfaceView (e.g. native Unity UI, map labels, video frames). Only enable for SurfaceViews whose content is safe to record.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSentry.feedback()\u003c/code\u003e API for \u003ccode\u003eshow()\u003c/code\u003e and \u003ccode\u003ecapture()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5349\"\u003e#5349\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSentry.showUserFeedbackDialog()\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentry.feedback().show()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentry.captureFeedback()\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentry.feedback().capture()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentry.captureUserFeedback()\u003c/code\u003e and \u003ccode\u003eUserFeedback\u003c/code\u003e are deprecated in favor of \u003ccode\u003eSentry.feedback().capture()\u003c/code\u003e with the new \u003ccode\u003eFeedback\u003c/code\u003e type\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentryUserFeedbackDialog\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentryUserFeedbackForm\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAll deprecated APIs will be removed in the next major version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eSentryUserFeedbackButton\u003c/code\u003e (View-based and Compose-based) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5350\"\u003e#5350\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eIt will be removed in the next major version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd per-form shake-to-show support for \u003ccode\u003eSentryUserFeedbackForm\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5353\"\u003e#5353\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eUseful for enabling shake-to-report on specific screens instead of globally\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003eSentryUserFeedbackForm.Builder(activity)\n  .configurator { it.isUseShakeGesture = true }\n  .create()\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support for Kafka (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5249\"\u003e#5249\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eYou will need to add the \u003ccode\u003esentry-kafka\u003c/code\u003e dependency and opt-in via the new option.\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003eoptions.setEnableQueueTracing(true)\u003c/code\u003e on \u003ccode\u003eSentry.init\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eOr set \u003ccode\u003esentry.enable-queue-tracing=true\u003c/code\u003e in \u003ccode\u003eapplication.properties\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFor Spring Boot Kafka is auto instrumented and no further configuration is needed.\n\u003cul\u003e\n\u003cli\u003ealso see \u003ca href=\"https://docs.sentry.io/platforms/java/guides/spring-boot/integrations/kafka/\"\u003ehttps://docs.sentry.io/platforms/java/guides/spring-boot/integrations/kafka/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003ekafka-clients\u003c/code\u003e directly\n\u003cul\u003e\n\u003cli\u003eyou need to wrap your \u003ccode\u003eKafkaProducer\u003c/code\u003e via \u003ccode\u003eSentryKafkaProducer.wrap(kafkaProducer)\u003c/code\u003e to get \u003ccode\u003equeue.publish\u003c/code\u003e spans\u003c/li\u003e\n\u003cli\u003eand you may use our \u003ccode\u003eSentryKafkaConsumerTracing.withTracing\u003c/code\u003e helper to instrument the consumer side manually.\u003c/li\u003e\n\u003cli\u003ealso see \u003ca href=\"https://docs.sentry.io/platforms/java/integrations/kafka/\"\u003ehttps://docs.sentry.io/platforms/java/integrations/kafka/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix soft input keyboard not being shown on the Feedback form (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5359\"\u003e#5359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix shake-to-report not triggering on some devices due to high acceleration threshold (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5366\"\u003e#5366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix feedback form retaining previous message when shown again via shake (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5366\"\u003e#5366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid stack overflow when deserializing large flat JSON objects (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5361\"\u003e#5361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump Native SDK from v0.13.7 to v0.14.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5334\"\u003e#5334\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5365\"\u003e#5365\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0140\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/compare/0.13.7...0.14.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump Gradle from v9.4.1 to v9.5.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5344\"\u003e#5344\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/blob/master/CHANGELOG.md#v950\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.1...v9.5.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.40.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md\"\u003eio.sentry:sentry-bom's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.41.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSession Replay: experimental support for capturing \u003ccode\u003eSurfaceView\u003c/code\u003e content (e.g. Unity, video players, maps) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5333\"\u003e#5333\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eTo enable, set \u003ccode\u003eoptions.sessionReplay.isCaptureSurfaceViews = true\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eOr via manifest: \u003ccode\u003e\u0026lt;meta-data android:name=\u0026quot;io.sentry.session-replay.capture-surface-views\u0026quot; android:value=\u0026quot;true\u0026quot; /\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWarning:\u003c/strong\u003e masking granularity is at the SurfaceView level only — the SDK cannot mask individual elements rendered inside the SurfaceView (e.g. native Unity UI, map labels, video frames). Only enable for SurfaceViews whose content is safe to record.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSentry.feedback()\u003c/code\u003e API for \u003ccode\u003eshow()\u003c/code\u003e and \u003ccode\u003ecapture()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5349\"\u003e#5349\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eSentry.showUserFeedbackDialog()\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentry.feedback().show()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentry.captureFeedback()\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentry.feedback().capture()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentry.captureUserFeedback()\u003c/code\u003e and \u003ccode\u003eUserFeedback\u003c/code\u003e are deprecated in favor of \u003ccode\u003eSentry.feedback().capture()\u003c/code\u003e with the new \u003ccode\u003eFeedback\u003c/code\u003e type\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSentryUserFeedbackDialog\u003c/code\u003e is deprecated in favor of \u003ccode\u003eSentryUserFeedbackForm\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAll deprecated APIs will be removed in the next major version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eSentryUserFeedbackButton\u003c/code\u003e (View-based and Compose-based) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5350\"\u003e#5350\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eIt will be removed in the next major version\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd per-form shake-to-show support for \u003ccode\u003eSentryUserFeedbackForm\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5353\"\u003e#5353\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eUseful for enabling shake-to-report on specific screens instead of globally\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003eSentryUserFeedbackForm.Builder(activity)\n  .configurator { it.isUseShakeGesture = true }\n  .create()\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support for Kafka (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5249\"\u003e#5249\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eYou will need to add the \u003ccode\u003esentry-kafka\u003c/code\u003e dependency and opt-in via the new option.\n\u003cul\u003e\n\u003cli\u003eSet \u003ccode\u003eoptions.setEnableQueueTracing(true)\u003c/code\u003e on \u003ccode\u003eSentry.init\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eOr set \u003ccode\u003esentry.enable-queue-tracing=true\u003c/code\u003e in \u003ccode\u003eapplication.properties\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFor Spring Boot Kafka is auto instrumented and no further configuration is needed.\n\u003cul\u003e\n\u003cli\u003ealso see \u003ca href=\"https://docs.sentry.io/platforms/java/guides/spring-boot/integrations/kafka/\"\u003ehttps://docs.sentry.io/platforms/java/guides/spring-boot/integrations/kafka/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003ekafka-clients\u003c/code\u003e directly\n\u003cul\u003e\n\u003cli\u003eyou need to wrap your \u003ccode\u003eKafkaProducer\u003c/code\u003e via \u003ccode\u003eSentryKafkaProducer.wrap(kafkaProducer)\u003c/code\u003e to get \u003ccode\u003equeue.publish\u003c/code\u003e spans\u003c/li\u003e\n\u003cli\u003eand you may use our \u003ccode\u003eSentryKafkaConsumerTracing.withTracing\u003c/code\u003e helper to instrument the consumer side manually.\u003c/li\u003e\n\u003cli\u003ealso see \u003ca href=\"https://docs.sentry.io/platforms/java/integrations/kafka/\"\u003ehttps://docs.sentry.io/platforms/java/integrations/kafka/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix soft input keyboard not being shown on the Feedback form (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5359\"\u003e#5359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix shake-to-report not triggering on some devices due to high acceleration threshold (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5366\"\u003e#5366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix feedback form retaining previous message when shown again via shake (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5366\"\u003e#5366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid stack overflow when deserializing large flat JSON objects (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5361\"\u003e#5361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump Native SDK from v0.13.7 to v0.14.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5334\"\u003e#5334\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5365\"\u003e#5365\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0140\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-native/compare/0.13.7...0.14.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump Gradle from v9.4.1 to v9.5.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/pull/5344\"\u003e#5344\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/blob/master/CHANGELOG.md#v950\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.1...v9.5.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/6219eb3d898ce527b1024eaa75e6a3ee5e985601\"\u003e\u003ccode\u003e6219eb3\u003c/code\u003e\u003c/a\u003e release: 8.41.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/566492415f8cb9a2596b13798f4088f3d5b7f614\"\u003e\u003ccode\u003e5664924\u003c/code\u003e\u003c/a\u003e Fix Changelog (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5381\"\u003e#5381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/7ce4e911688f63d921a37f085dba629a097d9680\"\u003e\u003ccode\u003e7ce4e91\u003c/code\u003e\u003c/a\u003e feat(replay): Capture SurfaceView content (experimental) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5333\"\u003e#5333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/d446e68d100ab9363b233ae6b98698bb13782049\"\u003e\u003ccode\u003ed446e68\u003c/code\u003e\u003c/a\u003e chore(codeowners): Add Nelson and Adam (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5369\"\u003e#5369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/11ad3372fed13e4508810060fd3997fb786ac176\"\u003e\u003ccode\u003e11ad337\u003c/code\u003e\u003c/a\u003e feat(core): Queue Instrumentation for Kafka (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5249\"\u003e#5249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/0188f486bee02039e435beaa70a120f93bcf390c\"\u003e\u003ccode\u003e0188f48\u003c/code\u003e\u003c/a\u003e chore: Fix entry in \u003ccode\u003eCHANGELOG\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/83a416d1cfa89e79f71fd8eb9fe05d8e5058f665\"\u003e\u003ccode\u003e83a416d\u003c/code\u003e\u003c/a\u003e fix: Avoid stack overflow when deserializing large flat JSON objects (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5361\"\u003e#5361\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/e3e78e1c6cc641228dd910ee39c28ed6cf1ee710\"\u003e\u003ccode\u003ee3e78e1\u003c/code\u003e\u003c/a\u003e fix(feedback): Improve shake detection sensitivity (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5366\"\u003e#5366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/d25ef951db8d52542757932b3dbe4497e60f8465\"\u003e\u003ccode\u003ed25ef95\u003c/code\u003e\u003c/a\u003e chore(deps): update Native SDK to v0.14.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5365\"\u003e#5365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/commit/c7ed38cb3bf1241be0ebf27a7df97a2b13b118e8\"\u003e\u003ccode\u003ec7ed38c\u003c/code\u003e\u003c/a\u003e feat(ci): Notify linked issues on release (\u003ca href=\"https://redirect.github.com/getsentry/sentry-java/issues/5367\"\u003e#5367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-java/compare/8.38.0...8.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `au.com.dius.pact.consumer:junit5` from 4.6.20 to 4.7.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pact-foundation/pact-jvm/releases\"\u003eau.com.dius.pact.consumer:junit5's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.7.1\u003c/h2\u003e\n\u003ch2\u003eFeature release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e0cdd0e3b3 - chore: Corrected all the doctests after update to the readmes\u003c/li\u003e\n\u003cli\u003ea34e72a72 - chore: Add TOC to the consumer and provider readmes\u003c/li\u003e\n\u003cli\u003ef695f6d79 - feat: Update readmes with details on using external references\u003c/li\u003e\n\u003cli\u003e3cb5eb590 - feat: Display references in the verifier output\u003c/li\u003e\n\u003cli\u003e170b27669 - feat: Add a method to the DSL interaction builders to capture external references\u003c/li\u003e\n\u003cli\u003eb43d22530 - feat: Add a method V4Interaction to capture external references\u003c/li\u003e\n\u003cli\u003e130aaa28b - chore: Add tests for V4Interaction and child classes\u003c/li\u003e\n\u003cli\u003e4ee8ddd5d - chore: fix typo breaking internal build (Kevin Rohan Vaz)\u003c/li\u003e\n\u003cli\u003e76cabe478 - feat: Add doctests for the readme code blocks \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1352\"\u003e#1352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ee2ee20b00 - feat: Add a Kotlin consumer DSL \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1352\"\u003e#1352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e39c734aa8 - feat: add arrayContains as a matching rule expression\u003c/li\u003e\n\u003cli\u003e2de7c5022 - refactor: deduplicate write logic in MERGE branch (biergit)\u003c/li\u003e\n\u003cli\u003e332f3b305 - fix: write through RandomAccessFile instead of opening a competing file handle (biergit)\u003c/li\u003e\n\u003cli\u003e66e25c362 - Refactor writePact to handle empty pactFile case (biergit)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0 Release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e00a50289f - chore: remove beta flag from 4.7.x version\u003c/li\u003e\n\u003cli\u003e95af91301 - chore: Update supported JDK versions table\u003c/li\u003e\n\u003cli\u003e1a684e1a3 - chore: Correct the doctests for line endings on Windows\u003c/li\u003e\n\u003cli\u003e468b9a38c - chore: Add doctests for consumer and consumer/junit5\u003c/li\u003e\n\u003cli\u003e12e3c37be - chore: Add Gradle task to generate tests off readme code blocks\u003c/li\u003e\n\u003cli\u003e119efb3e0 - feat: Check for \u003ccode\u003e@Ignore\u003c/code\u003e on the Pact method in the post spec check stage\u003c/li\u003e\n\u003cli\u003e629350842 - chore: Update main readme\u003c/li\u003e\n\u003cli\u003e06deeb5ab - feat: Check for the mock server field and raise an exception if it is missing\u003c/li\u003e\n\u003cli\u003ed39f691d8 - feat: rename annotation so it does not have the same name as the JUnit one\u003c/li\u003e\n\u003cli\u003e977572cf6 - feat: Add a consumer spock module\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0-beta.6\u003c/h2\u003e\n\u003ch2\u003eMaintenance Release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e698c1b2a1 - chore: Update readme after upgrading Kotlin to 2.3.10\u003c/li\u003e\n\u003cli\u003e0a983466e - chore: Upgrade Kotlin to 2.3.10\u003c/li\u003e\n\u003cli\u003ee9f112aac - feat: add support for custom headers with the PactBroker annotation \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1835\"\u003e#1835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ef0283de99 - feat(consumer): Make the mock server log entries for requests and responses clearer in the log output\u003c/li\u003e\n\u003cli\u003ebdb9db101 - chore(consumer): Add test for MockServerLog\u003c/li\u003e\n\u003cli\u003e7cf4acc16 - feat(consumer): Make the mock server log entries for requests and responses clearer in the log output\u003c/li\u003e\n\u003cli\u003e451d7f0e6 - fix: Replace Generex with a custom random string generator \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1848\"\u003e#1848\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e5caa7c5e9 - feat: Add a JUnit 5 filter by interation type \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1894\"\u003e#1894\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0-beta.5\u003c/h2\u003e\n\u003ch2\u003eBugfix Release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efff39e5f7 - fix: HttpHeaders.containsKey() which was removed in Spring Framework 7, causing NoSuchMethodError at runtime \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1902\"\u003e#1902\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ef27d9aaff - fix: Switch from the use of URL to URI in Gradle plugin to support Gradle 9+/JVM 25 \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1892\"\u003e#1892\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e161c08324 - Revert \u0026quot;fix: Switch from the use of URL to URI in Gradle plugin to support Gradle 9+/JVM 25 \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1892\"\u003e#1892\u003c/a\u003e\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pact-foundation/pact-jvm/blob/master/CHANGELOG.md\"\u003eau.com.dius.pact.consumer:junit5's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.7.1 - Feature release\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ed38c2f13e - chore: add todo file to track things to do (Ronald Holshausen, Thu Apr 30 10:51:54 2026 +1000)\u003c/li\u003e\n\u003cli\u003ea489e72bb - Merge pull request \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1908\"\u003e#1908\u003c/a\u003e from pact-foundation/kotlin-dsl (Ronald Holshausen, Thu Apr 30 10:49:22 2026 +1000)\u003c/li\u003e\n\u003cli\u003e0e8d6ecf9 - Merge pull request \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1901\"\u003e#1901\u003c/a\u003e from biergit/patch-3 (Ronald Holshausen, Thu Apr 30 10:44:20 2026 +1000)\u003c/li\u003e\n\u003cli\u003e0cdd0e3b3 - chore: Corrected all the doctests after update to the readmes (Ronald Holshausen, Wed Apr 29 15:32:33 2026 +1000)\u003c/li\u003e\n\u003cli\u003ea34e72a72 - chore: Add TOC to the consumer and provider readmes (Ronald Holshausen, Wed Apr 29 11:49:37 2026 +1000)\u003c/li\u003e\n\u003cli\u003ef695f6d79 - feat: Update readmes with details on using external references (Ronald Holshausen, Wed Apr 29 11:36:19 2026 +1000)\u003c/li\u003e\n\u003cli\u003e3cb5eb590 - feat: Display references in the verifier output (Ronald Holshausen, Wed Apr 29 11:20:43 2026 +1000)\u003c/li\u003e\n\u003cli\u003e170b27669 - feat: Add a method to the DSL interaction builders to capture external references (Ronald Holshausen, Tue Apr 28 17:22:36 2026 +1000)\u003c/li\u003e\n\u003cli\u003eb43d22530 - feat: Add a method V4Interaction to capture external references (Ronald Holshausen, Tue Apr 28 17:15:27 2026 +1000)\u003c/li\u003e\n\u003cli\u003e130aaa28b - chore: Add tests for V4Interaction and child classes (Ronald Holshausen, Tue Apr 28 17:01:34 2026 +1000)\u003c/li\u003e\n\u003cli\u003ec22838534 - Merge pull request \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1909\"\u003e#1909\u003c/a\u003e from kevinrvaz/chore/fix_minor_typo (Ronald Holshausen, Thu Apr 23 13:02:51 2026 +1000)\u003c/li\u003e\n\u003cli\u003e4ee8ddd5d - chore: fix typo breaking internal build (Kevin Rohan Vaz, Thu Apr 23 08:13:00 2026 +0530)\u003c/li\u003e\n\u003cli\u003e76cabe478 - feat: Add doctests for the readme code blocks \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1352\"\u003e#1352\u003c/a\u003e (Ronald Holshausen, Thu Apr 23 11:19:19 2026 +1000)\u003c/li\u003e\n\u003cli\u003ee2ee20b00 - feat: Add a Kotlin consumer DSL \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1352\"\u003e#1352\u003c/a\u003e (Ronald Holshausen, Thu Apr 23 10:39:13 2026 +1000)\u003c/li\u003e\n\u003cli\u003e3798d97b8 - Merge pull request \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1907\"\u003e#1907\u003c/a\u003e from pact-foundation/feat/array-contains-matching-expression (Ronald Holshausen, Wed Apr 22 17:40:56 2026 +1000)\u003c/li\u003e\n\u003cli\u003e39c734aa8 - feat: add arrayContains as a matching rule expression (Ronald Holshausen, Wed Apr 22 17:19:53 2026 +1000)\u003c/li\u003e\n\u003cli\u003e41c2c39b3 - chore: Update project documentation (Ronald Holshausen, Wed Apr 22 15:43:17 2026 +1000)\u003c/li\u003e\n\u003cli\u003ea09b4ee27 - bump version to 4.7.1 (Ronald Holshausen, Tue Apr 21 10:59:57 2026 +1000)\u003c/li\u003e\n\u003cli\u003e2de7c5022 - refactor: deduplicate write logic in MERGE branch (biergit, Fri Apr 17 15:00:56 2026 +0200)\u003c/li\u003e\n\u003cli\u003e332f3b305 - fix: write through RandomAccessFile instead of opening a competing file handle (biergit, Fri Apr 17 14:36:59 2026 +0200)\u003c/li\u003e\n\u003cli\u003e66e25c362 - Refactor writePact to handle empty pactFile case (biergit, Fri Mar 13 14:30:13 2026 +0100)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.7.0 - 4.7.0 Release\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e00a50289f - chore: remove beta flag from 4.7.x version (Ronald Holshausen, Tue Apr 21 10:25:35 2026 +1000)\u003c/li\u003e\n\u003cli\u003e95af91301 - chore: Update supported JDK versions table (Ronald Holshausen, Tue Apr 21 10:17:06 2026 +1000)\u003c/li\u003e\n\u003cli\u003e1a684e1a3 - chore: Correct the doctests for line endings on Windows (Ronald Holshausen, Mon Apr 20 16:58:34 2026 +1000)\u003c/li\u003e\n\u003cli\u003e468b9a38c - chore: Add doctests for consumer and consumer/junit5 (Ronald Holshausen, Mon Apr 20 16:20:13 2026 +1000)\u003c/li\u003e\n\u003cli\u003e12e3c37be - chore: Add Gradle task to generate tests off readme code blocks (Ronald Holshausen, Mon Apr 20 14:44:48 2026 +1000)\u003c/li\u003e\n\u003cli\u003e119efb3e0 - feat: Check for \u003ccode\u003e@Ignore\u003c/code\u003e on the Pact method in the post spec check stage (Ronald Holshausen, Mon Apr 20 13:37:11 2026 +1000)\u003c/li\u003e\n\u003cli\u003e629350842 - chore: Update main readme (Ronald Holshausen, Mon Apr 20 13:24:19 2026 +1000)\u003c/li\u003e\n\u003cli\u003e06deeb5ab - feat: Check for the mock server field and raise an exception if it is missing (Ronald Holshausen, Mon Apr 20 13:23:03 2026 +1000)\u003c/li\u003e\n\u003cli\u003ed39f691d8 - feat: rename annotation so it does not have the same name as the JUnit one (Ronald Holshausen, Mon Apr 20 13:08:25 2026 +1000)\u003c/li\u003e\n\u003cli\u003e977572cf6 - feat: Add a consumer spock module (Ronald Holshausen, Mon Apr 20 13:00:58 2026 +1000)\u003c/li\u003e\n\u003cli\u003ea1b2abf32 - bump version to 4.7.0-beta.7 (Ronald Holshausen, Fri Apr 17 11:42:01 2026 +1000)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.7.0-beta.6 - Maintenance Release\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e698c1b2a1 - chore: Update readme after upgrading Kotlin to 2.3.10 (Ronald Holshausen, Fri Apr 17 10:56:41 2026 +1000)\u003c/li\u003e\n\u003cli\u003e0a983466e - chore: Upgrade Kotlin to 2.3.10 (Ronald Holshausen, Fri Apr 17 10:56:01 2026 +1000)\u003c/li\u003e\n\u003cli\u003ee9f112aac - feat: add support for custom headers with the PactBroker annotation \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1835\"\u003e#1835\u003c/a\u003e (Ronald Holshausen, Fri Apr 17 10:38:54 2026 +1000)\u003c/li\u003e\n\u003cli\u003ef0283de99 - feat(consumer): Make the mock server log entries for requests and responses clearer in the log output (Ronald Holshausen, Fri Apr 17 09:32:07 2026 +1000)\u003c/li\u003e\n\u003cli\u003ebdb9db101 - chore(consumer): Add test for MockServerLog (Ronald Holshausen, Thu Apr 16 17:22:04 2026 +1000)\u003c/li\u003e\n\u003cli\u003e64b5af54c - Merge branch 'master' into v4.7.x (Ronald Holshausen, Thu Apr 16 17:15:19 2026 +1000)\u003c/li\u003e\n\u003cli\u003e7cf4acc16 - feat(consumer): Make the mock server log entries for requests and responses clearer in the log output (Ronald Holshausen, Thu Apr 16 16:51:38 2026 +1000)\u003c/li\u003e\n\u003cli\u003e451d7f0e6 - fix: Replace Generex with a custom random string generator \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1848\"\u003e#1848\u003c/a\u003e (Ronald Holshausen, Thu Apr 16 15:58:56 2026 +1000)\u003c/li\u003e\n\u003cli\u003ed5bb09476 - bump version to 4.7.0-beta.6 (Ronald Holshausen, Thu Apr 16 14:28:00 2026 +1000)\u003c/li\u003e\n\u003cli\u003ec2ffe0c55 - Merge pull request \u003ca href=\"https://redirect.github.com/pact-foundation/pact-jvm/issues/1904\"\u003e#1904\u003c/a\u003e from kevinrvaz/docs/update_docs_for_docusaurus_update (Ronald Holshausen, Thu Apr 16 09:34:27 2026 +1000)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pact-foundation/pact-jvm/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `io.sentry.jvm.gradle` from 6.4.0 to 6.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/releases\"\u003eio.sentry.jvm.gradle's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump ComposablePreviewScanner from v0.8.1 to v0.8.2 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1174\"\u003e#1174\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sergio-sastre/ComposablePreviewScanner/blob/master/CHANGELOG.md#082\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sergio-sastre/ComposablePreviewScanner/compare/0.8.1...0.8.2\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump CLI from v3.4.0 to v3.4.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1175\"\u003e#1175\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#341\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/compare/3.4.0...3.4.1\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.5.0\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump CLI from v3.3.5 to v3.4.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1156\"\u003e#1156\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#340\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/compare/3.3.5...3.4.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump Android SDK from v8.38.0 to v8.40.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1153\"\u003e#1153\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1161\"\u003e#1161\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#8400\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/compare/8.38.0...8.40.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/blob/main/CHANGELOG.md\"\u003eio.sentry.jvm.gradle's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.6.0\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump ComposablePreviewScanner from v0.8.1 to v0.9.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1174\"\u003e#1174\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1176\"\u003e#1176\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sergio-sastre/ComposablePreviewScanner/blob/master/CHANGELOG.md#090\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sergio-sastre/ComposablePreviewScanner/compare/0.8.1...0.9.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump CLI from v3.4.0 to v3.4.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1175\"\u003e#1175\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#341\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/compare/3.4.0...3.4.1\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.5.0\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump CLI from v3.3.5 to v3.4.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1156\"\u003e#1156\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#340\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-cli/compare/3.3.5...3.4.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eBump Android SDK from v8.38.0 to v8.40.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1153\"\u003e#1153\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/pull/1161\"\u003e#1161\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#8400\"\u003echangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-java/compare/8.38.0...8.40.0\"\u003ediff\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/c615323c5d879dc6296d068295bbd00fb7470ae9\"\u003e\u003ccode\u003ec615323\u003c/code\u003e\u003c/a\u003e release: 6.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/0e85cc6618a30bceea8b9df9fd19dd6b1780feaf\"\u003e\u003ccode\u003e0e85cc6\u003c/code\u003e\u003c/a\u003e chore: update plugin-build/sentry-cli.properties to 3.4.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/a74a5d6fc3813996d1142ac8b202570759c550aa\"\u003e\u003ccode\u003ea74a5d6\u003c/code\u003e\u003c/a\u003e chore: update plugin-build/composable-preview-scanner.properties to 0.8.2 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/1024da85c39fe7f479914689d311b85380777325\"\u003e\u003ccode\u003e1024da8\u003c/code\u003e\u003c/a\u003e feat(deps): Auto-update ComposablePreviewScanner version (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1173\"\u003e#1173\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/e31b8344a978a09a85894f177a129f0a3a85ddb8\"\u003e\u003ccode\u003ee31b834\u003c/code\u003e\u003c/a\u003e chore(ci): Unify release build command and artifact upload (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1170\"\u003e#1170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/f2f447b995022ca702c6d3e2417a9e8d22340609\"\u003e\u003ccode\u003ef2f447b\u003c/code\u003e\u003c/a\u003e build(ci): Upload sentry-snapshots-runtime zip for craft (EME-1055) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1169\"\u003e#1169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/8fa3d2df3c509e5502e60c2b122d6ffbcb19c9f8\"\u003e\u003ccode\u003e8fa3d2d\u003c/code\u003e\u003c/a\u003e feat(matrix): Fetch AGP\u0026lt;-\u0026gt;Kotlin compat dynamically (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1166\"\u003e#1166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/d7afb6d90a5c084ed6eb5f32901fe46687bbcbd5\"\u003e\u003ccode\u003ed7afb6d\u003c/code\u003e\u003c/a\u003e test(gradle): Add isolated-projects compatibility test (EME-1072) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1160\"\u003e#1160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/7938856b62e8b46a1249f1475b497ef40448a3c0\"\u003e\u003ccode\u003e7938856\u003c/code\u003e\u003c/a\u003e feat(snapshots): Restructure sidecar JSON to match ingestion schema (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1162\"\u003e#1162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/commit/055f0a6e5864179d6dad4f31c51bbad7f6449eae\"\u003e\u003ccode\u003e055f0a6\u003c/code\u003e\u003c/a\u003e refactor(snapshots): Group preview options under a previews sub-extension (\u003ca href=\"https://redirect.github.com/getsentry/sentry-android-gradle-plugin/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-android-gradle-plugin/compare/6.4.0...6.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `au.com.dius.pact` from 4.6.20 to 4.7.1\n\nUpdates `com.deque.html.axe-core:playwright` from 4.11.1 to 4.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/releases\"\u003ecom.deque.html.axe-core:playwright's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 4.11.3\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/580\"\u003e#580\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/f7de945a0887567a65695b2a7bfb53c16a98d914\"\u003ef7de945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/585\"\u003e#585\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/a20927e2945f758cc770107afbd2307cab2e8b4f\"\u003ea20927e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/598\"\u003e#598\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/98e2472b67e0255ed6b1fb15bb65f17b5db77050\"\u003e98e2472\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 4.11.2\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/580\"\u003e#580\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/f7de945a0887567a65695b2a7bfb53c16a98d914\"\u003ef7de945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/585\"\u003e#585\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/a20927e2945f758cc770107afbd2307cab2e8b4f\"\u003ea20927e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/blob/develop/CHANGELOG.md\"\u003ecom.deque.html.axe-core:playwright's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/compare/v4.11.2...v4.11.3\"\u003e4.11.3\u003c/a\u003e (2026-04-29)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/580\"\u003e#580\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/f7de945a0887567a65695b2a7bfb53c16a98d914\"\u003ef7de945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/585\"\u003e#585\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/a20927e2945f758cc770107afbd2307cab2e8b4f\"\u003ea20927e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/598\"\u003e#598\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/98e2472b67e0255ed6b1fb15bb65f17b5db77050\"\u003e98e2472\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/compare/v4.11.1...v4.11.2\"\u003e4.11.2\u003c/a\u003e (2026-04-16)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate axe-core to v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/580\"\u003e#580\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/f7de945a0887567a65695b2a7bfb53c16a98d914\"\u003ef7de945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate axe-core to v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/585\"\u003e#585\u003c/a\u003e) (\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/a20927e2945f758cc770107afbd2307cab2e8b4f\"\u003ea20927e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/08a29bbb03ec7abb78a47a2969104a6a6fbf02a3\"\u003e\u003ccode\u003e08a29bb\u003c/code\u003e\u003c/a\u003e chore: release v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/603\"\u003e#603\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/bad807af19dae69464edd14ba94419e2eb7d59d5\"\u003e\u003ccode\u003ebad807a\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/600\"\u003e#600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/18830a820d0607941685bec6b22efcf5cea6e67f\"\u003e\u003ccode\u003e18830a8\u003c/code\u003e\u003c/a\u003e Merge branch 'release' into release-2026-04-29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/d52a30f3ef29be14e3519265dd13f01cb6105b4e\"\u003e\u003ccode\u003ed52a30f\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/98e2472b67e0255ed6b1fb15bb65f17b5db77050\"\u003e\u003ccode\u003e98e2472\u003c/code\u003e\u003c/a\u003e fix: Update axe-core to v4.11.4 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/eceefb47696088328c2b96b786c228976ae952af\"\u003e\u003ccode\u003eeceefb4\u003c/code\u003e\u003c/a\u003e ci: change secret for updating axe-core to use pat (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/599\"\u003e#599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/695dbd9c2f4b11c52d67e5264664a37042233c90\"\u003e\u003ccode\u003e695dbd9\u003c/code\u003e\u003c/a\u003e chore: add create-release workflow (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/596\"\u003e#596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/6f8c7818ecd096bdc40f4c42aedd7b0f4ed5dda9\"\u003e\u003ccode\u003e6f8c781\u003c/code\u003e\u003c/a\u003e chore: merge master into develop (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/595\"\u003e#595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/eeebc9327b8b8f8660c90639d5269cd2d85e3f45\"\u003e\u003ccode\u003eeeebc93\u003c/code\u003e\u003c/a\u003e chore: Release 4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/594\"\u003e#594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/commit/e0563005d6537d1b2cd794ec743eddc98521526c\"\u003e\u003ccode\u003ee056300\u003c/code\u003e\u003c/a\u003e chore: RC v4.11.2 (\u003ca href=\"https://redirect.github.com/dequelabs/axe-core-maven-html/issues/592\"\u003e#592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/dequelabs/axe-core-maven-html/compare/v4.11.1...v4.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.21.2 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.postgresql:postgresql` from 42.7.10 to 42.7.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pgjdbc/pgjdbc/releases\"\u003eorg.postgresql:postgresql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev42.7.11\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Limit SCRAM PBKDF2 iterations accepted from the server.\npgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.\nSee the \u003ca href=\"https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-98qh-xjc8-98pq\"\u003eSecurity Advisory\u003c/a\u003e for more detail.\nThe following \u003ca href=\"https://nvd.nist.gov/vuln/detail/CVE-2026-42198\"\u003eCVE-2026-42198\u003c/a\u003e has been issued.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Add sources and javadocs to shaded published lib generation \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4043\"\u003e#4043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate Changelog and website for release of 42.7.11 \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4042\"\u003e#4042\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix scram fix location in changelog and update published artifact developer list \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4041\"\u003e#4041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict test with scram_iterations to v16+ and release notes \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4040\"\u003e#4040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): update ubuntu:24.04 docker digest to 84e77de \u003ca href=\"https://github.com/renovate-bot\"\u003e\u003ccode\u003e@​renovate-bot\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4017\"\u003e#4017\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: add tests for QueryExecutor#getTransactionState \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4006\"\u003e#4006\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): update actions/create-github-app-token action to v2.2.2 \u003ca href=\"https://github.com/renovate-bot\"\u003e\u003ccode\u003e@​renovate-bot\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3983\"\u003e#3983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: fix flaky CopyBothResponseTest by using WAL flush LSN \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3979\"\u003e#3979\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: fix flaky replication restart tests by waiting for confirmed_flush_lsn \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3975\"\u003e#3975\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: fix flaky LogicalReplicationStatusTest by polling pg_stat_replication \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3974\"\u003e#3974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: replace Appveyor with ikalnytskyi/action-setup-postgres \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3966\"\u003e#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: move test table creation from \u003ca href=\"https://github.com/BeforeEach\"\u003e\u003ccode\u003e@​BeforeEach\u003c/code\u003e\u003c/a\u003e to \u003ca href=\"https://github.com/BeforeAll\"\u003e\u003ccode\u003e@​BeforeAll\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3967\"\u003e#3967\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn jsonb as PGObject fixes Issue \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3926\"\u003e#3926\u003c/a\u003e \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3956\"\u003e#3956\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate docker scripts  \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3958\"\u003e#3958\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eimplement require_auth, this is pretty much how libpq does this.  \u003ca href=\"https://github.com/davecramer\"\u003e\u003ccode\u003e@​davecramer\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3895\"\u003e#3895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs: add SCRAM authentication test setup section to TESTING.md \u003ca href=\"https://github.com/emmaeng700\"\u003e\u003ccode\u003e@​emmaeng700\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd RequireServerVersion annotation for tests \u003ca href=\"https://github.com/sehrope\"\u003e\u003ccode\u003e@​sehrope\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3939\"\u003e#3939\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure extended protocol messages end with Sync message \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3728\"\u003e#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: enable cursor-based fetching in extended protocol when transaction started via SQL command \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: retry with SSL on IOException when sslMode=ALLOW \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3973\"\u003e#3973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: catch SecurityException from setContextClassLoader on ForkJoinPool workers \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: use compareTo for LogSequenceNumber comparison \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3961\"\u003e#3961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: release COPY lock on IOException to prevent connection hang (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3957\"\u003e#3957\u003c/a\u003e) \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3960\"\u003e#3960\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003estyle: replace \u003ca href=\"https://github.com/exception\"\u003e\u003ccode\u003e@​exception\u003c/code\u003e\u003c/a\u003e with \u003ca href=\"https://github.com/throws\"\u003e\u003ccode\u003e@​throws\u003c/code\u003e\u003c/a\u003e in getBoolean javadoc \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4035\"\u003e#4035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use \u003ccode\u003e@​vlsi/github-actions-random-matrix\u003c/code\u003e npm package \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4008\"\u003e#4008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use tag names for pinning github actions, pin ikalnytskyi/action-setup-postgres \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4007\"\u003e#4007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: bump errorprone to 2.48.0 \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/4005\"\u003e#4005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etest: add \u003ca href=\"https://github.com/DisableLogger\"\u003e\u003ccode\u003e@​DisableLogger\u003c/code\u003e\u003c/a\u003e annotation to suppress expected log warnings in tests \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3971\"\u003e#3971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: suppress deprecations in test code to reduce build verbosity \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3972\"\u003e#3972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: replace log warning in ConnectionFactory.closeStream with Throwable.addSuppressed \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3970\"\u003e#3970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use greedy pairwise coverage for CI matrix generation \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3965\"\u003e#3965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: use full version tags in GitHub Actions comments \u003ca href=\"https://github.com/vlsi\"\u003e\u003ccode\u003e@​vlsi\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3963\"\u003e#3963\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⬆️ Dependencies\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md\"\u003eorg.postgresql:postgresql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[42.7.11] (2026-04-28)\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: Limit SCRAM PBKDF2 iterations accepted from the server.\npgjdbc was vulnerable to a client-side denial of service in SCRAM-SHA-256 authentication, where a malicious or compromised PostgreSQL server could specify an extremely large PBKDF2 iteration count, causing the client to consume unbounded CPU and potentially exhaust connection pools. The fix introduces a new scramMaxIterations connection property (defaulting to 100,000) to cap iteration counts before computation begins.\nSee the \u003ca href=\"https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-98qh-xjc8-98pq\"\u003eSecurity Advisory\u003c/a\u003e for more detail.\nThe following \u003ca href=\"https://nvd.nist.gov/vuln/detail/CVE-2026-42198\"\u003eCVE-2026-42198\u003c/a\u003e has been issued.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: implement require_auth connection property, aligning with libpq behavior [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3895\"\u003e#3895\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3895\"\u003epgjdbc/pgjdbc#3895\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003echore: replace Appveyor CI with ikalnytskyi/action-setup-postgres [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3966\"\u003e#3966\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3966\"\u003epgjdbc/pgjdbc#3966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: upgrade Gradle to v9 [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3978\"\u003e#3978\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3978\"\u003epgjdbc/pgjdbc#3978\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure extended protocol messages end with Sync message [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3728\"\u003e#3728\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3728\"\u003epgjdbc/pgjdbc#3728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: enable cursor-based fetching in extended protocol when transaction started via SQL command [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3996\"\u003e#3996\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3996\"\u003epgjdbc/pgjdbc#3996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: retry with SSL on IOException when sslMode=ALLOW [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3973\"\u003e#3973\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3973\"\u003epgjdbc/pgjdbc#3973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: make sure the driver honours connectTimeout when retrying the connection [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3968\"\u003epgjdbc/pgjdbc#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: allow fallback to non-SSL connection when sslMode=prefer and sslResponseTimeout kicks in [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/3968\"\u003e#3968\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/pull/3968\"\u003epgjdbc/pgjdbc#3968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: catch SecurityException from setContextClassLoader on ForkJoinPool workers [PR \u003ca href=\"https://redirect.github.com/pgjdbc/pgjdbc/issues/...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-amend-a-claim/pull/413","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-amend-a-claim/issues/413","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/413/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-08T03:12:00.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4403511891","node_id":"PR_kwDORvJjTc7ZYe1x","number":26,"state":"closed","title":"chore(deps): bump the gradle-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-22T03:12:36.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-08T03:12:00.000Z","updated_at":"2026-05-22T03:12:38.000Z","time_to_close":1209636,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-dependencies","update_count":17,"packages":[{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.7","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"org.flywaydb:flyway-mysql","old_version":"12.0.3","new_version":"12.5.0"},{"name":"org.projectlombok:lombok","old_version":"1.18.42","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"org.apache.pdfbox:pdfbox","old_version":"3.0.6","new_version":"3.0.7"},{"name":"com.github.RouHim:jaudiotagger","old_version":"2.0.16","new_version":"2.0.19"},{"name":"com.github.junrar:junrar","old_version":"7.5.8","new_version":"7.5.10","repository_url":"https://github.com/junrar/junrar"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.springdoc:springdoc-openapi-starter-webmvc-ui","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/springdoc/springdoc-openapi"},{"name":"org.glassfish.jaxb:jaxb-runtime","old_version":"4.0.6","new_version":"4.0.8"},{"name":"tools.jackson:jackson-bom","old_version":"3.1.0","new_version":"3.1.3","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"com.github.ben-manes.caffeine:caffeine","old_version":"3.2.3","new_version":"3.2.4","repository_url":"https://github.com/ben-manes/caffeine"},{"name":"org.springframework.boot","old_version":"4.0.3","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"org.hibernate.orm","old_version":"7.2.6.Final","new_version":"7.3.3.Final"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"gradle-wrapper","old_version":"9.4.0","new_version":"9.5.0","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-dependencies group with 15 updates in the /booklore-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.7` | `3.5.8` |\n| org.flywaydb:flyway-mysql | `12.0.3` | `12.5.0` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.42` | `1.18.46` |\n| org.apache.pdfbox:pdfbox | `3.0.6` | `3.0.7` |\n| com.github.RouHim:jaudiotagger | `2.0.16` | `2.0.19` |\n| [com.github.junrar:junrar](https://github.com/junrar/junrar) | `7.5.8` | `7.5.10` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) | `3.0.2` | `3.0.3` |\n| org.glassfish.jaxb:jaxb-runtime | `4.0.6` | `4.0.8` |\n| [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `3.1.0` | `3.1.3` |\n| [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) | `3.2.3` | `3.2.4` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `4.0.3` | `4.0.6` |\n| org.hibernate.orm | `7.2.6.Final` | `7.3.3.Final` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.0` | `9.5.0` |\n\n\nUpdates `org.mariadb.jdbc:mariadb-java-client` from 3.5.7 to 3.5.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/releases\"\u003eorg.mariadb.jdbc:mariadb-java-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Java 3.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md\"\u003eorg.mariadb.jdbc:mariadb-java-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/26b34a2f060070beb73515cfd2a49fabc8728843\"\u003e\u003ccode\u003e26b34a2\u003c/code\u003e\u003c/a\u003e Merge branch 'develop'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/06d6efee7838ab8f89ef0f7f362c6b4a95754630\"\u003e\u003ccode\u003e06d6efe\u003c/code\u003e\u003c/a\u003e bump CI actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a86a83c8fd1fa84d8d4349baab3b29df8f575192\"\u003e\u003ccode\u003ea86a83c\u003c/code\u003e\u003c/a\u003e bump 3.5.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/975f9919232b21f40d823423eac6e32d87ea8e35\"\u003e\u003ccode\u003e975f991\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to implement Codec directly and extract shared...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/75bb509521661603e0e90dd6dd5942d1382bf499\"\u003e\u003ccode\u003e75bb509\u003c/code\u003e\u003c/a\u003e [misc] code formatting cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/4c0b6a0ddd95f42fa866ce0d08e384caa2553d43\"\u003e\u003ccode\u003e4c0b6a0\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to extend UtilDateCodec and extract common dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a5b7fb1a26277a076052dbbd1a7ee2bacd4f602f\"\u003e\u003ccode\u003ea5b7fb1\u003c/code\u003e\u003c/a\u003e [misc] convert Reader and Writer from interfaces to final class implementatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/d31eb060fc66e9e37479e18a38bb1401d53ecb63\"\u003e\u003ccode\u003ed31eb06\u003c/code\u003e\u003c/a\u003e [misc] convert ReadableByteBuf from interface to final class implementation, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/11d45a9e6ea4d942e75747132bb8982471d890b8\"\u003e\u003ccode\u003e11d45a9\u003c/code\u003e\u003c/a\u003e [misc] optimize binary row decoder null bitmap checks and simplify signed Big...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/5aad14c381cbc2c4e0383ffed275306f359bd508\"\u003e\u003ccode\u003e5aad14c\u003c/code\u003e\u003c/a\u003e [misc] optimize BigInt column decoding and improve type safety in codec inter...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-mysql` from 12.0.3 to 12.5.0\n\nUpdates `org.projectlombok:lombok` from 1.18.42 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev1.18.44 (March 11th, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFEATURE: \u003ccode\u003e@Jacksonized\u003c/code\u003e now supports both Jackson2 and Jackson3; you'll get a warning until you configure which one (or even both!) you want lombok to generate. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3950\"\u003e#3950\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: On JDK25, \u003ccode\u003eval\u003c/code\u003e and \u003ccode\u003e@ExtensionMethod\u003c/code\u003e could sometimes cause erroneous errors (in that you see errors but compilation succeeds anyway) using javac. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3947\"\u003e#3947\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e + fields marked \u003ccode\u003etransient\u003c/code\u003e would result in those transient fields being serialised which is surprising (and thus undesired) behaviour. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3936\"\u003e#3936\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48c8f4b33ef9231ec2587a43d122\"\u003e\u003ccode\u003efcdab3f\u003c/code\u003e\u003c/a\u003e [version] pre-release version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/1cb7d49c5d2dc98af7a66413d8119dec285d0666\"\u003e\u003ccode\u003e1cb7d49\u003c/code\u003e\u003c/a\u003e [changelog]\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e Mention Jackson3 final touches in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/12a15b00555ec8097eca2bf7d77c2c2124e13e0e\"\u003e\u003ccode\u003e12a15b0\u003c/code\u003e\u003c/a\u003e Fix: Bump EA_JDK to 27 (25 and 26 have been released)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/2be766cfc2ef56f2d986f28f734c98535d611aee\"\u003e\u003ccode\u003e2be766c\u003c/code\u003e\u003c/a\u003e Merge branch 'jackson3-final-touches'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/290fa4c8539c7e97b47f7e80033e078127050eb5\"\u003e\u003ccode\u003e290fa4c\u003c/code\u003e\u003c/a\u003e [trivial] constantize the warning we spit out for ambiguous jackson2/3, and m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e6567b6621f86b43033ab4a75e0273780e18e998\"\u003e\u003ccode\u003ee6567b6\u003c/code\u003e\u003c/a\u003e test: Add Jackson 3 test cases and version ambiguity warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/45e72e241abe98dcfb66408402da825dd2b8e925\"\u003e\u003ccode\u003e45e72e2\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 databind/dataformat annotations to HandlerUtil copy lists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/184d42363d86446a63b6270ac1eb352dc43ae76c\"\u003e\u003ccode\u003e184d423\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 support to \u003ca href=\"https://github.com/Jacksonized\"\u003e\u003ccode\u003e@​Jacksonized\u003c/code\u003e\u003c/a\u003e handlers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e027ad0f1515bd33d4d329d90e59dccbaf44651e\"\u003e\u003ccode\u003ee027ad0\u003c/code\u003e\u003c/a\u003e refactored to ShadowClassLoader use Collections::enumeration instead of Vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectlombok/lombok/compare/v1.18.42...v1.18.46\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.pdfbox:pdfbox` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:pdfbox-io` from 3.0.6 to 3.0.7\n\nUpdates `org.apache.pdfbox:xmpbox` from 3.0.6 to 3.0.7\n\nUpdates `com.github.RouHim:jaudiotagger` from 2.0.16 to 2.0.19\n\nUpdates `com.github.junrar:junrar` from 7.5.8 to 7.5.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/releases\"\u003ecom.github.junrar:junrar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.5.10\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier Roebroeck\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.9\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.3.1 to 9.4.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/5ff5c7e\"\u003e5ff5c7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.21.0 to 5.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d9e9e49\"\u003ed9e9e49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump ch.qos.logback:logback-classic from 1.5.26 to 1.5.32 (\u003ca href=\"https://github.com/junrar/junrar/commits/935ece8\"\u003e935ece8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.22.0 to 1.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/000fcdb\"\u003e000fcdb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://github.com/junrar/junrar/commits/2c83103\"\u003e2c83103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Ryan Campbell\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/blob/master/CHANGELOG.md\"\u003ecom.github.junrar:junrar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.9...v7.5.10\"\u003e7.5.10\u003c/a\u003e (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.9\"\u003e7.5.9\u003c/a\u003e (2026-04-13)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.3.1 to 9.4.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/5ff5c7e\"\u003e5ff5c7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.21.0 to 5.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d9e9e49\"\u003ed9e9e49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump ch.qos.logback:logback-classic from 1.5.26 to 1.5.32 (\u003ca href=\"https://github.com/junrar/junrar/commits/935ece8\"\u003e935ece8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.22.0 to 1.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/000fcdb\"\u003e000fcdb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://github.com/junrar/junrar/commits/2c83103\"\u003e2c83103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/e36ee091ad7311a021e1c928ada103a3eab2d890\"\u003e\u003ccode\u003ee36ee09\u003c/code\u003e\u003c/a\u003e ci: publish test results\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/154e3bf7b05bb6dcad5437a8fd8e99a8da916373\"\u003e\u003ccode\u003e154e3bf\u003c/code\u003e\u003c/a\u003e test: disable test on windows due to path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/d77e9a83eb721cd51f9c23d7869d0e6ad7f952d7\"\u003e\u003ccode\u003ed77e9a8\u003c/code\u003e\u003c/a\u003e fix: better handling of files outside directory when extracting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/a60857b35c17dbd5354a37816421d7b051a8ba03\"\u003e\u003ccode\u003ea60857b\u003c/code\u003e\u003c/a\u003e ci: update homebrew action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/72cd364f47bd396e208cd82ca7aa98759ab84f01\"\u003e\u003ccode\u003e72cd364\u003c/code\u003e\u003c/a\u003e chore(release): 7.5.9 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/7e1b5581f9d622b96e9e2a8574188027e7642634\"\u003e\u003ccode\u003e7e1b558\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/f800f10fa46f803f1220f508a40f59af29eb5118\"\u003e\u003ccode\u003ef800f10\u003c/code\u003e\u003c/a\u003e build(deps): bump org.mockito:mockito-core from 5.22.0 to 5.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/1886aecf253467ff8f98fc1187237605cf59fbb0\"\u003e\u003ccode\u003e1886aec\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.core:jackson-databind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/832f6857128bcd678d76bf263f8ee1533a1e8a86\"\u003e\u003ccode\u003e832f685\u003c/code\u003e\u003c/a\u003e build(deps): bump gradle-wrapper from 9.4.0 to 9.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/9b69c6b708dd88b925ba91fde563869cc0f8f586\"\u003e\u003ccode\u003e9b69c6b\u003c/code\u003e\u003c/a\u003e fix: ArrayIndexOutOfBoundsException in solid RAR v20 archive extraction\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/releases\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003espringdoc-openapi v3.0.3 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seregamorph\"\u003e\u003ccode\u003e@​seregamorph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/pull/3260\"\u003espringdoc/springdoc-openapi#3260\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ehttps://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/blob/v3.0.3/CHANGELOG.md\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.0.3] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3c30283fb33ced3b8368c7a890ee05d23119322a\"\u003e\u003ccode\u003e3c30283\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release v3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4184c05db39e96e8d1ce1287d5f58f242a4c8165\"\u003e\u003ccode\u003e4184c05\u003c/code\u003e\u003c/a\u003e update .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/89745c20c3695b9b934cbf77f96ef1cd1df9fac7\"\u003e\u003ccode\u003e89745c2\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4d1a730134720740ed3b9a2831d14e97dbe28780\"\u003e\u003ccode\u003e4d1a730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e from seregamorph/SpringDocHateoasConfiguration-class...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/54e765036d9d49935a97e3ccebd875581efcc8ed\"\u003e\u003ccode\u003e54e7650\u003c/code\u003e\u003c/a\u003e ConditionalOnClass (HateoasProperties.class) in SpringDocHateoasConfiguration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/9f354b2a3cb92a8caa1d0518b1916ac4f79fbd71\"\u003e\u003ccode\u003e9f354b2\u003c/code\u003e\u003c/a\u003e Spring-boot upgrade to version 4.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/14df32f99179db89967a6260562775cd6b883128\"\u003e\u003ccode\u003e14df32f\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3ee9a44547f44fb4982c98b7a5dbc1f6f9aff1a3\"\u003e\u003ccode\u003e3ee9a44\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/df99408a7674af5ea3fc40f79d81bfef372e7c0e\"\u003e\u003ccode\u003edf99408\u003c/code\u003e\u003c/a\u003e upgrade swagger-ui to version 5.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/6ee70f4074e76d3d8554487e4318681d95e444d7\"\u003e\u003ccode\u003e6ee70f4\u003c/code\u003e\u003c/a\u003e upgrade swagger-api to version 2.2.47\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.glassfish.jaxb:jaxb-runtime` from 4.0.6 to 4.0.8\n\nUpdates `tools.jackson:jackson-bom` from 3.1.0 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/c2ea79e9178f0aaa5e4f381c644140357bfc307e\"\u003e\u003ccode\u003ec2ea79e\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3906b27dcdde8fc6a4fef193147109b70bf2f0dc\"\u003e\u003ccode\u003e3906b27\u003c/code\u003e\u003c/a\u003e Prep for 3.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/b17b616c7dc264cfef26f9dd28eaf54bc40b5c4c\"\u003e\u003ccode\u003eb17b616\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/36cf9995cff15aa3e69786da1d6c52f208fddf8a\"\u003e\u003ccode\u003e36cf999\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0ae1c2ae270dabe8e21700cbcee1c266b54e84f0\"\u003e\u003ccode\u003e0ae1c2a\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3c171ebd5d6c5d8f6e8d4f3614cf9b4f0a8babb9\"\u003e\u003ccode\u003e3c171eb\u003c/code\u003e\u003c/a\u003e Prep for 3.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/8046ced071e0b36747bae0f0a96fa21914de1303\"\u003e\u003ccode\u003e8046ced\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ea00ca4cc59ba656a17a071e30a68387e51d3e0d\"\u003e\u003ccode\u003eea00ca4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0628060381a5b86e3fc07854a27b7453de559b7e\"\u003e\u003ccode\u003e0628060\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/22b8aeec79b87751a41c586404850c526eed1dbe\"\u003e\u003ccode\u003e22b8aee\u003c/code\u003e\u003c/a\u003e Prep for 3.1.1 release\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.1.0...jackson-bom-3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.ben-manes.caffeine:caffeine` from 3.2.3 to 3.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ben-manes/caffeine/releases\"\u003ecom.github.ben-manes.caffeine:caffeine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved access expiration's read performance by avoiding false sharing effects caused by the timestamp update\u003c/li\u003e\n\u003cli\u003eFixed head-of-line blocking of expiration queues caused by in-flight async entries (\u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed various minor issues found using AI audits\u003c/li\u003e\n\u003cli\u003eAdded \u003ca href=\"https://docs.oracle.com/en/java/javase/25/docs/api//java.base/java/io/ObjectInputFilter.html\"\u003eObjectInputFilter\u003c/a\u003e support to JCache\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/836b65c0a83e5d1641ded9c6de578654bc04b2e9\"\u003e\u003ccode\u003e836b65c\u003c/code\u003e\u003c/a\u003e use a consistent expiration tolerance calculation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0dc7daf962730048fe46ae4626827afbb97ddf92\"\u003e\u003ccode\u003e0dc7daf\u003c/code\u003e\u003c/a\u003e resurrect in-flight async entries on expiration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/0bac8b54fd634ffe95d35ccd1d94daba95e7b369\"\u003e\u003ccode\u003e0bac8b5\u003c/code\u003e\u003c/a\u003e handle head-of-line blocking of expiration queues (fixes \u003ca href=\"https://redirect.github.com/ben-manes/caffeine/issues/1954\"\u003e#1954\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/ff258366de0a89129152ead72524ce88f8fca67b\"\u003e\u003ccode\u003eff25836\u003c/code\u003e\u003c/a\u003e test polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f3a6176e2e3a7fe085214472858c6029c108fc3f\"\u003e\u003ccode\u003ef3a6176\u003c/code\u003e\u003c/a\u003e Fix JCache close/createCache races and recursive teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/622fbe7dbf7606f114b956205706935be2fcf3c8\"\u003e\u003ccode\u003e622fbe7\u003c/code\u003e\u003c/a\u003e Fix removal in identity views and widen hill-climber counters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/8da5a7a05d8b725c9dbd577be8ffaf2372aa7e23\"\u003e\u003ccode\u003e8da5a7a\u003c/code\u003e\u003c/a\u003e defer weighing the entry until after the putIfAbsent hit fast-path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/94ad0ff8556c9923a8d9746ab85af9ee830dd051\"\u003e\u003ccode\u003e94ad0ff\u003c/code\u003e\u003c/a\u003e Record eviction stats before notifying the removal listener consistently\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/f94c0113d0c98dc0afaadf1f6748ea280aa4dff7\"\u003e\u003ccode\u003ef94c011\u003c/code\u003e\u003c/a\u003e Auto-assert eviction stats alongside notifications.withCause.exclusively\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ben-manes/caffeine/commit/2e945e090fbff4f96251dfe1bacba3780a5bdb0c\"\u003e\u003ccode\u003e2e945e0\u003c/code\u003e\u003c/a\u003e Skip timestamp writes within tolerance on the read path.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ben-manes/caffeine/compare/v3.2.3...v3.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springframework.boot` from 4.0.3 to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spring-projects/spring-boot/releases\"\u003eorg.springframework.boot's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.6\u003c/h2\u003e\n\u003ch2\u003e:lady_beetle: Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50188\"\u003e#50188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eElasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50187\"\u003e#50187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationPidFileWriter does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50185\"\u003e#50185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRandomValuePropertySource is not suitable for secrets \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50183\"\u003e#50183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCassandra auto-configuration misconfigures CqlSessionBuilder \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50180\"\u003e#50180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationTemp does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50178\"\u003e#50178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemote DevTools performs comparison incorrectly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50176\"\u003e#50176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring.rabbitmq.ssl.verify-hostname is applied inconsistently \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50174\"\u003e#50174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50077\"\u003e#50077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClassic starters are missing several modules \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50071\"\u003e#50071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModule spring-boot-resttestclient is missing from spring-boot-starter-test-classic \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/50069\"\u003e#50069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotations like \u003ccode\u003e@Ssl\u003c/code\u003e don't work on \u003ccode\u003e@Bean\u003c/code\u003e methods when using \u003ccode\u003e@ServiceConnection\u003c/code\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50064\"\u003e#50064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnversRevisionRepositoriesRegistrar should reuse \u003ccode\u003e@EnableEnversRepositories\u003c/code\u003e rather than configuring the JPA counterpart \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50039\"\u003e#50039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebFlux Cloud Foundry links endpoint includes query string from received request in resolved links \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50017\"\u003e#50017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImports on a containing test class are ignored when a nested class has imports \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50012\"\u003e#50012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWith spring.jackson.use-jackson2-defaults set to true, FAIL_ON_UNKNOWN_PROPERTIES is enabled \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49951\"\u003e#49951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e500 response from env endpoint when supplied pattern is invalid \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49946\"\u003e#49946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49945\"\u003e#49945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP method is lost when configuring excludes in EndpointRequest \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49943\"\u003e#49943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonor HttpMethod for reactive additional endpoint paths \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49880\"\u003e#49880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/artemis image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49869\"\u003e#49869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/activemq image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49866\"\u003e#49866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49854\"\u003e#49854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAPI versioning path strategy should be applied path last as it is not meant to yield \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49800\"\u003e#49800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:notebook_with_decorative_cover: Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs to encourage Java fundamentals for beginners that prefer to learn that way \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50146\"\u003e#50146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP Service Interface Clients still document that API versioning can be configured via properties \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50126\"\u003e#50126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the observability section of the Lettuce documentation is broken \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50097\"\u003e#50097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJavadoc for StaticResourceLocation.FAVICON doesn't describe icons location \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50085\"\u003e#50085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMySamlRelyingPartyConfiguration is missing a Kotlin sample \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50024\"\u003e#50024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncorrect default value for management.httpexchanges.recording.include in configuration metadata \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50019\"\u003e#50019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the Kubernetes documentation when discussing startup probes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50015\"\u003e#50015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypo in JdbcSessionAutoConfiguration Javadoc \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49873\"\u003e#49873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify that configuration property default values are not available through the Environment \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49851\"\u003e#49851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument the need for Liquibase and Flyway starters \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49839\"\u003e#49839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKafka documentation refers to deprecated JSON serializer and deserializer classes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49826\"\u003e#49826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Elasticsearch Client 9.2.8 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50027\"\u003e#50027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Groovy 5.0.5 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49911\"\u003e#49911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Hibernate 7.2.12.Final \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50134\"\u003e#50134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Jackson Bom 3.1.2 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50051\"\u003e#50051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/jaxen-xpath/jaxen/releases/tag/v2.0.1\"\u003eJaxen 2.0.1\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50104\"\u003e#50104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/FirebirdSQL/jaybird/releases/tag/v6.0.5\"\u003eJaybird 6.0.5\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49914\"\u003e#49914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/8821ad2cd381bb4b9615a61479e1de7305a8ba39\"\u003e\u003ccode\u003e8821ad2\u003c/code\u003e\u003c/a\u003e Release v4.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9e4048a03f17adfe78057a3c4d5b4693305c0ae0\"\u003e\u003ccode\u003e9e4048a\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/20bb11c3984802990572ddbeae8b66885a8f2462\"\u003e\u003ccode\u003e20bb11c\u003c/code\u003e\u003c/a\u003e Next development version (v3.5.15-SNAPSHOT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/98daa8ea30f39a5b0ca6768b5cbc2dc8698ef4e1\"\u003e\u003ccode\u003e98daa8e\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9dc5aa2863f598a15d3dfa116f4b89249daba7e7\"\u003e\u003ccode\u003e9dc5aa2\u003c/code\u003e\u003c/a\u003e Polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/874f6294b91da18367b8b5ab7b2fad3fa23cfba6\"\u003e\u003ccode\u003e874f629\u003c/code\u003e\u003c/a\u003e Fix default security with actuator but without health\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/e41b3bf731d1134bc18ec1f68ac01e0fe1c54923\"\u003e\u003ccode\u003ee41b3bf\u003c/code\u003e\u003c/a\u003e Enable hostname verification for SSL connections to Elasticsearch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/ef8527bb0ef8f564f4f9c57a7be99a7aa96c6ab0\"\u003e\u003ccode\u003eef8527b\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/f533a4549c3999aac30cb5830f07dc304933e93d\"\u003e\u003ccode\u003ef533a45\u003c/code\u003e\u003c/a\u003e Do not follow symlinks when writing PID file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/4a7bd332b6d19fef1aa4cf28434985f2b03a2e0f\"\u003e\u003ccode\u003e4a7bd33\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spring-projects/spring-boot/compare/v4.0.3...v4.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.hibernate.orm` from 7.2.6.Final to 7.3.3.Final\n\nUpdates `com.github.ben-manes.versions` from 0.53.0 to 0.54.0\n\nUpdates `gradle-wrapper` from 9.4.0 to 9.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.5.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.5.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTask provenance in reports and failure messages\u003c/li\u003e\n\u003cli\u003eType-safe accessors for precompiled Kotlin Settings plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.5.0/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/atm1020\"\u003eatm1020\u003c/a\u003e,\n\u003ca href=\"https://github.com/mataha\"\u003emataha\u003c/a\u003e,\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/kelemen\"\u003eAttila Kelemen\u003c/a\u003e,\n\u003ca href=\"https://github.com/britter\"\u003eBenedikt Ritter\u003c/a\u003e,\n\u003ca href=\"https://github.com/Vampire\"\u003eBjörn Kautler\u003c/a\u003e,\n\u003ca href=\"https://github.com/budindepunk\"\u003eCaro Silva Rode\u003c/a\u003e,\n\u003ca href=\"https://github.com/chanani\"\u003eCHANHAN\u003c/a\u003e,\n\u003ca href=\"https://github.com/DmitryNez\"\u003eDmitry Nezavitin\u003c/a\u003e,\n\u003ca href=\"https://github.com/Juneezee\"\u003eEng Zer Jun\u003c/a\u003e,\n\u003ca href=\"https://github.com/KugelLibelle\"\u003eKugelLibelle\u003c/a\u003e,\n\u003ca href=\"https://github.com/vmadalin\"\u003eMadalin Valceleanu\u003c/a\u003e,\n\u003ca href=\"https://github.com/quijote\"\u003eMarkus Gaisbauer\u003c/a\u003e,\n\u003ca href=\"https://github.com/koppor\"\u003eOliver Kopp\u003c/a\u003e,\n\u003ca href=\"https://github.com/hfhbd\"\u003ePhilip Wedemann\u003c/a\u003e,\n\u003ca href=\"https://github.com/ploober\"\u003eploober\u003c/a\u003e,\n\u003ca href=\"https://github.com/rpalcolea\"\u003eRoberto Perez Alcolea\u003c/a\u003e,\n\u003ca href=\"https://github.com/R0h1tAnand\"\u003eRohit Anand\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/usv240\"\u003eUjwal Suresh Vanjare\u003c/a\u003e,\n\u003ca href=\"https://github.com/urdak\"\u003eVictor Merkulov\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.5.0 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew wrapper --gradle-version=9.5.0 \u0026amp;\u0026amp; ./gradlew wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.5.0/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.5.0/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.5.0 RC4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/3fe117d68f3907790f3809f121aa36303a9151f8\"\u003e\u003ccode\u003e3fe117d\u003c/code\u003e\u003c/a\u003e Update jdks.yaml (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37703\"\u003e#37703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/33d145af6fbe7cf7c9d84646b6d7f32fea91d5e2\"\u003e\u003ccode\u003e33d145a\u003c/code\u003e\u003c/a\u003e Update jdks.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f7a05d1ed48442eb5da4d6e2b6593da55cdec1da\"\u003e\u003ccode\u003ef7a05d1\u003c/code\u003e\u003c/a\u003e Update Gradle wrapper to version 9.5.0-rc-4 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37654\"\u003e#37654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/266facdcbcb0b4c60120cc118eaf0f652bfcdfe5\"\u003e\u003ccode\u003e266facd\u003c/code\u003e\u003c/a\u003e Update Gradle wrapper to version 9.5.0-rc-4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/0ad6dd8e143455707e444aa7e3d38327a3366513\"\u003e\u003ccode\u003e0ad6dd8\u003c/code\u003e\u003c/a\u003e Suppress OSC taskbar reset on plain/piped stdout (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37646\"\u003e#37646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/966025d5850d46c9158a2f25e4096222277ecf57\"\u003e\u003ccode\u003e966025d\u003c/code\u003e\u003c/a\u003e Suppress OSC taskbar reset on plain/piped stdout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/e7455734449e422accebf44cf7b31bf93e3a770c\"\u003e\u003ccode\u003ee745573\u003c/code\u003e\u003c/a\u003e Polish IP docs (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37642\"\u003e#37642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/d5cfd079acd2c8f1182edd6ec23dbab571132d0a\"\u003e\u003ccode\u003ed5cfd07\u003c/code\u003e\u003c/a\u003e Ensure BuildOperationQueue will progress without extra leases (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37629\"\u003e#37629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/acdf0c36fa13ba09a7ff5b51f79b9af4b1a097ee\"\u003e\u003ccode\u003eacdf0c3\u003c/code\u003e\u003c/a\u003e Ensure BuildOperationQueue will progress without extra leases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f7d0e4f6f7896426a8b24091388e4c252b62faef\"\u003e\u003ccode\u003ef7d0e4f\u003c/code\u003e\u003c/a\u003e Rename anchor\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.0...v9.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/cdome/ollumi/pull/26","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdome%2Follumi/issues/26","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/26/packages"}},{"old_version":"1.21.1","new_version":"1.22.2","update_type":"minor","path":"/mockserver","pr_created_at":"2026-05-07T18:58:36.000Z","version_change":"1.21.1 → 1.22.2","issue":{"uuid":"4401255468","node_id":"PR_kwDOAICTps7ZRW7T","number":2199,"state":"open","title":"build(deps-dev): bump org.jsoup:jsoup from 1.21.1 to 1.22.2 in /mockserver","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-07T18:58:36.000Z","updated_at":"2026-05-07T21:45:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps-dev)","packages":[{"name":"org.jsoup:jsoup","old_version":"1.21.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"}],"path":"/mockserver","ecosystem":"maven"},"body":"Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.21.1 to 1.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.1\u003c/strong\u003e is out now, adding support for the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and numerous bug fixes and improvements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jsoup.org/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\r\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\r\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\r\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\r\n  \u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eRegex.usingRe2j()\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.22.1 (2026-Jan-01)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\n  \u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eorg.jsoup.helper.Regex.usingRe2j()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an instance method \u003ccode\u003eParser#unescape(String, boolean)\u003c/code\u003e that unescapes HTML entities using the parser's configuration (e.g. to support error tracking), complementing the existing static utility \u003ccode\u003eParser.unescapeEntities(String, boolean)\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded a configurable maximum parser depth (to limit the number of open elements on stack) to both HTML and XML parsers. The HTML parser now defaults to a depth of 512 to match browser behavior, and protect against unbounded stack growth, while the XML parser keeps unlimited depth by default, but can opt into a limit via \u003ccode\u003eorg.jsoup.parser.Parser#setMaxDepth\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2421\"\u003e#2421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added CI coverage for JDK 25 \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2403\"\u003e#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added a CI fuzzer for contextual fragment parsing (in addition to existing full body HTML and XML fuzzers). [oss-fuzz \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/14041\"\u003e#14041\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/google/oss-fuzz/pull/14041\"\u003egoogle/oss-fuzz#14041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet a removal schedule of jsoup 1.24.1 for previously deprecated APIs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously cached child \u003ccode\u003eElements\u003c/code\u003e of an \u003ccode\u003eElement\u003c/code\u003e were not correctly invalidated in \u003ccode\u003eNode#replaceWith(Node)\u003c/code\u003e, which could lead to incorrect results when subsequently calling \u003ccode\u003eElement#children()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2391\"\u003e#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttribute selector values are now compared literally without trimming. Previously, jsoup trimmed whitespace from selector values and from element attribute values, which could cause mismatches with browser behavior (e.g. \u003ccode\u003e[attr=\u0026quot; foo \u0026quot;]\u003c/code\u003e). Now matches align with the CSS specification and browser engines. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2380\"\u003e#2380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using the JDK HttpClient, any system default proxy (\u003ccode\u003eProxySelector.getDefault()\u003c/code\u003e) was ignored. Now, the system proxy is used if a per-request proxy is not set. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2388\"\u003e#2388\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2390\"\u003e#2390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eValidationException\u003c/code\u003e could be thrown in the adoption agency algorithm with particularly broken input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2393\"\u003e#2393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNull characters in the HTML body were not consistently removed; and in foreign content were not correctly replaced. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2395\"\u003e#2395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAn \u003ccode\u003eIndexOutOfBoundsException\u003c/code\u003e could be thrown when parsing a body fragment with crafted input. Now logged as a parse error. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2397\"\u003e#2397\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2406\"\u003e#2406\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using StructuralEvaluators (e.g., a \u003ccode\u003eparent child\u003c/code\u003e selector) across many retained threads, their memoized results could also be retained, increasing memory use. These results are now cleared immediately after use, reducing overall memory consumption. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2411\"\u003e#2411\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCloning a \u003ccode\u003eParser\u003c/code\u003e now preserves any custom \u003ccode\u003eTagSet\u003c/code\u003e applied to the parser. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2422\"\u003e#2422\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2423\"\u003e#2423\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.21.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/mock-server/mockserver-monorepo/pull/2199","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mock-server%2Fmockserver-monorepo/issues/2199","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2199/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-06T11:58:09.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4391129491","node_id":"PR_kwDOBQcfMM7YwMSb","number":79,"state":"closed","title":"Bump the build-dependencies group across 1 directory with 46 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-07T22:30:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-06T11:58:09.000Z","updated_at":"2026-05-07T22:30:53.000Z","time_to_close":124363,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"build-dependencies","update_count":46,"packages":[{"name":"com.gradle.develocity","old_version":"4.3.2","new_version":"4.4.1"},{"name":"com.gradle.common-custom-user-data-gradle-plugin","old_version":"2.4.0","new_version":"2.6.0"},{"name":"org.checkerframework:checker-qual-android","old_version":"3.53.1","new_version":"4.1.0","repository_url":"https://github.com/typetools/checker-framework"},{"name":"org.checkerframework:checker","old_version":"3.53.1","new_version":"4.1.0","repository_url":"https://github.com/typetools/checker-framework"},{"name":"org.ehcache:ehcache","old_version":"3.11.1","new_version":"3.12.0","repository_url":"https://github.com/ehcache/ehcache3"},{"name":"org.junit.jupiter:junit-jupiter","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-api","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-engine","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-params","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.vintage:junit-vintage-engine","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.platform:junit-platform-launcher","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"ch.qos.logback:logback-classic","old_version":"1.5.18","new_version":"1.5.32","repository_url":"https://github.com/qos-ch/logback"},{"name":"org.jboss.byteman:byteman-bmunit","old_version":"4.0.24","new_version":"4.0.26"},{"name":"org.mockito:mockito-core","old_version":"5.20.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.mockito:mockito-junit-jupiter","old_version":"5.20.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.jboss.weld.se:weld-se-shaded","old_version":"6.0.3.Final","new_version":"6.0.4.Final"},{"name":"org.dom4j:dom4j","old_version":"2.1.3","new_version":"2.2.0","repository_url":"https://github.com/dom4j/dom4j"},{"name":"org.orbisgis:h2gis","old_version":"2.2.4","new_version":"2.2.5","repository_url":"https://github.com/orbisgis/H2GIS"},{"name":"org.postgresql:postgresql","old_version":"42.7.8","new_version":"42.7.11","repository_url":"https://github.com/pgjdbc/pgjdbc"},{"name":"com.enterprisedb:edb-jdbc","old_version":"42.7.3.3","new_version":"42.7.3.4","repository_url":"https://github.com/EnterpriseDB/edb-jdbc"},{"name":"com.mysql:mysql-connector-j","old_version":"9.6.0","new_version":"9.7.0","repository_url":"https://github.com/mysql/mysql-connector-j"},{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.5","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"com.oracle.database.jdbc:ojdbc-provider-jackson-oson","old_version":"1.0.4","new_version":"1.0.6","repository_url":"https://github.com/oracle/ojdbc-extensions"},{"name":"com.microsoft.sqlserver:mssql-jdbc","old_version":"13.2.1.jre11","new_version":"13.4.0.jre11","repository_url":"https://github.com/Microsoft/mssql-jdbc"},{"name":"com.ibm.db2:jcc","old_version":"12.1.3.0","new_version":"12.1.4.0"},{"name":"com.sap.cloud.db.jdbc:ngdbc","old_version":"2.26.11","new_version":"2.28.7"},{"name":"com.teradata.jdbc:terajdbc","old_version":"20.00.00.51","new_version":"20.00.00.54","repository_url":"https://github.com/Teradata/jdbc-driver"},{"name":"com.ibm.informix:jdbc","old_version":"15.0.0.2","new_version":"15.0.1.1"},{"name":"org.firebirdsql.jdbc:jaybird","old_version":"6.0.3","new_version":"6.0.5","repository_url":"https://github.com/FirebirdSQL/jaybird"},{"name":"com.altibase:altibase-jdbc","old_version":"7.3.0.1.1","new_version":"8.1.0.0.1"},{"name":"com.google.cloud:google-cloud-spanner-jdbc","old_version":"2.35.5","new_version":"2.38.0","repository_url":"https://github.com/googleapis/google-cloud-java"},{"name":"org.apache.maven:maven-core","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-artifact","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-embedder","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-compat","old_version":"3.9.14","new_version":"3.9.15","repository_url":"https://github.com/apache/maven"},{"name":"org.apache.maven.plugin-tools:maven-plugin-tools-annotations","old_version":"3.15.1","new_version":"3.15.2","repository_url":"https://github.com/apache/maven-plugin-tools"},{"name":"org.apache.maven.resolver:maven-resolver-transport-http","old_version":"1.9.24","new_version":"1.9.27"},{"name":"org.apache.maven.resolver:maven-resolver-connector-basic","old_version":"1.9.24","new_version":"1.9.27","repository_url":"https://github.com/apache/maven-resolver"},{"name":"de.thetaphi:forbiddenapis","old_version":"3.8","new_version":"3.10"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.asciidoctor:asciidoctorj","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/asciidoctor/asciidoctorj"},{"name":"com.diffplug.spotless","old_version":"8.3.0","new_version":"8.4.0"},{"name":"com.gradle.plugin-publish","old_version":"2.0.0","new_version":"2.1.1"},{"name":"org.jetbrains.kotlin.jvm","old_version":"2.0.20","new_version":"2.3.21"},{"name":"biz.aQute.bnd","old_version":"7.2.1","new_version":"7.2.3"},{"name":"biz.aQute.bnd.builder","old_version":"7.2.1","new_version":"7.2.3"}],"path":null,"ecosystem":"maven"},"body":"Bumps the build-dependencies group with 46 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| com.gradle.develocity | `4.3.2` | `4.4.1` |\n| com.gradle.common-custom-user-data-gradle-plugin | `2.4.0` | `2.6.0` |\n| [org.checkerframework:checker-qual-android](https://github.com/typetools/checker-framework) | `3.53.1` | `4.1.0` |\n| [org.checkerframework:checker](https://github.com/typetools/checker-framework) | `3.53.1` | `4.1.0` |\n| [org.ehcache:ehcache](https://github.com/ehcache/ehcache3) | `3.11.1` | `3.12.0` |\n| [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.platform:junit-platform-launcher](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) | `1.5.18` | `1.5.32` |\n| org.jboss.byteman:byteman-bmunit | `4.0.24` | `4.0.26` |\n| [org.mockito:mockito-core](https://github.com/mockito/mockito) | `5.20.0` | `5.23.0` |\n| [org.mockito:mockito-junit-jupiter](https://github.com/mockito/mockito) | `5.20.0` | `5.23.0` |\n| org.jboss.weld.se:weld-se-shaded | `6.0.3.Final` | `6.0.4.Final` |\n| [org.dom4j:dom4j](https://github.com/dom4j/dom4j) | `2.1.3` | `2.2.0` |\n| [org.orbisgis:h2gis](https://github.com/orbisgis/H2GIS) | `2.2.4` | `2.2.5` |\n| [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) | `42.7.8` | `42.7.11` |\n| [com.enterprisedb:edb-jdbc](https://github.com/EnterpriseDB/edb-jdbc) | `42.7.3.3` | `42.7.3.4` |\n| [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) | `9.6.0` | `9.7.0` |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.5` | `3.5.8` |\n| [com.oracle.database.jdbc:ojdbc-provider-jackson-oson](https://github.com/oracle/ojdbc-extensions) | `1.0.4` | `1.0.6` |\n| [com.microsoft.sqlserver:mssql-jdbc](https://github.com/Microsoft/mssql-jdbc) | `13.2.1.jre11` | `13.4.0.jre11` |\n| com.ibm.db2:jcc | `12.1.3.0` | `12.1.4.0` |\n| com.sap.cloud.db.jdbc:ngdbc | `2.26.11` | `2.28.7` |\n| [com.teradata.jdbc:terajdbc](https://github.com/Teradata/jdbc-driver) | `20.00.00.51` | `20.00.00.54` |\n| com.ibm.informix:jdbc | `15.0.0.2` | `15.0.1.1` |\n| [org.firebirdsql.jdbc:jaybird](https://github.com/FirebirdSQL/jaybird) | `6.0.3` | `6.0.5` |\n| com.altibase:altibase-jdbc | `7.3.0.1.1` | `8.1.0.0.1` |\n| [com.google.cloud:google-cloud-spanner-jdbc](https://github.com/googleapis/google-cloud-java) | `2.35.5` | `2.38.0` |\n| org.apache.maven:maven-core | `3.9.14` | `3.9.15` |\n| org.apache.maven:maven-artifact | `3.9.14` | `3.9.15` |\n| org.apache.maven:maven-embedder | `3.9.14` | `3.9.15` |\n| [org.apache.maven:maven-compat](https://github.com/apache/maven) | `3.9.14` | `3.9.15` |\n| [org.apache.maven.plugin-tools:maven-plugin-tools-annotations](https://github.com/apache/maven-plugin-tools) | `3.15.1` | `3.15.2` |\n| org.apache.maven.resolver:maven-resolver-transport-http | `1.9.24` | `1.9.27` |\n| [org.apache.maven.resolver:maven-resolver-connector-basic](https://github.com/apache/maven-resolver) | `1.9.24` | `1.9.27` |\n| de.thetaphi:forbiddenapis | `3.8` | `3.10` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.asciidoctor:asciidoctorj](https://github.com/asciidoctor/asciidoctorj) | `3.0.0` | `3.0.1` |\n| com.diffplug.spotless | `8.3.0` | `8.4.0` |\n| com.gradle.plugin-publish | `2.0.0` | `2.1.1` |\n| org.jetbrains.kotlin.jvm | `2.0.20` | `2.3.21` |\n| biz.aQute.bnd | `7.2.1` | `7.2.3` |\n| biz.aQute.bnd.builder | `7.2.1` | `7.2.3` |\n\n\nUpdates `com.gradle.develocity` from 4.3.2 to 4.4.1\n\nUpdates `com.gradle.common-custom-user-data-gradle-plugin` from 2.4.0 to 2.6.0\n\nUpdates `org.checkerframework:checker-qual-android` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker-qual-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker-qual-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.checkerframework:checker` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.checkerframework:checker` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.ehcache:ehcache` from 3.11.1 to 3.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/f4a96f47758e8d0bbe3de81c371bdbb33d620b88\"\u003e\u003ccode\u003ef4a96f4\u003c/code\u003e\u003c/a\u003e Set ehcacheVersion to 3.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/ae90183364e2b67e5bc07c01be6f055b0d193099\"\u003e\u003ccode\u003eae90183\u003c/code\u003e\u003c/a\u003e TDB-20139 restore sonatype deployment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/bc9309ba47ad255872017ca71ba29240d1800c17\"\u003e\u003ccode\u003ebc9309b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3318\"\u003e#3318\u003c/a\u003e from ehcache/upgrade/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/2754c27f3bd53d620d8f4837c7c9e33337cc7c11\"\u003e\u003ccode\u003e2754c27\u003c/code\u003e\u003c/a\u003e CVE-2025-67030: Update plexus-utils to 3.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/87270e4b3b93742c8e3e5dcae733ee1f10f4ad6e\"\u003e\u003ccode\u003e87270e4\u003c/code\u003e\u003c/a\u003e CVE-2026-1605: Update Jetty to 12.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/0be598f1212d72f003700153f8faccebc09effc2\"\u003e\u003ccode\u003e0be598f\u003c/code\u003e\u003c/a\u003e Ignoring CVE-2025-67030\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/59cc21116254b6b1b5970b79272f0b3abfbc6808\"\u003e\u003ccode\u003e59cc211\u003c/code\u003e\u003c/a\u003e Upgrade platform and core\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/2badca4e5a7bb3039ae7521e83c6bf114655cf74\"\u003e\u003ccode\u003e2badca4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3311\"\u003e#3311\u003c/a\u003e from aurbroszniowski/TDB-19854-upgrade-dependencies-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/d532bbce9f72a1e253c4df1fbe6230a96b1e953c\"\u003e\u003ccode\u003ed532bbc\u003c/code\u003e\u003c/a\u003e TDB-19854\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/b6df7aac037d55ee350d242d9b6edd69f6913dbc\"\u003e\u003ccode\u003eb6df7aa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3310\"\u003e#3310\u003c/a\u003e from ehcache/platform-5.11.6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ehcache/ehcache3/compare/v3.11.1...v3.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-api` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-params` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-params's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.vintage:junit-vintage-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.vintage:junit-vintage-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-api` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-params` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-params's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.vintage:junit-vintage-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.vintage:junit-vintage-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.platform:junit-platform-launcher` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.platform:junit-platform-launcher's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ch.qos.logback:logback-classic` from 1.5.18 to 1.5.32\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/qos-ch/logback/releases\"\u003ech.qos.logback:logback-classic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eLogback 1.5.32\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-16 Release of logback version 1.5.32\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• In \u003ccode\u003eDefaultProcessor, \u003c/code\u003efixed incorrect check for dependencies contained within a parent model. Previous only the direct children were scanned. This fixes \u003ca href=\"https://redirect.github.com/qos-ch/logback-access/issues/34\"\u003elogback-access/issues/34\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit e807335a67535b4eacce94e942c0bcb649665d93 associated with the tag v_1.5.32. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback  1.5.31\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-14 Release of logback version 1.5.31\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Fixed missing META-INF/services directory in logback-classic.jar. This issue rendered logback-classic version 1.5.30 unusable with SLF4J.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit 168e42f9f9a18a3ffdf31eb2bfe80a71e33ecd8b associated with the tag v_1.5.31. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.30\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-14 Release of logback  version 1.5.30\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• \u003cstrong\u003eIn this version, logback-classic.jar was missing the META-INF/services directory, making it unusable with SLF4J. Version 1.5.31 (released later on the same day) fixes this issue.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Fix scanning issue when an included file becomes available at a later time. This problem was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1021\"\u003eissues/1021\u003c/a\u003e by Sergey Nazarov.\u003c/p\u003e\n\u003cp\u003e• Standardized code for version checking across modules.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit 44164f10ca3fb44ce0e68519f13564b87e3aca61 associated with the tag v_1.5.30. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.29\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-09 Release of logback version 1.5.29\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• In response to \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1017\"\u003eissues/1017\u003c/a\u003e, appender names and appender references are once again subject to variable substitution, reverting the change introduced in version 1.5.28.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.28\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-06 Release of logback version 1.5.28\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Appender names or appender references are no longer subject to variable substitution.\u003c/p\u003e\n\u003cp\u003e• Fixed issue with configurations with conditionals encompassing appenders. This was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1016\"\u003eissues/1016\u003c/a\u003e reported by Sergey Sazonov.\u003c/p\u003e\n\u003cp\u003e• The \u003c!-- raw HTML omitted --\u003e element now admits a 'scan' attribute which can be used to override the 'scan' attribute in the \u003c!-- raw HTML omitted --\u003e element.\u003c/p\u003e\n\u003cp\u003e• Fixed NullPointerException thrown by VersionUtil.checkForVersionEquality method occurring with GraalVM Native Images. This issue was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1014\"\u003eissues/1014\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit e7a1855ab562bb102333f754603ff89359bf3cfc associated with the tag v_1.5.28. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.27\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-01-30 Release of logback version 1.5.27\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Updated license to Eclipse Public License version 2.0 from version 1.0, retaining the GPL 2.1 dual-license.\u003c/p\u003e\n\u003cp\u003e• Fixed missing MDC data transmitted by \u003ccode\u003eSocketAppender\u003c/code\u003e reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1010\"\u003eissues/1010\u003c/a\u003e by Lars Vogel.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qos-ch/logback/commit/e807335a67535b4eacce94e942c0bcb649665d93\"\u003e\u003ccode\u003ee807335\u003c/code\u003e\u003c/a\u003e prepare release 1.5.32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https:...\n\n_Description has been truncated_","html_url":"https://github.com/marko-bekhta/hibernate-orm/pull/79","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/marko-bekhta%2Fhibernate-orm/issues/79","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/79/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-06T11:06:24.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4390841867","node_id":"PR_kwDOAA6qDM7YvP0h","number":12330,"state":"closed","title":"Bump the build-dependencies group across 1 directory with 46 updates","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-07T00:53:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-06T11:06:24.000Z","updated_at":"2026-05-07T00:53:54.000Z","time_to_close":49648,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"build-dependencies","update_count":46,"packages":[{"name":"com.gradle.develocity","old_version":"4.3.2","new_version":"4.4.1"},{"name":"com.gradle.common-custom-user-data-gradle-plugin","old_version":"2.4.0","new_version":"2.6.0"},{"name":"org.checkerframework:checker-qual-android","old_version":"3.53.1","new_version":"4.1.0","repository_url":"https://github.com/typetools/checker-framework"},{"name":"org.checkerframework:checker","old_version":"3.53.1","new_version":"4.1.0","repository_url":"https://github.com/typetools/checker-framework"},{"name":"org.ehcache:ehcache","old_version":"3.11.1","new_version":"3.12.0","repository_url":"https://github.com/ehcache/ehcache3"},{"name":"org.junit.jupiter:junit-jupiter","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-api","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-engine","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.jupiter:junit-jupiter-params","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.vintage:junit-vintage-engine","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.junit.platform:junit-platform-launcher","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"ch.qos.logback:logback-classic","old_version":"1.5.18","new_version":"1.5.32","repository_url":"https://github.com/qos-ch/logback"},{"name":"org.jboss.byteman:byteman-bmunit","old_version":"4.0.24","new_version":"4.0.26"},{"name":"org.mockito:mockito-core","old_version":"5.20.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.mockito:mockito-junit-jupiter","old_version":"5.20.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.jboss.weld.se:weld-se-shaded","old_version":"6.0.3.Final","new_version":"6.0.4.Final"},{"name":"org.dom4j:dom4j","old_version":"2.1.3","new_version":"2.2.0","repository_url":"https://github.com/dom4j/dom4j"},{"name":"org.orbisgis:h2gis","old_version":"2.2.4","new_version":"2.2.5","repository_url":"https://github.com/orbisgis/H2GIS"},{"name":"org.postgresql:postgresql","old_version":"42.7.8","new_version":"42.7.11","repository_url":"https://github.com/pgjdbc/pgjdbc"},{"name":"com.enterprisedb:edb-jdbc","old_version":"42.7.3.3","new_version":"42.7.3.4","repository_url":"https://github.com/EnterpriseDB/edb-jdbc"},{"name":"com.mysql:mysql-connector-j","old_version":"9.6.0","new_version":"9.7.0","repository_url":"https://github.com/mysql/mysql-connector-j"},{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.5","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"com.oracle.database.jdbc:ojdbc-provider-jackson-oson","old_version":"1.0.4","new_version":"1.0.6","repository_url":"https://github.com/oracle/ojdbc-extensions"},{"name":"com.microsoft.sqlserver:mssql-jdbc","old_version":"13.2.1.jre11","new_version":"13.4.0.jre11","repository_url":"https://github.com/Microsoft/mssql-jdbc"},{"name":"com.ibm.db2:jcc","old_version":"12.1.3.0","new_version":"12.1.4.0"},{"name":"com.sap.cloud.db.jdbc:ngdbc","old_version":"2.26.11","new_version":"2.28.7"},{"name":"com.teradata.jdbc:terajdbc","old_version":"20.00.00.51","new_version":"20.00.00.54","repository_url":"https://github.com/Teradata/jdbc-driver"},{"name":"com.ibm.informix:jdbc","old_version":"15.0.0.2","new_version":"15.0.1.1"},{"name":"org.firebirdsql.jdbc:jaybird","old_version":"6.0.3","new_version":"6.0.5","repository_url":"https://github.com/FirebirdSQL/jaybird"},{"name":"com.altibase:altibase-jdbc","old_version":"7.3.0.1.1","new_version":"8.1.0.0.1"},{"name":"com.google.cloud:google-cloud-spanner-jdbc","old_version":"2.35.5","new_version":"2.38.0","repository_url":"https://github.com/googleapis/google-cloud-java"},{"name":"org.apache.maven:maven-core","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-artifact","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-embedder","old_version":"3.9.14","new_version":"3.9.15"},{"name":"org.apache.maven:maven-compat","old_version":"3.9.14","new_version":"3.9.15","repository_url":"https://github.com/apache/maven"},{"name":"org.apache.maven.plugin-tools:maven-plugin-tools-annotations","old_version":"3.15.1","new_version":"3.15.2","repository_url":"https://github.com/apache/maven-plugin-tools"},{"name":"org.apache.maven.resolver:maven-resolver-transport-http","old_version":"1.9.24","new_version":"1.9.27"},{"name":"org.apache.maven.resolver:maven-resolver-connector-basic","old_version":"1.9.24","new_version":"1.9.27","repository_url":"https://github.com/apache/maven-resolver"},{"name":"de.thetaphi:forbiddenapis","old_version":"3.8","new_version":"3.10"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.asciidoctor:asciidoctorj","old_version":"3.0.0","new_version":"3.0.1","repository_url":"https://github.com/asciidoctor/asciidoctorj"},{"name":"com.diffplug.spotless","old_version":"8.3.0","new_version":"8.4.0"},{"name":"com.gradle.plugin-publish","old_version":"2.0.0","new_version":"2.1.1"},{"name":"org.jetbrains.kotlin.jvm","old_version":"2.0.20","new_version":"2.3.21"},{"name":"biz.aQute.bnd","old_version":"7.2.1","new_version":"7.2.3"},{"name":"biz.aQute.bnd.builder","old_version":"7.2.1","new_version":"7.2.3"}],"path":null,"ecosystem":"maven"},"body":"Bumps the build-dependencies group with 46 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| com.gradle.develocity | `4.3.2` | `4.4.1` |\n| com.gradle.common-custom-user-data-gradle-plugin | `2.4.0` | `2.6.0` |\n| [org.checkerframework:checker-qual-android](https://github.com/typetools/checker-framework) | `3.53.1` | `4.1.0` |\n| [org.checkerframework:checker](https://github.com/typetools/checker-framework) | `3.53.1` | `4.1.0` |\n| [org.ehcache:ehcache](https://github.com/ehcache/ehcache3) | `3.11.1` | `3.12.0` |\n| [org.junit.jupiter:junit-jupiter](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-api](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.vintage:junit-vintage-engine](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [org.junit.platform:junit-platform-launcher](https://github.com/junit-team/junit-framework) | `6.0.1` | `6.0.3` |\n| [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) | `1.5.18` | `1.5.32` |\n| org.jboss.byteman:byteman-bmunit | `4.0.24` | `4.0.26` |\n| [org.mockito:mockito-core](https://github.com/mockito/mockito) | `5.20.0` | `5.23.0` |\n| [org.mockito:mockito-junit-jupiter](https://github.com/mockito/mockito) | `5.20.0` | `5.23.0` |\n| org.jboss.weld.se:weld-se-shaded | `6.0.3.Final` | `6.0.4.Final` |\n| [org.dom4j:dom4j](https://github.com/dom4j/dom4j) | `2.1.3` | `2.2.0` |\n| [org.orbisgis:h2gis](https://github.com/orbisgis/H2GIS) | `2.2.4` | `2.2.5` |\n| [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) | `42.7.8` | `42.7.11` |\n| [com.enterprisedb:edb-jdbc](https://github.com/EnterpriseDB/edb-jdbc) | `42.7.3.3` | `42.7.3.4` |\n| [com.mysql:mysql-connector-j](https://github.com/mysql/mysql-connector-j) | `9.6.0` | `9.7.0` |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.5` | `3.5.8` |\n| [com.oracle.database.jdbc:ojdbc-provider-jackson-oson](https://github.com/oracle/ojdbc-extensions) | `1.0.4` | `1.0.6` |\n| [com.microsoft.sqlserver:mssql-jdbc](https://github.com/Microsoft/mssql-jdbc) | `13.2.1.jre11` | `13.4.0.jre11` |\n| com.ibm.db2:jcc | `12.1.3.0` | `12.1.4.0` |\n| com.sap.cloud.db.jdbc:ngdbc | `2.26.11` | `2.28.7` |\n| [com.teradata.jdbc:terajdbc](https://github.com/Teradata/jdbc-driver) | `20.00.00.51` | `20.00.00.54` |\n| com.ibm.informix:jdbc | `15.0.0.2` | `15.0.1.1` |\n| [org.firebirdsql.jdbc:jaybird](https://github.com/FirebirdSQL/jaybird) | `6.0.3` | `6.0.5` |\n| com.altibase:altibase-jdbc | `7.3.0.1.1` | `8.1.0.0.1` |\n| [com.google.cloud:google-cloud-spanner-jdbc](https://github.com/googleapis/google-cloud-java) | `2.35.5` | `2.38.0` |\n| org.apache.maven:maven-core | `3.9.14` | `3.9.15` |\n| org.apache.maven:maven-artifact | `3.9.14` | `3.9.15` |\n| org.apache.maven:maven-embedder | `3.9.14` | `3.9.15` |\n| [org.apache.maven:maven-compat](https://github.com/apache/maven) | `3.9.14` | `3.9.15` |\n| [org.apache.maven.plugin-tools:maven-plugin-tools-annotations](https://github.com/apache/maven-plugin-tools) | `3.15.1` | `3.15.2` |\n| org.apache.maven.resolver:maven-resolver-transport-http | `1.9.24` | `1.9.27` |\n| [org.apache.maven.resolver:maven-resolver-connector-basic](https://github.com/apache/maven-resolver) | `1.9.24` | `1.9.27` |\n| de.thetaphi:forbiddenapis | `3.8` | `3.10` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.asciidoctor:asciidoctorj](https://github.com/asciidoctor/asciidoctorj) | `3.0.0` | `3.0.1` |\n| com.diffplug.spotless | `8.3.0` | `8.4.0` |\n| com.gradle.plugin-publish | `2.0.0` | `2.1.1` |\n| org.jetbrains.kotlin.jvm | `2.0.20` | `2.3.21` |\n| biz.aQute.bnd | `7.2.1` | `7.2.3` |\n| biz.aQute.bnd.builder | `7.2.1` | `7.2.3` |\n\n\nUpdates `com.gradle.develocity` from 4.3.2 to 4.4.1\n\nUpdates `com.gradle.common-custom-user-data-gradle-plugin` from 2.4.0 to 2.6.0\n\nUpdates `org.checkerframework:checker-qual-android` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker-qual-android's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker-qual-android's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.checkerframework:checker` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.checkerframework:checker` from 3.53.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.1.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and \u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0 of the Checker Framework\u003c/h2\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of javac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that compile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is, your code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and \u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in projects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600 issues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns about out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields Checker\u003c/a\u003e warns if a constructor does not initialize a field.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#resource-leak-checker\"\u003eResource Leak Checker\u003c/a\u003e guarantees that every resource is closed rather than leaked.  Examples of resources are a channel, executor, \u003ccode\u003eExecutionControl\u003c/code\u003e, file, \u003ccode\u003eFileLock\u003c/code\u003e, \u003ccode\u003eFormatter\u003c/code\u003e, reader, \u003ccode\u003eScanner\u003c/code\u003e, socket, stream, writer, etc.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#sql-quotes-checker\"\u003eSQL Quotes Checker\u003c/a\u003e helps prevent SQL injection vulnerabilities.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNew command-line arguments include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e-AskipFiles\u003c/code\u003e, \u003ccode\u003e-AonlyFiles\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AassumeSideEffectFree\u003c/code\u003e, \u003ccode\u003e-AassumeDeterministic\u003c/code\u003e, \u003ccode\u003e-AassumePure\u003c/code\u003e, \u003ccode\u003e-AassumePureGetters\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AuseConservativeDefaultsForUncheckedCode\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AignoreRawTypeArguments\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.1.0 (2026-05-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eRemoved deprecated script \u003ccode\u003echecker/bin-devel/build.sh\u003c/code\u003e; use \u003ccode\u003e./gradlew assemble\u003c/code\u003e\ninstead.\u003c/p\u003e\n\u003cp\u003eRemoved deprecated names \u0026quot;builder\u0026quot;, \u0026quot;object.construction\u0026quot;, and\n\u0026quot;objectconstruction\u0026quot; for the Called Methods Checker.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eNew method annotation \u003ccode\u003e@DoesNotUnrefineReceiver\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAnnotatedTypeFactory\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003enew method \u003ccode\u003ehasDoesNotUnrefineReceiver()\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e is now protected rather than public.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/6890\"\u003e#6890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7364\"\u003e#7364\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7488\"\u003e#7488\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 4.0.0 (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eTo run the Checker Framework, you need to use a JDK 17 or later version of\njavac.  That is, you need to use JDK 17 or later when compiling your code.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework can type-check any Java project, including projects that\ncompile to Java 8 or 11 bytecodes and run on JRE versions 8 or 11.  That is,\nyour code can run under any release of Java, from Java 8 onward.\u003c/p\u003e\n\u003cp\u003eThe type qualifiers and utility libraries in \u003ccode\u003echecker-qual.jar\u003c/code\u003e and\n\u003ccode\u003echecker-util.jar\u003c/code\u003e still use Java 11 bytecode.  Thus, they may be used in\nprojects that run under Java 11 or later.\u003c/p\u003e\n\u003ch3\u003eChanges since version 3.0.0\u003c/h3\u003e\n\u003cp\u003eSince version 3.0.0, 91 authors have made over 4500 commits and closed over 600\nissues.  Thanks to everyone who contributed!\u003c/p\u003e\n\u003cp\u003eNew checkers include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#index-checker\"\u003eIndex Checker\u003c/a\u003e warns\nabout out-of-bounds accesses to arrays and strings.\u003c/li\u003e\n\u003cli\u003eThe \u003ca href=\"https://checkerframework.org/manual/#initialized-fields-checker\"\u003eInitialized Fields\nChecker\u003c/a\u003e\nwarns if a constructor does not initialize a field.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/b8a7ca60a241c37d6889e8ecd38ba5fe6234e4d6\"\u003e\u003ccode\u003eb8a7ca6\u003c/code\u003e\u003c/a\u003e new release 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/f1563d2caeb6120b97b2dab32bc592ecf23b0848\"\u003e\u003ccode\u003ef1563d2\u003c/code\u003e\u003c/a\u003e Update for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/786773754bb83c294f3c04629027660fb289d699\"\u003e\u003ccode\u003e7867737\u003c/code\u003e\u003c/a\u003e Set environment variable \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/771b037663bdd490f04245437dff8ae6ebb1c64b\"\u003e\u003ccode\u003e771b037\u003c/code\u003e\u003c/a\u003e Tweak documentation (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7668\"\u003e#7668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/71735d1ec23ef765d8e559c92cb736630b0efaa3\"\u003e\u003ccode\u003e71735d1\u003c/code\u003e\u003c/a\u003e Fix documentation typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/6465706e3b4a69f95b2421da4284b47ccb49b81a\"\u003e\u003ccode\u003e6465706\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eisAliasedTypeAnnotation()\u003c/code\u003e protected (\u003ca href=\"https://redirect.github.com/typetools/checker-framework/issues/7667\"\u003e#7667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/8af69bca25fbd1d293a46ea224567feabce34370\"\u003e\u003ccode\u003e8af69bc\u003c/code\u003e\u003c/a\u003e Update cimg/base Docker tag to v2026.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/fa3ad9b59ac273df809e390fbcf2667e7977cce7\"\u003e\u003ccode\u003efa3ad9b\u003c/code\u003e\u003c/a\u003e How to update the Hevea version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/18002bf382ef24f3a4605dc17725bd9909c4497f\"\u003e\u003ccode\u003e18002bf\u003c/code\u003e\u003c/a\u003e Use environment variable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typetools/checker-framework/commit/dd8381c0344e7a3befb65c1e13b19b37aeb636c7\"\u003e\u003ccode\u003edd8381c\u003c/code\u003e\u003c/a\u003e Set up GitHub Actions CI\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typetools/checker-framework/compare/checker-framework-3.53.1...checker-framework-4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.ehcache:ehcache` from 3.11.1 to 3.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/f4a96f47758e8d0bbe3de81c371bdbb33d620b88\"\u003e\u003ccode\u003ef4a96f4\u003c/code\u003e\u003c/a\u003e Set ehcacheVersion to 3.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/ae90183364e2b67e5bc07c01be6f055b0d193099\"\u003e\u003ccode\u003eae90183\u003c/code\u003e\u003c/a\u003e TDB-20139 restore sonatype deployment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/bc9309ba47ad255872017ca71ba29240d1800c17\"\u003e\u003ccode\u003ebc9309b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3318\"\u003e#3318\u003c/a\u003e from ehcache/upgrade/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/2754c27f3bd53d620d8f4837c7c9e33337cc7c11\"\u003e\u003ccode\u003e2754c27\u003c/code\u003e\u003c/a\u003e CVE-2025-67030: Update plexus-utils to 3.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/87270e4b3b93742c8e3e5dcae733ee1f10f4ad6e\"\u003e\u003ccode\u003e87270e4\u003c/code\u003e\u003c/a\u003e CVE-2026-1605: Update Jetty to 12.1.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/0be598f1212d72f003700153f8faccebc09effc2\"\u003e\u003ccode\u003e0be598f\u003c/code\u003e\u003c/a\u003e Ignoring CVE-2025-67030\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/59cc21116254b6b1b5970b79272f0b3abfbc6808\"\u003e\u003ccode\u003e59cc211\u003c/code\u003e\u003c/a\u003e Upgrade platform and core\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/2badca4e5a7bb3039ae7521e83c6bf114655cf74\"\u003e\u003ccode\u003e2badca4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3311\"\u003e#3311\u003c/a\u003e from aurbroszniowski/TDB-19854-upgrade-dependencies-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/d532bbce9f72a1e253c4df1fbe6230a96b1e953c\"\u003e\u003ccode\u003ed532bbc\u003c/code\u003e\u003c/a\u003e TDB-19854\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ehcache/ehcache3/commit/b6df7aac037d55ee350d242d9b6edd69f6913dbc\"\u003e\u003ccode\u003eb6df7aa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ehcache/ehcache3/issues/3310\"\u003e#3310\u003c/a\u003e from ehcache/platform-5.11.6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ehcache/ehcache3/compare/v3.11.1...v3.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-api` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-params` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-params's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.vintage:junit-vintage-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.vintage:junit-vintage-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-api` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.jupiter:junit-jupiter-params` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.jupiter:junit-jupiter-params's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.vintage:junit-vintage-engine` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.vintage:junit-vintage-engine's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.junit.platform:junit-platform-launcher` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junit-team/junit-framework/releases\"\u003eorg.junit.platform:junit-platform-launcher's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJUnit 6.0.3 = Platform 6.0.3 + Jupiter 6.0.3 + Vintage 6.0.3\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.3/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eJUnit 6.0.2 = Platform 6.0.2 + Jupiter 6.0.2 + Vintage 6.0.2\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.junit.org/6.0.2/release-notes.html\"\u003eRelease Notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\"\u003ehttps://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/36e3253b726fa13cb9a1d29e94b9119575078c4a\"\u003e\u003ccode\u003e36e3253\u003c/code\u003e\u003c/a\u003e Release 6.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/295561f38592f1682feceb64d361987da1d0fc9b\"\u003e\u003ccode\u003e295561f\u003c/code\u003e\u003c/a\u003e Finalize 6.0.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/ea18076da11599c1467929bf75bc260e13c611b9\"\u003e\u003ccode\u003eea18076\u003c/code\u003e\u003c/a\u003e Fix deadlock in NamespacedHierarchicalStore.computeIfAbsent() (\u003ca href=\"https://redirect.github.com/junit-team/junit-framework/issues/5348\"\u003e#5348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/869e232420f1c1c64ab9be29609fe3e241c3675e\"\u003e\u003ccode\u003e869e232\u003c/code\u003e\u003c/a\u003e Add 5.14.3 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/d4b34c468ddb697ff3fe4096b3d67c28751ddab2\"\u003e\u003ccode\u003ed4b34c4\u003c/code\u003e\u003c/a\u003e Fix links to User Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/5c8fb0f2151fc277c3a0de7c3237d05c919439bb\"\u003e\u003ccode\u003e5c8fb0f\u003c/code\u003e\u003c/a\u003e Reliably support JRE.OTHER with @⁠EnabledOnJre and @⁠DisabledOnJre\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/febb13f70272a243742ea63d0f85535f7c51a67c\"\u003e\u003ccode\u003efebb13f\u003c/code\u003e\u003c/a\u003e Check out entire repo so switching to \u003ccode\u003emain\u003c/code\u003e branch works in last step\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/71fba9098655387c82d8ddbf137442bcb1fa56a0\"\u003e\u003ccode\u003e71fba90\u003c/code\u003e\u003c/a\u003e Install \u003ccode\u003epoppler-utils\u003c/code\u003e for \u003ccode\u003epdfinfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/740e9e050964c66da7cb5386f89a450985d51941\"\u003e\u003ccode\u003e740e9e0\u003c/code\u003e\u003c/a\u003e Update API baseline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junit-team/junit-framework/commit/2ba535f0c108ef5f8252578ee4c70547ff10d752\"\u003e\u003ccode\u003e2ba535f\u003c/code\u003e\u003c/a\u003e Use release branch of examples repo\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junit-team/junit-framework/compare/r6.0.1...r6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ch.qos.logback:logback-classic` from 1.5.18 to 1.5.32\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/qos-ch/logback/releases\"\u003ech.qos.logback:logback-classic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eLogback 1.5.32\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-16 Release of logback version 1.5.32\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• In \u003ccode\u003eDefaultProcessor, \u003c/code\u003efixed incorrect check for dependencies contained within a parent model. Previous only the direct children were scanned. This fixes \u003ca href=\"https://redirect.github.com/qos-ch/logback-access/issues/34\"\u003elogback-access/issues/34\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit e807335a67535b4eacce94e942c0bcb649665d93 associated with the tag v_1.5.32. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback  1.5.31\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-14 Release of logback version 1.5.31\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Fixed missing META-INF/services directory in logback-classic.jar. This issue rendered logback-classic version 1.5.30 unusable with SLF4J.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit 168e42f9f9a18a3ffdf31eb2bfe80a71e33ecd8b associated with the tag v_1.5.31. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.30\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-14 Release of logback  version 1.5.30\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• \u003cstrong\u003eIn this version, logback-classic.jar was missing the META-INF/services directory, making it unusable with SLF4J. Version 1.5.31 (released later on the same day) fixes this issue.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Fix scanning issue when an included file becomes available at a later time. This problem was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1021\"\u003eissues/1021\u003c/a\u003e by Sergey Nazarov.\u003c/p\u003e\n\u003cp\u003e• Standardized code for version checking across modules.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit 44164f10ca3fb44ce0e68519f13564b87e3aca61 associated with the tag v_1.5.30. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.29\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-09 Release of logback version 1.5.29\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• In response to \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1017\"\u003eissues/1017\u003c/a\u003e, appender names and appender references are once again subject to variable substitution, reverting the change introduced in version 1.5.28.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.28\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-02-06 Release of logback version 1.5.28\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Appender names or appender references are no longer subject to variable substitution.\u003c/p\u003e\n\u003cp\u003e• Fixed issue with configurations with conditionals encompassing appenders. This was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1016\"\u003eissues/1016\u003c/a\u003e reported by Sergey Sazonov.\u003c/p\u003e\n\u003cp\u003e• The \u003c!-- raw HTML omitted --\u003e element now admits a 'scan' attribute which can be used to override the 'scan' attribute in the \u003c!-- raw HTML omitted --\u003e element.\u003c/p\u003e\n\u003cp\u003e• Fixed NullPointerException thrown by VersionUtil.checkForVersionEquality method occurring with GraalVM Native Images. This issue was reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1014\"\u003eissues/1014\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e• A bit-wise identical binary of this version can be reproduced by building from source code at commit e7a1855ab562bb102333f754603ff89359bf3cfc associated with the tag v_1.5.28. Release built using Java \u0026quot;21\u0026quot; 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.\u003c/p\u003e\n\u003ch2\u003eLogback 1.5.27\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e2026-01-30 Release of logback version 1.5.27\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e• Updated license to Eclipse Public License version 2.0 from version 1.0, retaining the GPL 2.1 dual-license.\u003c/p\u003e\n\u003cp\u003e• Fixed missing MDC data transmitted by \u003ccode\u003eSocketAppender\u003c/code\u003e reported in \u003ca href=\"https://redirect.github.com/qos-ch/logback/issues/1010\"\u003eissues/1010\u003c/a\u003e by Lars Vogel.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/qos-ch/logback/commit/e807335a67535b4eacce94e942c0bcb649665d93\"\u003e\u003ccode\u003ee807335\u003c/code\u003e\u003c/a\u003e prepare release 1.5.32\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https...\n\n_Description has been truncated_","html_url":"https://github.com/hibernate/hibernate-orm/pull/12330","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibernate%2Fhibernate-orm/issues/12330","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12330/packages"}},{"old_version":"1.17.1","new_version":"1.22.2","update_type":"minor","path":null,"pr_created_at":"2026-05-04T06:42:37.000Z","version_change":"1.17.1 → 1.22.2","issue":{"uuid":"4374497173","node_id":"PR_kwDORw-J0s7X5m9Q","number":53,"state":"open","title":"chore(deps): bump the backend-dependencies group with 41 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-04T06:42:37.000Z","updated_at":"2026-05-04T06:46:13.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"backend-dependencies","update_count":41,"packages":[{"name":"com.google.cloud:spring-cloud-gcp-dependencies","old_version":"5.1.2","new_version":"8.0.2","repository_url":"https://github.com/GoogleCloudPlatform/spring-cloud-gcp"},{"name":"com.google.firebase:firebase-admin","old_version":"9.2.0","new_version":"9.8.0","repository_url":"https://github.com/firebase/firebase-admin-java"},{"name":"com.google.auth:google-auth-library-oauth2-http","old_version":"1.14.0","new_version":"1.46.0"},{"name":"software.amazon.awssdk:secretsmanager","old_version":"2.25.36","new_version":"2.44.0"},{"name":"software.amazon.awssdk:regions","old_version":"2.25.36","new_version":"2.44.0"},{"name":"com.azure:azure-identity","old_version":"1.12.2","new_version":"1.18.3","repository_url":"https://github.com/Azure/azure-sdk-for-java"},{"name":"com.azure:azure-security-keyvault-secrets","old_version":"4.8.2","new_version":"4.10.6","repository_url":"https://github.com/Azure/azure-sdk-for-java"},{"name":"com.squareup.okhttp3:okhttp","old_version":"4.12.0","new_version":"5.3.2","repository_url":"https://github.com/square/okhttp"},{"name":"com.squareup.okhttp3:logging-interceptor","old_version":"4.12.0","new_version":"5.3.2","repository_url":"https://github.com/square/okhttp"},{"name":"com.fasterxml.jackson.core:jackson-core","old_version":"2.17.0","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson-core"},{"name":"com.fasterxml.jackson.core:jackson-annotations","old_version":"2.17.0","new_version":"2.21.3"},{"name":"com.fasterxml.jackson.core:jackson-databind","old_version":"2.17.0","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson"},{"name":"com.fasterxml.jackson.datatype:jackson-datatype-jsr310","old_version":"2.17.0","new_version":"2.21.3"},{"name":"com.fasterxml.jackson.module:jackson-module-afterburner","old_version":"2.17.0","new_version":"2.21.3","repository_url":"https://github.com/FasterXML/jackson-modules-base"},{"name":"org.jsoup:jsoup","old_version":"1.17.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.slf4j:slf4j-api","old_version":"2.0.16","new_version":"2.0.17"},{"name":"ch.qos.logback:logback-classic","old_version":"1.5.8","new_version":"1.5.32","repository_url":"https://github.com/qos-ch/logback"},{"name":"ch.qos.logback:logback-core","old_version":"1.5.8","new_version":"1.5.32","repository_url":"https://github.com/qos-ch/logback"},{"name":"io.jsonwebtoken:jjwt-api","old_version":"0.12.5","new_version":"0.13.0","repository_url":"https://github.com/jwtk/jjwt"},{"name":"io.jsonwebtoken:jjwt-impl","old_version":"0.12.5","new_version":"0.13.0","repository_url":"https://github.com/jwtk/jjwt"},{"name":"io.jsonwebtoken:jjwt-jackson","old_version":"0.12.5","new_version":"0.13.0"},{"name":"jakarta.servlet:jakarta.servlet-api","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/eclipse-ee4j/servlet-api"},{"name":"io.github.resilience4j:resilience4j-core","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/resilience4j/resilience4j"},{"name":"io.github.resilience4j:resilience4j-retry","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/resilience4j/resilience4j"},{"name":"io.github.resilience4j:resilience4j-circuitbreaker","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/resilience4j/resilience4j"},{"name":"com.github.vladimir-bukhtoyarov:bucket4j-core","old_version":"7.6.0","new_version":"8.0.1","repository_url":"https://github.com/vladimir-bukhtoyarov/bucket4j"},{"name":"io.micrometer:micrometer-core","old_version":"1.12.3","new_version":"1.16.5","repository_url":"https://github.com/micrometer-metrics/micrometer"},{"name":"io.micrometer:micrometer-registry-prometheus","old_version":"1.12.3","new_version":"1.16.5","repository_url":"https://github.com/micrometer-metrics/micrometer"},{"name":"io.opentelemetry:opentelemetry-api","old_version":"1.36.0","new_version":"1.61.0","repository_url":"https://github.com/open-telemetry/opentelemetry-java"},{"name":"io.opentelemetry:opentelemetry-sdk","old_version":"1.36.0","new_version":"1.61.0","repository_url":"https://github.com/open-telemetry/opentelemetry-java"},{"name":"io.opentelemetry:opentelemetry-exporter-otlp","old_version":"1.36.0","new_version":"1.61.0","repository_url":"https://github.com/open-telemetry/opentelemetry-java"},{"name":"io.lettuce:lettuce-core","old_version":"6.3.0.RELEASE","new_version":"7.5.1.RELEASE","repository_url":"https://github.com/redis/lettuce"},{"name":"org.apache.commons:commons-pool2","old_version":"2.12.0","new_version":"2.13.1"},{"name":"com.zaxxer:HikariCP","old_version":"5.1.0","new_version":"7.0.2","repository_url":"https://github.com/brettwooldridge/HikariCP"},{"name":"com.github.ben-manes.caffeine:caffeine","old_version":"3.1.8","new_version":"3.2.4","repository_url":"https://github.com/ben-manes/caffeine"},{"name":"org.projectlombok:lombok","old_version":"1.18.34","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"org.junit:junit-bom","old_version":"5.10.0","new_version":"6.0.3","repository_url":"https://github.com/junit-team/junit-framework"},{"name":"org.mockito:mockito-core","old_version":"5.7.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.mockito:mockito-junit-jupiter","old_version":"5.7.0","new_version":"5.23.0","repository_url":"https://github.com/mockito/mockito"},{"name":"org.springframework.boot","old_version":"3.3.4","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"gradle-wrapper","old_version":"8.10","new_version":"9.5.0","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the backend-dependencies group with 41 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [com.google.cloud:spring-cloud-gcp-dependencies](https://github.com/GoogleCloudPlatform/spring-cloud-gcp) | `5.1.2` | `8.0.2` |\n| [com.google.firebase:firebase-admin](https://github.com/firebase/firebase-admin-java) | `9.2.0` | `9.8.0` |\n| com.google.auth:google-auth-library-oauth2-http | `1.14.0` | `1.46.0` |\n| software.amazon.awssdk:secretsmanager | `2.25.36` | `2.44.0` |\n| software.amazon.awssdk:regions | `2.25.36` | `2.44.0` |\n| [com.azure:azure-identity](https://github.com/Azure/azure-sdk-for-java) | `1.12.2` | `1.18.3` |\n| [com.azure:azure-security-keyvault-secrets](https://github.com/Azure/azure-sdk-for-java) | `4.8.2` | `4.10.6` |\n| [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) | `4.12.0` | `5.3.2` |\n| [com.squareup.okhttp3:logging-interceptor](https://github.com/square/okhttp) | `4.12.0` | `5.3.2` |\n| [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) | `2.17.0` | `2.21.3` |\n| com.fasterxml.jackson.core:jackson-annotations | `2.17.0` | `2.21.3` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.17.0` | `2.21.3` |\n| com.fasterxml.jackson.datatype:jackson-datatype-jsr310 | `2.17.0` | `2.21.3` |\n| [com.fasterxml.jackson.module:jackson-module-afterburner](https://github.com/FasterXML/jackson-modules-base) | `2.17.0` | `2.21.3` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.17.1` | `1.22.2` |\n| org.slf4j:slf4j-api | `2.0.16` | `2.0.17` |\n| [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) | `1.5.8` | `1.5.32` |\n| [ch.qos.logback:logback-core](https://github.com/qos-ch/logback) | `1.5.8` | `1.5.32` |\n| [io.jsonwebtoken:jjwt-api](https://github.com/jwtk/jjwt) | `0.12.5` | `0.13.0` |\n| [io.jsonwebtoken:jjwt-impl](https://github.com/jwtk/jjwt) | `0.12.5` | `0.13.0` |\n| io.jsonwebtoken:jjwt-jackson | `0.12.5` | `0.13.0` |\n| [jakarta.servlet:jakarta.servlet-api](https://github.com/eclipse-ee4j/servlet-api) | `6.0.0` | `6.1.0` |\n| [io.github.resilience4j:resilience4j-core](https://github.com/resilience4j/resilience4j) | `2.1.0` | `2.4.0` |\n| [io.github.resilience4j:resilience4j-retry](https://github.com/resilience4j/resilience4j) | `2.1.0` | `2.4.0` |\n| [io.github.resilience4j:resilience4j-circuitbreaker](https://github.com/resilience4j/resilience4j) | `2.1.0` | `2.4.0` |\n| [com.github.vladimir-bukhtoyarov:bucket4j-core](https://github.com/vladimir-bukhtoyarov/bucket4j) | `7.6.0` | `8.0.1` |\n| [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) | `1.12.3` | `1.16.5` |\n| [io.micrometer:micrometer-registry-prometheus](https://github.com/micrometer-metrics/micrometer) | `1.12.3` | `1.16.5` |\n| [io.opentelemetry:opentelemetry-api](https://github.com/open-telemetry/opentelemetry-java) | `1.36.0` | `1.61.0` |\n| [io.opentelemetry:opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-java) | `1.36.0` | `1.61.0` |\n| [io.opentelemetry:opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-java) | `1.36.0` | `1.61.0` |\n| [io.lettuce:lettuce-core](https://github.com/redis/lettuce) | `6.3.0.RELEASE` | `7.5.1.RELEASE` |\n| org.apache.commons:commons-pool2 | `2.12.0` | `2.13.1` |\n| [com.zaxxer:HikariCP](https://github.com/brettwooldridge/HikariCP) | `5.1.0` | `7.0.2` |\n| [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine) | `3.1.8` | `3.2.4` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.34` | `1.18.46` |\n| [org.junit:junit-bom](https://github.com/junit-team/junit-framework) | `5.10.0` | `6.0.3` |\n| [org.mockito:mockito-core](https://github.com/mockito/mockito) | `5.7.0` | `5.23.0` |\n| [org.mockito:mockito-junit-jupiter](https://github.com/mockito/mockito) | `5.7.0` | `5.23.0` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `3.3.4` | `4.0.6` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `8.10` | `9.5.0` |\n\nUpdates `com.google.cloud:spring-cloud-gcp-dependencies` from 5.1.2 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/releases\"\u003ecom.google.cloud:spring-cloud-gcp-dependencies's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v8.0.1...v8.0.2\"\u003e8.0.2\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update dependency com.google.cloud:libraries-bom to v26.79.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4401\"\u003e#4401\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/ea49ad19ea80c460ada05f7e8efd602ec6abeb99\"\u003eea49ad1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update gapic-generator-java-bom.version to v2.68.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4400\"\u003e#4400\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/23eb6e881c6a1ac2ff2d3bddadb537c4a1bdd4cc\"\u003e23eb6e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eenhance check with maven central (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4369\"\u003e#4369\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/bc21fe7d6472459a8b3b20e1a2013d1d97650170\"\u003ebc21fe7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFlaky Test \u003ccode\u003eConverterAwareMappingSpannerEntityReaderTests.readUnmatachableTypesTest()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4187\"\u003e#4187\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/3c1ce61d201d732a8886ca06900fd83962f36c2a\"\u003e3c1ce61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNullPointerException in spring-cloud-gcp-data-spanner (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4383\"\u003e#4383\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/366c6fe5791aff9bf05e3e55bdaff9fcc2354067\"\u003e366c6fe\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4381\"\u003e#4381\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd Spring Boot 4.0 migration release notes (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4355\"\u003e#4355\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/20f22d31d89b2441eb81d8d03914220ba7e37b62\"\u003e20f22d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v8.0.0...v8.0.1\"\u003e8.0.1\u003c/a\u003e (2026-03-09)\u003c/h2\u003e\n\u003cp\u003eSpring Boot 4.0 / Spring 7 Migration\nThis release marks a major architectural upgrade, moving the project baseline to Java 17 (with JDK 25 for Native Image) and Jakarta EE 11. This version focuses on achieving compatibility with the new modular architecture of Spring Boot 4.0, the refactored SpEL evaluation engine in Spring Data 2025.1, and enhanced AOT support for GraalVM. For a comprehensive overview of upstream changes, please refer to the official \u003ca href=\"https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide\"\u003eSpring Boot 4.0 Migration Guide\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSpring Data 4.0 (SpEL Evaluation): Multiple constructors removed due to the removal of QueryMethodEvaluationContextProvider. Users must migrate to constructors accepting ValueExpressionDelegate.\nAffected Classes: DatastoreQueryLookupStrategy, GqlDatastoreQuery, SpannerQueryLookupStrategy, SqlSpannerQuery.\nUser Action: If you manually instantiate these classes (e.g., in custom repository implementations), you must replace the   QueryMethodEvaluationContextProvider parameter with ValueExpressionDelegate.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMapping Exceptions: In Spring Data 4.0 (2025.1), metadata discovery and entity mapping failures are now uniformly wrapped in a top-level org.springframework.data.mapping.MappingException.\nImpact: Previously caught module-specific exceptions (e.g., SpannerDataException) may now be nested inside a MappingException.\nUser Action: Update error handling logic to check for the underlying cause. \u0026quot;Use NestedExceptionUtils.getMostSpecificCause() to retrieve specific error message details..\u0026quot;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNested Exceptions: Following Spring Framework 7.0's changes to NestedRuntimeException, nested exception messages are no longer automatically appended to the top-level getMessage() output.\nUser Action: When constructing custom error messages, you must now explicitly access the cause. \u0026quot;Use NestedExceptionUtils.getMostSpecificCause() to retrieve specific error message details.\u0026quot;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eActuator Health API: \u003ca href=\"https://docs.spring.io/spring-boot/reference/actuator/endpoints.html#actuator.endpoints.health\"\u003eThe Actuator Health API\u003c/a\u003e has been restructured to support better grouping through the org.springframework.boot.health.contributor package. PubSubHealthIndicator and SpannerHealthIndicator are now registered as HealthContributor beans.\nUser Action: These indicators are now always wrapped into a CompositeHealthContributor by the framework's auto-configuration.    Users who previously injected PubSubHealthIndicator or HealthIndicator directly must now inject HealthContributor and navigate the composite hierarchy if direct access is needed.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebump org.springframework.boot:spring-boot-dependencies from 3.5.3 to 4.0.0\u003c/li\u003e\n\u003cli\u003ebump org.springframework.cloud:spring-cloud-dependencies from 2025.0.0 to 2025.1.0\u003c/li\u003e\n\u003cli\u003ebump com.google.cloud:cloud-sql-socket-factory-bom from 1.25.0 to 1.28.0\u003c/li\u003e\n\u003cli\u003ebump io.r2dbc:r2dbc-postgresql from 1.0.7.RELEASE to 1.1.1.RELEASE\u003c/li\u003e\n\u003cli\u003ebump org.graalvm.buildtools:native-maven-plugin from 0.10.5 to 0.11.3\u003c/li\u003e\n\u003cli\u003ebump jakarta.annotation:jakarta.annotation-api from 1.3.5 to 2.1.1\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson:jackson-bom from 2.18.2 to 3.0.2 (via tools.jackson)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.4.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v7.4.5...v7.4.6\"\u003e7.4.6\u003c/a\u003e (2026-04-07)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/blob/main/CHANGELOG.md\"\u003ecom.google.cloud:spring-cloud-gcp-dependencies's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v8.0.1...v8.0.2\"\u003e8.0.2\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update dependency com.google.cloud:libraries-bom to v26.79.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4401\"\u003e#4401\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/ea49ad19ea80c460ada05f7e8efd602ec6abeb99\"\u003eea49ad1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update gapic-generator-java-bom.version to v2.68.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4400\"\u003e#4400\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/23eb6e881c6a1ac2ff2d3bddadb537c4a1bdd4cc\"\u003e23eb6e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eenhance check with maven central (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4369\"\u003e#4369\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/bc21fe7d6472459a8b3b20e1a2013d1d97650170\"\u003ebc21fe7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFlaky Test \u003ccode\u003eConverterAwareMappingSpannerEntityReaderTests.readUnmatachableTypesTest()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4187\"\u003e#4187\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/3c1ce61d201d732a8886ca06900fd83962f36c2a\"\u003e3c1ce61\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNullPointerException in spring-cloud-gcp-data-spanner (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4383\"\u003e#4383\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/366c6fe5791aff9bf05e3e55bdaff9fcc2354067\"\u003e366c6fe\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4381\"\u003e#4381\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd Spring Boot 4.0 migration release notes (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4355\"\u003e#4355\u003c/a\u003e) (\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/20f22d31d89b2441eb81d8d03914220ba7e37b62\"\u003e20f22d3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.0.1] Spring Boot 4.0 / Spring 7 Migration\u003c/h2\u003e\n\u003cp\u003eThis release marks a major architectural upgrade, moving the project baseline to \u003cstrong\u003eJava 17\u003c/strong\u003e (with \u003cstrong\u003eJDK 25\u003c/strong\u003e for Native Image) and \u003cstrong\u003eJakarta EE 11\u003c/strong\u003e.\nThis version focuses on achieving compatibility with the new modular architecture of Spring Boot 4.0, the refactored SpEL evaluation engine in Spring Data 2025.1, and enhanced AOT support for GraalVM.\nFor a comprehensive overview of upstream changes, please refer to the official \u003ca href=\"https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide\"\u003eSpring Boot 4.0 Migration Guide\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003e⚠️ Breaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSpring Data 4.0 (SpEL Evaluation):\u003c/strong\u003e Multiple constructors removed due to the removal of \u003ccode\u003eQueryMethodEvaluationContextProvider\u003c/code\u003e. Users must migrate to constructors accepting \u003ccode\u003eValueExpressionDelegate\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAffected Classes:\u003c/strong\u003e \u003ccode\u003eDatastoreQueryLookupStrategy\u003c/code\u003e, \u003ccode\u003eGqlDatastoreQuery\u003c/code\u003e, \u003ccode\u003eSpannerQueryLookupStrategy\u003c/code\u003e, \u003ccode\u003eSqlSpannerQuery\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUser Action:\u003c/strong\u003e If you manually instantiate these classes (e.g., in custom repository implementations), you must replace the \u003ccode\u003eQueryMethodEvaluationContextProvider\u003c/code\u003e parameter with \u003ccode\u003eValueExpressionDelegate\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMapping Exceptions:\u003c/strong\u003e In Spring Data 4.0 (2025.1), metadata discovery and entity mapping failures are now uniformly wrapped in a top-level \u003ccode\u003eorg.springframework.data.mapping.MappingException\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eImpact:\u003c/strong\u003e Previously caught module-specific exceptions (e.g., \u003ccode\u003eSpannerDataException\u003c/code\u003e) may now be nested inside a \u003ccode\u003eMappingException\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eUser Action:\u003c/strong\u003e Update error handling logic to check for the underlying cause. \u0026quot;Use \u003ccode\u003eNestedExceptionUtils.getMostSpecificCause()\u003c/code\u003e to retrieve specific error message details..\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNested Exceptions:\u003c/strong\u003e Following Spring Framework 7.0's changes to \u003ccode\u003eNestedRuntimeException\u003c/code\u003e, nested exception messages are no longer automatically appended to the top-level \u003ccode\u003egetMessage()\u003c/code\u003e output.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eUser Action:\u003c/strong\u003e When constructing custom error messages, you must now explicitly access the cause. \u0026quot;Use \u003ccode\u003eNestedExceptionUtils.getMostSpecificCause()\u003c/code\u003e to retrieve specific error message details.\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eActuator Health API:\u003c/strong\u003e \u003ca href=\"https://docs.spring.io/spring-boot/reference/actuator/endpoints.html#actuator.endpoints.health\"\u003eThe Actuator Health API\u003c/a\u003e has been restructured to support better grouping through the \u003ccode\u003eorg.springframework.boot.health.contributor\u003c/code\u003e package. \u003ccode\u003ePubSubHealthIndicator\u003c/code\u003e and \u003ccode\u003eSpannerHealthIndicator\u003c/code\u003e are now registered as \u003ccode\u003eHealthContributor\u003c/code\u003e beans.\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eUser Action:\u003c/strong\u003e These indicators are now \u003cstrong\u003ealways\u003c/strong\u003e wrapped into a \u003ccode\u003eCompositeHealthContributor\u003c/code\u003e by the framework's auto-configuration. Users who previously injected \u003ccode\u003ePubSubHealthIndicator\u003c/code\u003e or \u003ccode\u003eHealthIndicator\u003c/code\u003e directly must now inject \u003ccode\u003eHealthContributor\u003c/code\u003e and navigate the composite hierarchy if direct access is needed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebump \u003ccode\u003eorg.springframework.boot:spring-boot-dependencies\u003c/code\u003e from \u003ccode\u003e3.5.3\u003c/code\u003e to \u003ccode\u003e4.0.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003eorg.springframework.cloud:spring-cloud-dependencies\u003c/code\u003e from \u003ccode\u003e2025.0.0\u003c/code\u003e to \u003ccode\u003e2025.1.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003ecom.google.cloud:cloud-sql-socket-factory-bom\u003c/code\u003e from \u003ccode\u003e1.25.0\u003c/code\u003e to \u003ccode\u003e1.28.0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003eio.r2dbc:r2dbc-postgresql\u003c/code\u003e from \u003ccode\u003e1.0.7.RELEASE\u003c/code\u003e to \u003ccode\u003e1.1.1.RELEASE\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003eorg.graalvm.buildtools:native-maven-plugin\u003c/code\u003e from \u003ccode\u003e0.10.5\u003c/code\u003e to \u003ccode\u003e0.11.3\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003ejakarta.annotation:jakarta.annotation-api\u003c/code\u003e from \u003ccode\u003e1.3.5\u003c/code\u003e to \u003ccode\u003e2.1.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ebump \u003ccode\u003ecom.fasterxml.jackson:jackson-bom\u003c/code\u003e from \u003ccode\u003e2.18.2\u003c/code\u003e to \u003ccode\u003e3.0.2\u003c/code\u003e (via \u003ccode\u003etools.jackson\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v7.4.4...v7.4.5\"\u003e7.4.5\u003c/a\u003e (2026-02-21)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/107eb9af6500caff1a509c044b5169fe5345cff5\"\u003e\u003ccode\u003e107eb9a\u003c/code\u003e\u003c/a\u003e chore(main): release 8.0.2 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4373\"\u003e#4373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/ea49ad19ea80c460ada05f7e8efd602ec6abeb99\"\u003e\u003ccode\u003eea49ad1\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency com.google.cloud:libraries-bom to v26.79.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4401\"\u003e#4401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/23eb6e881c6a1ac2ff2d3bddadb537c4a1bdd4cc\"\u003e\u003ccode\u003e23eb6e8\u003c/code\u003e\u003c/a\u003e fix(deps): update gapic-generator-java-bom.version to v2.68.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4400\"\u003e#4400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/80241822cd5b79ac60793cb18d624601714513d0\"\u003e\u003ccode\u003e8024182\u003c/code\u003e\u003c/a\u003e chore: remove duplicate code (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4397\"\u003e#4397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/3c1ce61d201d732a8886ca06900fd83962f36c2a\"\u003e\u003ccode\u003e3c1ce61\u003c/code\u003e\u003c/a\u003e fix: Flaky Test `ConverterAwareMappingSpannerEntityReaderTests.readUnmatachab...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/366c6fe5791aff9bf05e3e55bdaff9fcc2354067\"\u003e\u003ccode\u003e366c6fe\u003c/code\u003e\u003c/a\u003e fix: NullPointerException in spring-cloud-gcp-data-spanner (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4383\"\u003e#4383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/8a2fb16a9fa461b039687c399215948a147940c5\"\u003e\u003ccode\u003e8a2fb16\u003c/code\u003e\u003c/a\u003e util: sync fork with upstream before Initializr PR creation (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4372\"\u003e#4372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/b41442ece15328a04385ee45af8972ae23117fde\"\u003e\u003ccode\u003eb41442e\u003c/code\u003e\u003c/a\u003e util: add DCO sign-off to Spring Initializr PRs (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4371\"\u003e#4371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/a2885024b2fdb5780a1efe478e27345f97a3143e\"\u003e\u003ccode\u003ea288502\u003c/code\u003e\u003c/a\u003e chore: add support for restarting release script from specific step (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4370\"\u003e#4370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/commit/bc21fe7d6472459a8b3b20e1a2013d1d97650170\"\u003e\u003ccode\u003ebc21fe7\u003c/code\u003e\u003c/a\u003e fix: enhance check with maven central (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/spring-cloud-gcp/issues/4369\"\u003e#4369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/spring-cloud-gcp/compare/v5.1.2...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.firebase:firebase-admin` from 9.2.0 to 9.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/firebase/firebase-admin-java/releases\"\u003ecom.google.firebase:firebase-admin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eFirebase Admin Java SDK v9.8.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(rc): Support Remote Config managed value types (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1167\"\u003e#1167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: Reimplement HTTP/2 response entity consumption using ApacheHttp2AsyncEntityConsumer and ApacheHttp2Entity (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1181\"\u003e#1181\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release 9.8.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1184\"\u003e#1184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd javadocs to public methods (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1187\"\u003e#1187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump com.google.cloud:libraries-bom from 26.75.0 to 26.76.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump netty.version from 4.2.9.Final to 4.2.10.Final (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps-dev): Bump org.apache.maven.plugins:maven-compiler-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump com.google.cloud:libraries-bom from 26.74.0 to 26.75.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1179\"\u003e#1179\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFirebase Admin Java SDK v9.7.1\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(fcm): Preserve unmapped \u003ccode\u003eTopicManagementResponse\u003c/code\u003e error reasons (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[chore] Release 9.7.1 Take 2 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;[chore] Release 9.7.1 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1175\"\u003e#1175\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[chore] Release 9.7.1 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1175\"\u003e#1175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Update release workflow for push triggers (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1174\"\u003e#1174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Update copyright headers to Google LLC (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.codehaus.mojo:exec-maven-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1165\"\u003e#1165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump com.google.cloud:libraries-bom from 26.72.0 to 26.73.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1163\"\u003e#1163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.sonatype.central:central-publishing-maven-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1169\"\u003e#1169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Update Github action resources (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1172\"\u003e#1172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Update github actions workflows and integration test resources (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1168\"\u003e#1168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Bump \u003ccode\u003eio.netty\u003c/code\u003e to \u003ccode\u003e4.2.9\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.sonatype.central:central-publishing-maven-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1140\"\u003e#1140\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.apache.maven.plugins:maven-source-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.apache.maven.plugins:maven-antrun-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1154\"\u003e#1154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump io.netty:netty-codec-http (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1157\"\u003e#1157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump com.google.cloud:libraries-bom from 26.71.0 to 26.72.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore: Rename default branch to main (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.apache.maven.plugins:maven-compiler-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.jacoco:jacoco-maven-plugin from 0.8.13 to 0.8.14 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.apache.maven.plugins:maven-failsafe-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.codehaus.mojo:exec-maven-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump netty.version from 4.2.6.Final to 4.2.7.Final (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echore(deps): Bump org.apache.maven.plugins:maven-javadoc-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/5169aae2642a27ca8d423aa28365ca111d34a4d2\"\u003e\u003ccode\u003e5169aae\u003c/code\u003e\u003c/a\u003e [chore] Release 9.8.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1184\"\u003e#1184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/a568b65964a596a78e1b3d468c9e7243778d6fe7\"\u003e\u003ccode\u003ea568b65\u003c/code\u003e\u003c/a\u003e Add javadocs to public methods (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1187\"\u003e#1187\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/b29ac825c7d78b7aa17c01ee0775352cdbd6c849\"\u003e\u003ccode\u003eb29ac82\u003c/code\u003e\u003c/a\u003e chore(deps): Bump com.google.cloud:libraries-bom from 26.75.0 to 26.76.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1185\"\u003e#1185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/2d66ae93ef62e8e6c3d3a7a24dbb7684319ad747\"\u003e\u003ccode\u003e2d66ae9\u003c/code\u003e\u003c/a\u003e fix: Reimplement HTTP/2 response entity consumption using ApacheHttp2AsyncEnt...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/b095a066e97c53e38c328515312e75701dbfe3e1\"\u003e\u003ccode\u003eb095a06\u003c/code\u003e\u003c/a\u003e chore(deps): Bump netty.version from 4.2.9.Final to 4.2.10.Final (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1178\"\u003e#1178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/72d4b7da451700e80d9608ea0b2ac1d0a5bfc0b3\"\u003e\u003ccode\u003e72d4b7d\u003c/code\u003e\u003c/a\u003e chore(deps-dev): Bump org.apache.maven.plugins:maven-compiler-plugin (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1180\"\u003e#1180\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/472d0aca64d88b7c0abf4b45ebfc08022538f270\"\u003e\u003ccode\u003e472d0ac\u003c/code\u003e\u003c/a\u003e chore(deps): Bump com.google.cloud:libraries-bom from 26.74.0 to 26.75.0 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1179\"\u003e#1179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/584742fb6a080a98fb0a2ac5e332b253a0d0b263\"\u003e\u003ccode\u003e584742f\u003c/code\u003e\u003c/a\u003e feat(rc): Support Remote Config managed value types (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1167\"\u003e#1167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/0e86e0928f3c45af021ed6b47b314ac397020f86\"\u003e\u003ccode\u003e0e86e09\u003c/code\u003e\u003c/a\u003e [chore] Release 9.7.1 Take 2 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/firebase/firebase-admin-java/commit/c32438204a97eef1888487331895b2b2ad0fac43\"\u003e\u003ccode\u003ec324382\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[chore] Release 9.7.1 (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1175\"\u003e#1175\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/firebase/firebase-admin-java/issues/1176\"\u003e#1176\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/firebase/firebase-admin-java/compare/v9.2.0...v9.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.auth:google-auth-library-oauth2-http` from 1.14.0 to 1.46.0\n\nUpdates `software.amazon.awssdk:secretsmanager` from 2.25.36 to 2.44.0\n\nUpdates `software.amazon.awssdk:regions` from 2.25.36 to 2.44.0\n\nUpdates `com.azure:azure-identity` from 1.12.2 to 1.18.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-java/releases\"\u003ecom.azure:azure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ecom.azure+azure-identity_1.18.3\u003c/h2\u003e\n\u003ch2\u003e1.18.3 (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003ch4\u003eDependency Updates\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded \u003ccode\u003eazure-core\u003c/code\u003e from \u003ccode\u003e1.57.1\u003c/code\u003e to version \u003ccode\u003e1.58.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpgraded \u003ccode\u003eazure-core-http-netty\u003c/code\u003e from \u003ccode\u003e1.16.3\u003c/code\u003e to version \u003ccode\u003e1.16.4\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecom.azure+azure-core-http-okhttp_1.13.4\u003c/h2\u003e\n\u003ch2\u003e1.13.4 (2026-04-28)\u003c/h2\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003ch4\u003eDependency Updates\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded \u003ccode\u003eazure-core\u003c/code\u003e from \u003ccode\u003e1.57.1\u003c/code\u003e to \u003ccode\u003e1.58.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpgraded Reactor from \u003ccode\u003e3.7.14\u003c/code\u003e to \u003ccode\u003e3.7.17\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ecom.azure+azure-core-http-netty_1.16.4\u003c/h2\u003e\n\u003ch2\u003e1.16.4 (2026-04-28)\u003c/h2\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003ch4\u003eDependency Updates\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpgraded \u003ccode\u003eazure-core\u003c/code\u003e from \u003ccode\u003e1.57.1\u003c/code\u003e to \u003ccode\u003e1.58.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpgraded Reactor from \u003ccode\u003e3.7.14\u003c/code\u003e to \u003ccode\u003e3.7.17\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpgraded Reactor Netty from \u003ccode\u003e1.2.13\u003c/code\u003e to \u003ccode\u003e1.2.16\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUpgraded Netty dependencies from \u003ccode\u003e4.1.130.Final\u003c/code\u003e to \u003ccode\u003e4.1.132.Final\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/94bdae4562612bf3fa4b89214b665e85a3543eed\"\u003e\u003ccode\u003e94bdae4\u003c/code\u003e\u003c/a\u003e Fixing broken links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/bdb5558a91faeac9725009597757ee5749142bcd\"\u003e\u003ccode\u003ebdb5558\u003c/code\u003e\u003c/a\u003e Updating the SDK dependencies for azure-identity-broker\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/2417a333a08587673071b5c5f98c591f6386a869\"\u003e\u003ccode\u003e2417a33\u003c/code\u003e\u003c/a\u003e Reset changes to the patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/c094303efdd089528673e2dbce200e761d194864\"\u003e\u003ccode\u003ec094303\u003c/code\u003e\u003c/a\u003e Updating the SDK dependencies for azure-identity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/36c6eba92c3358f2297ac5bab54a6696db8a9307\"\u003e\u003ccode\u003e36c6eba\u003c/code\u003e\u003c/a\u003e Reset changes to the patch version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/dbb57c4913ff55734c6f22af5caf6f9ca92ddbfb\"\u003e\u003ccode\u003edbb57c4\u003c/code\u003e\u003c/a\u003e Add missing \u003ccode\u003e@​Azure/azure-java-sdk\u003c/code\u003e owners (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48993\"\u003e#48993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/555b864c7dce8125025b2bcf9e942dd13be6f18f\"\u003e\u003ccode\u003e555b864\u003c/code\u003e\u003c/a\u003e Increment package versions for core releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48983\"\u003e#48983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/da7b1072d0c72f2719a4c050971916e3e5c46a70\"\u003e\u003ccode\u003eda7b107\u003c/code\u003e\u003c/a\u003e Increment package versions for storagecache releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48992\"\u003e#48992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/5ed8574821d1f2ea522d8e12e2ed9a9f1f01ec08\"\u003e\u003ccode\u003e5ed8574\u003c/code\u003e\u003c/a\u003e [AutoPR azure-resourcemanager-storagecache]-generated-from-SDK Generation - J...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/7c9c1fb4b625f0a25b7894e5250fd02bbfbe1700\"\u003e\u003ccode\u003e7c9c1fb\u003c/code\u003e\u003c/a\u003e Configurations:  'specification/appconfiguration/resource-manager/Microsoft.A...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-java/compare/azure-identity_1.12.2...com.azure+azure-identity_1.18.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.azure:azure-security-keyvault-secrets` from 4.8.2 to 4.10.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/1b5c5c79d85a5c9a9cfd07f6cdff6fd0f50eccf9\"\u003e\u003ccode\u003e1b5c5c7\u003c/code\u003e\u003c/a\u003e [Key Vault] Prepare new stable release for all 4 libraries (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48476\"\u003e#48476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/920a6368dfce94d69c08b5551b342149fc2e97b5\"\u003e\u003ccode\u003e920a636\u003c/code\u003e\u003c/a\u003e Promote Full Text Search BETA APIs to GA in azure-cosmos (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48538\"\u003e#48538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/4e4285eb54c97b8c9babddf81f201a74e19fa8c7\"\u003e\u003ccode\u003e4e4285e\u003c/code\u003e\u003c/a\u003e [Query] Fix: \u003ccode\u003eSELECT VALUE ... GROUP BY\u003c/code\u003e throws ClassCastException (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48507\"\u003e#48507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/d61c05ec019d941bb64f76128ab127a1685d1474\"\u003e\u003ccode\u003ed61c05e\u003c/code\u003e\u003c/a\u003e Increment package versions for datafactory releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48556\"\u003e#48556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/7b8eedeaf641776660dc67aba7aaddf67481df0f\"\u003e\u003ccode\u003e7b8eede\u003c/code\u003e\u003c/a\u003e External dependencies upgrade - Spring Boot 4.0.4 and Spring Cloud 2025.1.0 (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/85bf709e04e3823c91257ea88221fc4471946f40\"\u003e\u003ccode\u003e85bf709\u003c/code\u003e\u003c/a\u003e [AutoPR azure-resourcemanager-datafactory]-generated-from-SDK Generation - Ja...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/8912ce571f8d76494a14ca97e0a558fb6c3d6a2d\"\u003e\u003ccode\u003e8912ce5\u003c/code\u003e\u003c/a\u003e Increment package versions for containerregistry releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48533\"\u003e#48533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/3311abfc6b094680f09c19d2d3726499429429d8\"\u003e\u003ccode\u003e3311abf\u003c/code\u003e\u003c/a\u003e Increment package versions for nginx releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48528\"\u003e#48528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/e073934222ac304c24d70ef6eced6dbf004742e3\"\u003e\u003ccode\u003ee073934\u003c/code\u003e\u003c/a\u003e Increment package versions for netapp releases (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-java/issues/48509\"\u003e#48509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-java/commit/48880837ed3a2c1887b1d4a859f47ae6a5c9b1a3\"\u003e\u003ccode\u003e4888083\u003c/code\u003e\u003c/a\u003e [VoiceLive] Fix issues: remove unnecessary subscribeOn, fix Disposable leaks,...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-java/compare/azure-security-keyvault-keys_4.8.2...com.azure+azure-security-keyvault-keys_4.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.squareup.okhttp3:okhttp` from 4.12.0 to 5.3.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/square/okhttp/blob/master/CHANGELOG.md\"\u003ecom.squareup.okhttp3:okhttp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 5.3.2\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-18\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Don't delay triggering timeouts. In Okio 3.16.0 we introduced a regression that caused\ntimeouts to fire later than they were supposed to.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Okio 3.16.4][okio_3_16_4].\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.3.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-16\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release is the same as 5.3.0. Okio 3.16.3 didn't have a necessary fix!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade: [Okio 3.16.3][okio_3_16_3].\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.3.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-10-30\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew: Add tags to \u003ccode\u003eCall\u003c/code\u003e, including computable tags. Use this to attach application-specific\nmetadata to a \u003ccode\u003eCall\u003c/code\u003e in an \u003ccode\u003eEventListener\u003c/code\u003e or \u003ccode\u003eInterceptor\u003c/code\u003e. The tag can be read in any other\n\u003ccode\u003eEventListener\u003c/code\u003e or \u003ccode\u003eInterceptor\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e  override fun intercept(chain: Interceptor.Chain): Response {\n    chain.call().tag(MyAnalyticsTag::class) {\n      MyAnalyticsTag(...)\n    }\n\u003cpre\u003e\u003ccode\u003ereturn chain.proceed(chain.request())\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e}\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew: Support request bodies on HTTP/1.1 connection upgrades.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew: \u003ccode\u003eEventListener.plus()\u003c/code\u003e makes it easier to observe events in multiple listeners.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Don't spam logs with \u003cem\u003e‘Method isLoggable in android.util.Log not mocked.’\u003c/em\u003e when using\nOkHttp in Robolectric and Paparazzi tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Kotlin 2.2.21][kotlin_2_2_21].\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Okio 3.16.2][okio_3_16_2].\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [ZSTD-KMP 0.4.0][zstd_kmp_0_4_0]. This update fixes a bug that caused APKs to fail\n[16 KB ELF alignment checks][elf_alignment].\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.2.3\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-18\u003c/em\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/75b9c267744cdd2e8b222d247052748ff0954304\"\u003e\u003ccode\u003e75b9c26\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/ab48e5d86d0c0b16b3679b9b9522acf65db73da4\"\u003e\u003ccode\u003eab48e5d\u003c/code\u003e\u003c/a\u003e Okio 3.16.4 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9200\"\u003e#9200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/a9a4638b3d38b83782a959514b4183ddea0f071f\"\u003e\u003ccode\u003ea9a4638\u003c/code\u003e\u003c/a\u003e Prepare next development version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/ef72228d270c21962ab632b4c5a0dfd7ab4fd661\"\u003e\u003ccode\u003eef72228\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/674716746bb4efce30501b711ea3ec188c0d670d\"\u003e\u003ccode\u003e6747167\u003c/code\u003e\u003c/a\u003e Update com.squareup.okio to v3.16.3 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9197\"\u003e#9197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/0960b47ec28a02e893499d2a7e53bf462a62875e\"\u003e\u003ccode\u003e0960b47\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/bfb24eb90b3be7fb73541ea02ce8d5dfc4021709\"\u003e\u003ccode\u003ebfb24eb\u003c/code\u003e\u003c/a\u003e Support Request Bodies on HTTP1.1 Connection Upgrades (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9159\"\u003e#9159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/cf4a86439568e640c39da5e4e73af6565a5510b1\"\u003e\u003ccode\u003ecf4a864\u003c/code\u003e\u003c/a\u003e Update Gradle to v9.2.0 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9171\"\u003e#9171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/4e7dbec1ea6c9cf8d80422ac9d44b9b185c749a3\"\u003e\u003ccode\u003e4e7dbec\u003c/code\u003e\u003c/a\u003e Update dependency com.puppycrawl.tools:checkstyle to v12.1.1 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9169\"\u003e#9169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/0470853d724ec9e3c68a6ef83a4d1a60a73ef289\"\u003e\u003ccode\u003e0470853\u003c/code\u003e\u003c/a\u003e Add tags to calls, including computable tags (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9168\"\u003e#9168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.squareup.okhttp3:logging-interceptor` from 4.12.0 to 5.3.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/square/okhttp/blob/master/CHANGELOG.md\"\u003ecom.squareup.okhttp3:logging-interceptor's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 5.3.2\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-18\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Don't delay triggering timeouts. In Okio 3.16.0 we introduced a regression that caused\ntimeouts to fire later than they were supposed to.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Okio 3.16.4][okio_3_16_4].\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.3.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-16\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThis release is the same as 5.3.0. Okio 3.16.3 didn't have a necessary fix!\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade: [Okio 3.16.3][okio_3_16_3].\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.3.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-10-30\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew: Add tags to \u003ccode\u003eCall\u003c/code\u003e, including computable tags. Use this to attach application-specific\nmetadata to a \u003ccode\u003eCall\u003c/code\u003e in an \u003ccode\u003eEventListener\u003c/code\u003e or \u003ccode\u003eInterceptor\u003c/code\u003e. The tag can be read in any other\n\u003ccode\u003eEventListener\u003c/code\u003e or \u003ccode\u003eInterceptor\u003c/code\u003e.\u003c/p\u003e\n\u003cpre lang=\"kotlin\"\u003e\u003ccode\u003e  override fun intercept(chain: Interceptor.Chain): Response {\n    chain.call().tag(MyAnalyticsTag::class) {\n      MyAnalyticsTag(...)\n    }\n\u003cpre\u003e\u003ccode\u003ereturn chain.proceed(chain.request())\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e}\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew: Support request bodies on HTTP/1.1 connection upgrades.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eNew: \u003ccode\u003eEventListener.plus()\u003c/code\u003e makes it easier to observe events in multiple listeners.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: Don't spam logs with \u003cem\u003e‘Method isLoggable in android.util.Log not mocked.’\u003c/em\u003e when using\nOkHttp in Robolectric and Paparazzi tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Kotlin 2.2.21][kotlin_2_2_21].\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [Okio 3.16.2][okio_3_16_2].\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpgrade: [ZSTD-KMP 0.4.0][zstd_kmp_0_4_0]. This update fixes a bug that caused APKs to fail\n[16 KB ELF alignment checks][elf_alignment].\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.2.3\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-11-18\u003c/em\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/75b9c267744cdd2e8b222d247052748ff0954304\"\u003e\u003ccode\u003e75b9c26\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/ab48e5d86d0c0b16b3679b9b9522acf65db73da4\"\u003e\u003ccode\u003eab48e5d\u003c/code\u003e\u003c/a\u003e Okio 3.16.4 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9200\"\u003e#9200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/a9a4638b3d38b83782a959514b4183ddea0f071f\"\u003e\u003ccode\u003ea9a4638\u003c/code\u003e\u003c/a\u003e Prepare next development version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/ef72228d270c21962ab632b4c5a0dfd7ab4fd661\"\u003e\u003ccode\u003eef72228\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/674716746bb4efce30501b711ea3ec188c0d670d\"\u003e\u003ccode\u003e6747167\u003c/code\u003e\u003c/a\u003e Update com.squareup.okio to v3.16.3 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9197\"\u003e#9197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/0960b47ec28a02e893499d2a7e53bf462a62875e\"\u003e\u003ccode\u003e0960b47\u003c/code\u003e\u003c/a\u003e Prepare for release 5.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/bfb24eb90b3be7fb73541ea02ce8d5dfc4021709\"\u003e\u003ccode\u003ebfb24eb\u003c/code\u003e\u003c/a\u003e Support Request Bodies on HTTP1.1 Connection Upgrades (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9159\"\u003e#9159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/cf4a86439568e640c39da5e4e73af6565a5510b1\"\u003e\u003ccode\u003ecf4a864\u003c/code\u003e\u003c/a\u003e Update Gradle to v9.2.0 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9171\"\u003e#9171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/4e7dbec1ea6c9cf8d80422ac9d44b9b185c749a3\"\u003e\u003ccode\u003e4e7dbec\u003c/code\u003e\u003c/a\u003e Update dependency com.puppycrawl.tools:checkstyle to v12.1.1 (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9169\"\u003e#9169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/square/okhttp/commit/0470853d724ec9e3c68a6ef83a4d1a60a73ef289\"\u003e\u003ccode\u003e0470853\u003c/code\u003e\u003c/a\u003e Add tags to calls, including computable tags (\u003ca href=\"https://redirect.github.com/square/okhttp/issues/9168\"\u003e#9168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/square/okhttp/compare/parent-4.12.0...parent-5.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-core` from 2.17.0 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/5815636064ca5f5f2f5af0a91c7ad96368c239e7\"\u003e\u003ccode\u003e5815636\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.21.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/6e728f9bde605f98e34d67d5db0a1b530b0a9bfd\"\u003e\u003ccode\u003e6e728f9\u003c/code\u003e\u003c/a\u003e Prep for 2.21.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/4e30cf21ca4faeffa062ae13730fade890ce2540\"\u003e\u003ccode\u003e4e30cf2\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/1429fffeca1eee24d7c3d7a0887c5ac10cac7a58\"\u003e\u003ccode\u003e1429fff\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/8f622c5cf177509989eaa154e4cb86d64b28f5a6\"\u003e\u003ccode\u003e8f622c5\u003c/code\u003e\u003c/a\u003e Merge branch '2.18' into 2.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/cd4d6b2baf575fd84419368717ddf12eb21fc8d7\"\u003e\u003ccode\u003ecd4d6b2\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/03458823cc3cf78f1ea19cfe5f045475628ee834\"\u003e\u003ccode\u003e0345882\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/a7a5562c0215da3e1297e4825fc5fc4d4f237c68\"\u003e\u003ccode\u003ea7a5562\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-core-2.18.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/cd647ea2cf15ee7740f1e3eb447335f667dd3a7a\"\u003e\u003ccode\u003ecd647ea\u003c/code\u003e\u003c/a\u003e Prep for 2.18.7 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-core/commit/0ac2f771ad5fdceb60f908352c4dee2ffa498146\"\u003e\u003ccode\u003e0ac2f77\u003c/code\u003e\u003c/a\u003e Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-core/compare/jackson-core-2.17.0...jackson-core-2.21.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.core:jackson-annotations` from 2.17.0 to 2.21.3\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.17.0 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.17.0 to 2.21.3\n\nUpdates `com.fasterxml.jackson.module:jackson-module-afterburner` from 2.17.0 to 2.21.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/3290598ecbbd8bbb0b34a35a7361ff54e1050463\"\u003e\u003ccode\u003e3290598\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-modules-base-2.21.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/ff548e5773b62aef719c2104ecfccbe70dadcedc\"\u003e\u003ccode\u003eff548e5\u003c/code\u003e\u003c/a\u003e undo version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/1c5c59c5a3fc09a17d1027879ebca459842cda8e\"\u003e\u003ccode\u003e1c5c59c\u003c/code\u003e\u003c/a\u003e re-do release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/64b246c236e6d424eb4469131bbd76c3056dc2a3\"\u003e\u003ccode\u003e64b246c\u003c/code\u003e\u003c/a\u003e Prep for 2.21.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/38be1635960bed69c4f52bfbbdd3297447bd7506\"\u003e\u003ccode\u003e38be163\u003c/code\u003e\u003c/a\u003e Merge branch '2.20' into 2.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/b3506d8b74b64a5f7e3f5884df8e5246f1c03bf0\"\u003e\u003ccode\u003eb3506d8\u003c/code\u003e\u003c/a\u003e Merge branch '2.19' into 2.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/2f51aa35660e9af07415c54b6bc8185622d91288\"\u003e\u003ccode\u003e2f51aa3\u003c/code\u003e\u003c/a\u003e Merge branch '2.18' into 2.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/88adb497be38f7b4de3cbcd49ec8d641933214ce\"\u003e\u003ccode\u003e88adb49\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/5a89cc181bf92f40730a6d297dbb32e2cfd29300\"\u003e\u003ccode\u003e5a89cc1\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-modules-base/commit/6cad130d2e9f61aff310212ab6fb5b03a09f720a\"\u003e\u003ccode\u003e6cad130\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-modules-base-2.18.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/FasterXML/jackson-modules-base/compare/jackson-modules-base-2.17.0...jackson-modules-base-2.21.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.17.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.1\u003c/strong\u003e is out now, adding support for the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors, a configurable maximum parser depth, and numerous bug fixes and improvements.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jsoup.org/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\r\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\r\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\r\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\r\n  \u0026lt;/dependency\u0026gt;\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eRegex.usingRe2j()\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.22.1 (2026-Jan-01)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using the \u003ccode\u003ere2j\u003c/code\u003e regular expression engine for regex-based CSS selectors (e.g. \u003ccode\u003e[attr~=regex]\u003c/code\u003e, \u003ccode\u003e:matches(regex)\u003c/code\u003e), which ensures linear-time performance for regex evaluation. This allows safer handling of arbitrary user-supplied query regexes. To enable, add the \u003ccode\u003ecom.google.re2j\u003c/code\u003e dependency to your classpath, e.g.:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"xml\"\u003e\u003ccode\u003e  \u0026lt;dependency\u0026gt;\n    \u0026lt;groupId\u0026gt;com.google.re2j\u0026lt;/groupId\u0026gt;\n    \u0026lt;artifactId\u0026gt;re2j\u0026lt;/artifactId\u0026gt;\n    \u0026lt;version\u0026gt;1.8\u0026lt;/version\u0026gt;\n  \u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e(If you already have that dependency in your classpath, but you want to keep using the Java regex engine, you can disable re2j via \u003ccode\u003eSystem.setProperty(\u0026quot;jsoup.useRe2j\u0026quot;, \u0026quot;false\u0026quot;)\u003c/code\u003e.) You can confirm that the re2j engine has been enabled correctly by calling \u003ccode\u003eorg.jsoup.helper.Regex.usingRe2j()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2407\"\u003e#2407\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded an instance method \u003ccode\u003eParser#unescape(String, boolean)\u003c/code\u003e that unescapes HTML entities using the parser's configuration (e.g. to support error tracking), complementing the existing static utility \u003ccode\u003eParser.unescapeEntities(String, boolean)\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2396\"\u003e#2396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded a configurable maximum parser depth (to limit the number of open elements on stack) to both HTML and XML parsers. The HTML parser now defaults to a depth of 512 to match browser behavior, and protect against unbounded stack growth, while the XML parser keeps unlimited depth by default, but can opt into a limit via \u003ccode\u003eorg.jsoup.parser.Parser#setMaxDepth\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2421\"\u003e#2421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added CI coverage for JDK 25 \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2403\"\u003e#2403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild: added a CI fuzzer for contextual fragment parsing (in addition to existing full body HTML and XML fuzzers). [oss-fuzz \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/14041\"\u003e#14041\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/google/oss-fuzz/pull/14041\"\u003egoogle/oss-fuzz#14041\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSet a removal schedule of jsoup 1.24.1 for previously deprecated APIs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreviously cached child \u003ccode\u003eElements\u003c/code\u003e of an \u003ccode\u003eElement\u003c/code\u003e were not correctly invalidated in \u003ccode\u003eNode#replaceWith(Node)\u003c/code\u003e, which could lead to incorrect results when subsequently calling \u003ccode\u003eElement#children()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2391\"\u003e#2391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAttribute selector values are now compared literally without trimming. Previously, jsoup trimmed whitespace from selector values and from element attribute values, which could cause mismatches with browser behavior (e.g. \u003ccode\u003e[attr=\u0026quot; foo \u0026quot;]\u003c/code\u003e). Now matches align with the CSS specification and browser engines. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2380\"\u003e#2380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhen using the JDK HttpClient, any system default proxy (\u003ccode\u003eProxySelector.getDefault()\u003c/code\u003e) was ignored. Now, the system proxy is used if a per-request proxy is not set. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2388\"\u003e#2388\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2390\"\u003e#2390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eValidationException\u003c/code\u003e could be thrown in the adoption agency algorith...\n\n_Description has been truncated_","html_url":"https://github.com/paykaribazaronline/supremeai/pull/53","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/paykaribazaronline%2Fsupremeai/issues/53","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/53/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-01T07:39:29.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4363406161","node_id":"PR_kwDOGzRM1c7XXpK0","number":40,"state":"open","title":"Bump org.jsoup:jsoup from 1.22.1 to 1.22.2","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T07:39:29.000Z","updated_at":"2026-05-01T07:42:51.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"}],"path":null,"ecosystem":"maven"},"body":"Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.22.1 to 1.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jsoup:jsoup\u0026package-manager=gradle\u0026previous-version=1.22.1\u0026new-version=1.22.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/bakdata/kserve-client/pull/40","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bakdata%2Fkserve-client/issues/40","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/40/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-01T06:50:05.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4363243087","node_id":"PR_kwDOODrK4s7XXIOd","number":186,"state":"open","title":"Bump org.jsoup:jsoup from 1.22.1 to 1.22.2","user":"dependabot[bot]","labels":["dependencies","java"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T06:50:05.000Z","updated_at":"2026-05-01T06:55:55.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"}],"path":null,"ecosystem":"maven"},"body":"Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.22.1 to 1.22.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jsoup:jsoup\u0026package-manager=gradle\u0026previous-version=1.22.1\u0026new-version=1.22.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ortus-boxlang/bx-ai/pull/186","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ortus-boxlang%2Fbx-ai/issues/186","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/186/packages"}},{"old_version":"1.22.1","new_version":"1.22.2","update_type":"patch","path":null,"pr_created_at":"2026-05-01T03:22:20.000Z","version_change":"1.22.1 → 1.22.2","issue":{"uuid":"4362615619","node_id":"PR_kwDOR0sr5c7XVHRl","number":16,"state":"closed","title":"chore(deps): bump the gradle-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-08T03:11:37.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-01T03:22:20.000Z","updated_at":"2026-05-08T03:11:38.000Z","time_to_close":604157,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"gradle-dependencies","update_count":11,"packages":[{"name":"org.mariadb.jdbc:mariadb-java-client","old_version":"3.5.7","new_version":"3.5.8","repository_url":"https://github.com/mariadb-corporation/mariadb-connector-j"},{"name":"org.flywaydb:flyway-mysql","old_version":"12.2.0","new_version":"12.5.0"},{"name":"org.projectlombok:lombok","old_version":"1.18.44","new_version":"1.18.46","repository_url":"https://github.com/projectlombok/lombok"},{"name":"com.github.junrar:junrar","old_version":"7.5.8","new_version":"7.5.10","repository_url":"https://github.com/junrar/junrar"},{"name":"org.jsoup:jsoup","old_version":"1.22.1","new_version":"1.22.2","repository_url":"https://github.com/jhy/jsoup"},{"name":"org.springdoc:springdoc-openapi-starter-webmvc-ui","old_version":"3.0.2","new_version":"3.0.3","repository_url":"https://github.com/springdoc/springdoc-openapi"},{"name":"tools.jackson:jackson-bom","old_version":"3.1.1","new_version":"3.1.2","repository_url":"https://github.com/FasterXML/jackson-bom"},{"name":"org.springframework.boot","old_version":"4.0.5","new_version":"4.0.6","repository_url":"https://github.com/spring-projects/spring-boot"},{"name":"org.hibernate.orm","old_version":"7.3.0.Final","new_version":"7.3.2.Final"},{"name":"com.github.ben-manes.versions","old_version":"0.53.0","new_version":"0.54.0"},{"name":"gradle-wrapper","old_version":"9.4.1","new_version":"9.5.0","repository_url":"https://github.com/gradle/gradle"}],"path":null,"ecosystem":"maven"},"body":"Bumps the gradle-dependencies group with 11 updates in the /booklore-api directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) | `3.5.7` | `3.5.8` |\n| org.flywaydb:flyway-mysql | `12.2.0` | `12.5.0` |\n| [org.projectlombok:lombok](https://github.com/projectlombok/lombok) | `1.18.44` | `1.18.46` |\n| [com.github.junrar:junrar](https://github.com/junrar/junrar) | `7.5.8` | `7.5.10` |\n| [org.jsoup:jsoup](https://github.com/jhy/jsoup) | `1.22.1` | `1.22.2` |\n| [org.springdoc:springdoc-openapi-starter-webmvc-ui](https://github.com/springdoc/springdoc-openapi) | `3.0.2` | `3.0.3` |\n| [tools.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) | `3.1.1` | `3.1.2` |\n| [org.springframework.boot](https://github.com/spring-projects/spring-boot) | `4.0.5` | `4.0.6` |\n| org.hibernate.orm | `7.3.0.Final` | `7.3.2.Final` |\n| com.github.ben-manes.versions | `0.53.0` | `0.54.0` |\n| [gradle-wrapper](https://github.com/gradle/gradle) | `9.4.1` | `9.5.0` |\n\n\nUpdates `org.mariadb.jdbc:mariadb-java-client` from 3.5.7 to 3.5.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/releases\"\u003eorg.mariadb.jdbc:mariadb-java-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eMariaDB Connector/Java 3.5.8\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/blob/main/CHANGELOG.md\"\u003eorg.mariadb.jdbc:mariadb-java-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.8\"\u003e3.5.8\u003c/a\u003e (Apr 2026)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eIssues Resolved\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1305 - XAResource.isSameRM() incorrectly returns true when rewriteBatchedStatements differs between connections\u003c/li\u003e\n\u003cli\u003eCONJ-1303 - Statement.cancel() fails to kill running query during result streaming\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCONJ-1298 - Performance improvement: avoid decoding extended format\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/26b34a2f060070beb73515cfd2a49fabc8728843\"\u003e\u003ccode\u003e26b34a2\u003c/code\u003e\u003c/a\u003e Merge branch 'develop'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/06d6efee7838ab8f89ef0f7f362c6b4a95754630\"\u003e\u003ccode\u003e06d6efe\u003c/code\u003e\u003c/a\u003e bump CI actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a86a83c8fd1fa84d8d4349baab3b29df8f575192\"\u003e\u003ccode\u003ea86a83c\u003c/code\u003e\u003c/a\u003e bump 3.5.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/975f9919232b21f40d823423eac6e32d87ea8e35\"\u003e\u003ccode\u003e975f991\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to implement Codec directly and extract shared...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/75bb509521661603e0e90dd6dd5942d1382bf499\"\u003e\u003ccode\u003e75bb509\u003c/code\u003e\u003c/a\u003e [misc] code formatting cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/4c0b6a0ddd95f42fa866ce0d08e384caa2553d43\"\u003e\u003ccode\u003e4c0b6a0\u003c/code\u003e\u003c/a\u003e [misc] refactor TimestampCodec to extend UtilDateCodec and extract common dat...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/a5b7fb1a26277a076052dbbd1a7ee2bacd4f602f\"\u003e\u003ccode\u003ea5b7fb1\u003c/code\u003e\u003c/a\u003e [misc] convert Reader and Writer from interfaces to final class implementatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/d31eb060fc66e9e37479e18a38bb1401d53ecb63\"\u003e\u003ccode\u003ed31eb06\u003c/code\u003e\u003c/a\u003e [misc] convert ReadableByteBuf from interface to final class implementation, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/11d45a9e6ea4d942e75747132bb8982471d890b8\"\u003e\u003ccode\u003e11d45a9\u003c/code\u003e\u003c/a\u003e [misc] optimize binary row decoder null bitmap checks and simplify signed Big...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/commit/5aad14c381cbc2c4e0383ffed275306f359bd508\"\u003e\u003ccode\u003e5aad14c\u003c/code\u003e\u003c/a\u003e [misc] optimize BigInt column decoding and improve type safety in codec inter...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.5.7...3.5.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.flywaydb:flyway-mysql` from 12.2.0 to 12.5.0\n\nUpdates `org.projectlombok:lombok` from 1.18.44 to 1.18.46\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown\"\u003eorg.projectlombok:lombok's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev1.18.46 (April 22nd, 2026)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePLATFORM: JDK26 support added \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4019\"\u003e#4019\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePLATFORM: Spring Tools Suite 5 supported \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3985\"\u003e#3985\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: \u003ccode\u003e@Jacksonized\u003c/code\u003e no longer stops generating \u003ccode\u003e@JsonProperty\u003c/code\u003e once an explicit \u003ccode\u003e@JsonIgnore\u003c/code\u003e annotations is encountered \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4022\"\u003e#4022\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: In eclipse, mixing \u003ccode\u003e@Jacksonized\u003c/code\u003e and \u003ccode\u003efluent = true\u003c/code\u003e no longer causes the error \u003ccode\u003ecom.fasterxml.jackson.annotation.JsonProperty is not a repeatable annotation interface\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/3934\"\u003e#3934\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eBUGFIX: Some finishing touches for v1.18.44's support of Jackson3 \u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/936ca59baf844fd6c0ad641974295498785d8091\"\u003e\u003ccode\u003e936ca59\u003c/code\u003e\u003c/a\u003e [build] lombok's launcher is still intended to be 1.4 compatible, or at least...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/fcdab3f29e1b48c8f4b33ef9231ec2587a43d122\"\u003e\u003ccode\u003efcdab3f\u003c/code\u003e\u003c/a\u003e [version] pre-release version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/1cb7d49c5d2dc98af7a66413d8119dec285d0666\"\u003e\u003ccode\u003e1cb7d49\u003c/code\u003e\u003c/a\u003e [changelog]\u003ca href=\"https://redirect.github.com/projectlombok/lombok/issues/4004\"\u003e#4004\u003c/a\u003e Mention Jackson3 final touches in changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/12a15b00555ec8097eca2bf7d77c2c2124e13e0e\"\u003e\u003ccode\u003e12a15b0\u003c/code\u003e\u003c/a\u003e Fix: Bump EA_JDK to 27 (25 and 26 have been released)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/2be766cfc2ef56f2d986f28f734c98535d611aee\"\u003e\u003ccode\u003e2be766c\u003c/code\u003e\u003c/a\u003e Merge branch 'jackson3-final-touches'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/290fa4c8539c7e97b47f7e80033e078127050eb5\"\u003e\u003ccode\u003e290fa4c\u003c/code\u003e\u003c/a\u003e [trivial] constantize the warning we spit out for ambiguous jackson2/3, and m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e6567b6621f86b43033ab4a75e0273780e18e998\"\u003e\u003ccode\u003ee6567b6\u003c/code\u003e\u003c/a\u003e test: Add Jackson 3 test cases and version ambiguity warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/45e72e241abe98dcfb66408402da825dd2b8e925\"\u003e\u003ccode\u003e45e72e2\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 databind/dataformat annotations to HandlerUtil copy lists\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/184d42363d86446a63b6270ac1eb352dc43ae76c\"\u003e\u003ccode\u003e184d423\u003c/code\u003e\u003c/a\u003e feat: Add Jackson 3 support to \u003ca href=\"https://github.com/Jacksonized\"\u003e\u003ccode\u003e@​Jacksonized\u003c/code\u003e\u003c/a\u003e handlers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/projectlombok/lombok/commit/e027ad0f1515bd33d4d329d90e59dccbaf44651e\"\u003e\u003ccode\u003ee027ad0\u003c/code\u003e\u003c/a\u003e refactored to ShadowClassLoader use Collections::enumeration instead of Vector\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/projectlombok/lombok/compare/v1.18.44...v1.18.46\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.junrar:junrar` from 7.5.8 to 7.5.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/releases\"\u003ecom.github.junrar:junrar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.5.10\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier Roebroeck\u003c/p\u003e\n\u003ch2\u003eRelease v7.5.9\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.3.1 to 9.4.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/5ff5c7e\"\u003e5ff5c7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.21.0 to 5.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d9e9e49\"\u003ed9e9e49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump ch.qos.logback:logback-classic from 1.5.26 to 1.5.32 (\u003ca href=\"https://github.com/junrar/junrar/commits/935ece8\"\u003e935ece8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.22.0 to 1.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/000fcdb\"\u003e000fcdb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://github.com/junrar/junrar/commits/2c83103\"\u003e2c83103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank the following people for their contributions:\nGauthier, Ryan Campbell\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/junrar/junrar/blob/master/CHANGELOG.md\"\u003ecom.github.junrar:junrar's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.9...v7.5.10\"\u003e7.5.10\u003c/a\u003e (2026-04-15)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebetter handling of files outside directory when extracting (\u003ca href=\"https://github.com/junrar/junrar/commits/d77e9a8\"\u003ed77e9a8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Tests\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edisable test on windows due to path (\u003ca href=\"https://github.com/junrar/junrar/commits/154e3bf\"\u003e154e3bf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epublish test results (\u003ca href=\"https://github.com/junrar/junrar/commits/e36ee09\"\u003ee36ee09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate homebrew action (\u003ca href=\"https://github.com/junrar/junrar/commits/a60857b\"\u003ea60857b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.9\"\u003e7.5.9\u003c/a\u003e (2026-04-13)\u003c/h1\u003e\n\u003ch2\u003e🐛 Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eArrayIndexOutOfBoundsException in solid RAR v20 archive extraction (\u003ca href=\"https://github.com/junrar/junrar/commits/9b69c6b\"\u003e9b69c6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eseek past SubHeader packed data after parsing to prevent corrupt reads (\u003ca href=\"https://github.com/junrar/junrar/commits/ad7ad33\"\u003ead7ad33\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🛠  Build\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003edeps\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ebump com.fasterxml.jackson.datatype:jackson-datatype-jsr310 (\u003ca href=\"https://github.com/junrar/junrar/commits/7e1b558\"\u003e7e1b558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.22.0 to 5.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/f800f10\"\u003ef800f10\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump com.fasterxml.jackson.core:jackson-databind (\u003ca href=\"https://github.com/junrar/junrar/commits/1886aec\"\u003e1886aec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.4.0 to 9.4.1 (\u003ca href=\"https://github.com/junrar/junrar/commits/832f685\"\u003e832f685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle/actions from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/b2f434d\"\u003eb2f434d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump codecov/codecov-action from 5 to 6 (\u003ca href=\"https://github.com/junrar/junrar/commits/aaaede2\"\u003eaaaede2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump EndBug/add-and-commit from 9 to 10 (\u003ca href=\"https://github.com/junrar/junrar/commits/884dde4\"\u003e884dde4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump gradle-wrapper from 9.3.1 to 9.4.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/5ff5c7e\"\u003e5ff5c7e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.mockito:mockito-core from 5.21.0 to 5.22.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/d9e9e49\"\u003ed9e9e49\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump ch.qos.logback:logback-classic from 1.5.26 to 1.5.32 (\u003ca href=\"https://github.com/junrar/junrar/commits/935ece8\"\u003e935ece8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump org.jreleaser from 1.22.0 to 1.23.0 (\u003ca href=\"https://github.com/junrar/junrar/commits/000fcdb\"\u003e000fcdb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://github.com/junrar/junrar/commits/2c83103\"\u003e2c83103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/e36ee091ad7311a021e1c928ada103a3eab2d890\"\u003e\u003ccode\u003ee36ee09\u003c/code\u003e\u003c/a\u003e ci: publish test results\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/154e3bf7b05bb6dcad5437a8fd8e99a8da916373\"\u003e\u003ccode\u003e154e3bf\u003c/code\u003e\u003c/a\u003e test: disable test on windows due to path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/d77e9a83eb721cd51f9c23d7869d0e6ad7f952d7\"\u003e\u003ccode\u003ed77e9a8\u003c/code\u003e\u003c/a\u003e fix: better handling of files outside directory when extracting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/a60857b35c17dbd5354a37816421d7b051a8ba03\"\u003e\u003ccode\u003ea60857b\u003c/code\u003e\u003c/a\u003e ci: update homebrew action\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/72cd364f47bd396e208cd82ca7aa98759ab84f01\"\u003e\u003ccode\u003e72cd364\u003c/code\u003e\u003c/a\u003e chore(release): 7.5.9 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/7e1b5581f9d622b96e9e2a8574188027e7642634\"\u003e\u003ccode\u003e7e1b558\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.datatype:jackson-datatype-jsr310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/f800f10fa46f803f1220f508a40f59af29eb5118\"\u003e\u003ccode\u003ef800f10\u003c/code\u003e\u003c/a\u003e build(deps): bump org.mockito:mockito-core from 5.22.0 to 5.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/1886aecf253467ff8f98fc1187237605cf59fbb0\"\u003e\u003ccode\u003e1886aec\u003c/code\u003e\u003c/a\u003e build(deps): bump com.fasterxml.jackson.core:jackson-databind\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/832f6857128bcd678d76bf263f8ee1533a1e8a86\"\u003e\u003ccode\u003e832f685\u003c/code\u003e\u003c/a\u003e build(deps): bump gradle-wrapper from 9.4.0 to 9.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/junrar/junrar/commit/9b69c6b708dd88b925ba91fde563869cc0f8f586\"\u003e\u003ccode\u003e9b69c6b\u003c/code\u003e\u003c/a\u003e fix: ArrayIndexOutOfBoundsException in solid RAR v20 archive extraction\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/junrar/junrar/compare/v7.5.8...v7.5.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.jsoup:jsoup` from 1.22.1 to 1.22.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/releases\"\u003eorg.jsoup:jsoup's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ejsoup Java HTML Parser release 1.22.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup 1.22.2\u003c/strong\u003e is out now, with fixes and refinements across the library. It makes editing the DOM during traversal more predictable, refreshes the default HTML tag definitions with newer elements and better text boundaries, and improves reliability in parsing and HTTP transport. The release also fixes a number of edge cases in cleaning, stream parsing, XML doctype handling, and Android packaging.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ejsoup\u003c/strong\u003e is a Java library for working with real-world HTML and XML. It provides a very convenient API for extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jhy/jsoup/blob/HEAD/download\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e jsoup now.\u003c/p\u003e\n\u003ch2\u003eImprovements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBuild Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eMy sincere thanks to everyone who contributed to this release!\nIf you have any suggestions for the next release, I would love to hear them; please get in touch via \u003ca href=\"https://github.com/jhy/jsoup/discussions\"\u003ejsoup discussions\u003c/a\u003e, or with me \u003ca href=\"https://jhedley.com/\"\u003edirectly\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYou can also \u003c!-- raw HTML omitted --\u003efollow me\u003c!-- raw HTML omitted --\u003e (\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e@\u003ca href=\"mailto:jhy@tilde.zone\"\u003ejhy@tilde.zone\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e) on Mastodon / Fediverse to receive occasional notes about jsoup releases.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jhy/jsoup/blob/master/CHANGES.md\"\u003eorg.jsoup:jsoup's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.22.2 (2026-Apr-20)\u003c/h2\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded and clarified \u003ccode\u003eNodeTraversor\u003c/code\u003e support for in-place DOM rewrites during \u003ccode\u003eNodeVisitor.head()\u003c/code\u003e. Current-node edits such as \u003ccode\u003eremove\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, and \u003ccode\u003eunwrap\u003c/code\u003e now recover more predictably, while traversal stays within the original root subtree. This makes single-pass tree cleanup and normalization visitors easier to write, for example when unwrapping presentational elements or replacing text nodes as you walk the DOM. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocumentation: clarified that a configured \u003ccode\u003eCleaner\u003c/code\u003e may be reused across concurrent threads, and that shared \u003ccode\u003eSafelist\u003c/code\u003e instances should not be mutated while in use. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2473\"\u003e#2473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated the default HTML \u003ccode\u003eTagSet\u003c/code\u003e for current HTML elements: added \u003ccode\u003edialog\u003c/code\u003e, \u003ccode\u003esearch\u003c/code\u003e, \u003ccode\u003epicture\u003c/code\u003e, and \u003ccode\u003eslot\u003c/code\u003e; made \u003ccode\u003eins\u003c/code\u003e, \u003ccode\u003edel\u003c/code\u003e, \u003ccode\u003ebutton\u003c/code\u003e, \u003ccode\u003eaudio\u003c/code\u003e, \u003ccode\u003evideo\u003c/code\u003e, and \u003ccode\u003ecanvas\u003c/code\u003e inline by default (\u003ccode\u003eTag#isInline()\u003c/code\u003e, aligned to phrasing content in the spec); and added readable \u003ccode\u003eElement.text()\u003c/code\u003e boundaries for controls and embedded objects via the new \u003ccode\u003eTag.TextBoundary\u003c/code\u003e option. This improves pretty-printing and keeps normalized text from running adjacent words together. \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2493\"\u003e#2493\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAndroid (R8/ProGuard): added a rule to ignore the optional \u003ccode\u003ere2j\u003c/code\u003e dependency when not present. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2459\"\u003e#2459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed a \u003ccode\u003eNodeTraversor\u003c/code\u003e regression in 1.21.2 where removing or replacing the current node during \u003ccode\u003ehead()\u003c/code\u003e could revisit the replacement node and loop indefinitely. The traversal docs now also clarify which inserted nodes are visited in the current pass. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2472\"\u003e#2472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParsing during charset sniffing no longer fails if an advisory \u003ccode\u003eavailable()\u003c/code\u003e call throws \u003ccode\u003eIOException\u003c/code\u003e, as seen on JDK 8 \u003ccode\u003eHttpURLConnection\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2474\"\u003e#2474\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer makes relative URL attributes in the input document absolute when cleaning or validating a \u003ccode\u003eDocument\u003c/code\u003e. URL normalization now applies only to the cleaned output, and \u003ccode\u003eSafelist.isSafeAttribute()\u003c/code\u003e is side effect free. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2475\"\u003e#2475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCleaner\u003c/code\u003e no longer duplicates enforced attributes when the input \u003ccode\u003eDocument\u003c/code\u003e preserves attribute case. A case-variant source attribute is now replaced by the enforced attribute in the cleaned output. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2476\"\u003e#2476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIf a per-request SOCKS proxy is configured, jsoup now avoids using the JDK \u003ccode\u003eHttpClient\u003c/code\u003e, because the JDK would silently ignore that proxy and attempt to connect directly. Those requests now fall back to the legacy \u003ccode\u003eHttpURLConnection\u003c/code\u003e transport instead, which does support SOCKS. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2468\"\u003e#2468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.Response.streamParser()\u003c/code\u003e and \u003ccode\u003eDataUtil.streamParser(Path, ...)\u003c/code\u003e could fail on small inputs without a declared charset, if the initial 5 KB charset sniff fully consumed the input and closed it before the stream parse began. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2483\"\u003e#2483\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIn XML mode, doctypes with an internal subset, such as \u003ccode\u003e\u0026lt;!DOCTYPE root [\u0026lt;!ENTITY name \u0026quot;value\u0026quot;\u0026gt;]\u0026gt;\u003c/code\u003e, now round-trip correctly. The subset is preserved as raw text only; entities are not expanded and external DTDs are not loaded. \u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2486\"\u003e#2486\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBuild Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated the integration test server from Jetty to Netty, which actively maintains support for our minimum JDK target (8). \u003ca href=\"https://redirect.github.com/jhy/jsoup/pull/2491\"\u003e#2491\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/ac28afe6e5bf96d39fd17c3e0a797a7585e1958c\"\u003e\u003ccode\u003eac28afe\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jsoup-1.22.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/52f2cd3ea2004b9be0e0a09021bac7ce2daf8ae4\"\u003e\u003ccode\u003e52f2cd3\u003c/code\u003e\u003c/a\u003e Improve entity example in changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/cf6ffe08616f8633ee6113b91f9d6a07acef38c6\"\u003e\u003ccode\u003ecf6ffe0\u003c/code\u003e\u003c/a\u003e Add Tag#TextBoundary option; bring TagSet to spec (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2493\"\u003e#2493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/2be739c1c659a1592c402a5441f8be6f7881280c\"\u003e\u003ccode\u003e2be739c\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2492\"\u003e#2492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/45de7cbc215eb3f1189d23eaf57acf6f7b1a5edf\"\u003e\u003ccode\u003e45de7cb\u003c/code\u003e\u003c/a\u003e Migrate integration test server from Jetty to Netty (\u003ca href=\"https://redirect.github.com/jhy/jsoup/issues/2491\"\u003e#2491\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/1df14edbfc327a1ef309142ef5e8ed68324de320\"\u003e\u003ccode\u003e1df14ed\u003c/code\u003e\u003c/a\u003e Preserve XML doctype internal subset\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/06fa52d15a22003b67dfdb3f8220cc025d493a43\"\u003e\u003ccode\u003e06fa52d\u003c/code\u003e\u003c/a\u003e Adding Contribution Guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/d4a8941820c037327538c30a8723ec715b67b6f6\"\u003e\u003ccode\u003ed4a8941\u003c/code\u003e\u003c/a\u003e Simplify the test; doesn't need the buffer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/823709f519995492d9a092fe315af389616e58f8\"\u003e\u003ccode\u003e823709f\u003c/code\u003e\u003c/a\u003e Don't reuse a fully read sniffed doc for StreamParser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jhy/jsoup/commit/e1b0df5fec53710214cd700de38d82e1ca92bd79\"\u003e\u003ccode\u003ee1b0df5\u003c/code\u003e\u003c/a\u003e NodeFilter javadoc tweak\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jhy/jsoup/compare/jsoup-1.22.1...jsoup-1.22.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springdoc:springdoc-openapi-starter-webmvc-ui` from 3.0.2 to 3.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/releases\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003espringdoc-openapi v3.0.3 released!\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/seregamorph\"\u003e\u003ccode\u003e@​seregamorph\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/pull/3260\"\u003espringdoc/springdoc-openapi#3260\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ehttps://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/springdoc/springdoc-openapi/blob/v3.0.3/CHANGELOG.md\"\u003eorg.springdoc:springdoc-openapi-starter-webmvc-ui's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.0.3] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3246\"\u003e#3246\u003c/a\u003e – Add Springdoc OpenAPI MCP (Model Context Protocol) support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3256\"\u003e#3256\u003c/a\u003e – Auto-set \u003ccode\u003enullable: true\u003c/code\u003e for Kotlin nullable types in schema properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3239\"\u003e#3239\u003c/a\u003e – Add support for the \u003ccode\u003e@Range\u003c/code\u003e constraint validation annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3244\"\u003e#3244\u003c/a\u003e – Handle default values for \u003ccode\u003eLocalDate\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade Spring Boot to version \u003cstrong\u003e4.0.5\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-core to version \u003cstrong\u003e2.2.47\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade swagger-ui to version \u003cstrong\u003e5.32.2\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e – \u003ccode\u003e@ConditionalOnClass(HateoasProperties.class)\u003c/code\u003e in \u003ccode\u003eSpringDocHateoasConfiguration\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eForwards all MCP non-transport headers to downstream methods\u003c/li\u003e\n\u003cli\u003eDynamically resolve the base path from \u003ccode\u003ewindow.location.pathname\u003c/code\u003e for MCP UI\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3258\"\u003e#3258\u003c/a\u003e – Setting API Version Required when using WebFlux breaks the Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3259\"\u003e#3259\u003c/a\u003e – Annotated Generic properties getting applied to sibling properties\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3255\"\u003e#3255\u003c/a\u003e – \u003ccode\u003eDirection\u003c/code\u003e enum: fixed visibility scope of group order so that \u003ccode\u003esetGroupsOrder\u003c/code\u003e method can be used\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3247\"\u003e#3247\u003c/a\u003e – Preserve YAML group URLs in Swagger UI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3245\"\u003e#3245\u003c/a\u003e – Upgrade swagger-core from version 2.2.43 to 2.2.45\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3235\"\u003e#3235\u003c/a\u003e – \u003ccode\u003ePropertyResolverUtils\u003c/code\u003e retains a \u003ccode\u003eJsonNode\u003c/code\u003e when reading an \u003ccode\u003eExtensionProperty\u003c/code\u003e annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3226\"\u003e#3226\u003c/a\u003e – Propagate \u003ccode\u003eJsonView\u003c/code\u003e context when resolving \u003ccode\u003ePage\u0026lt;T\u0026gt;\u003c/code\u003e schema\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3c30283fb33ced3b8368c7a890ee05d23119322a\"\u003e\u003ccode\u003e3c30283\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release v3.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4184c05db39e96e8d1ce1287d5f58f242a4c8165\"\u003e\u003ccode\u003e4184c05\u003c/code\u003e\u003c/a\u003e update .gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/89745c20c3695b9b934cbf77f96ef1cd1df9fac7\"\u003e\u003ccode\u003e89745c2\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/4d1a730134720740ed3b9a2831d14e97dbe28780\"\u003e\u003ccode\u003e4d1a730\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/springdoc/springdoc-openapi/issues/3260\"\u003e#3260\u003c/a\u003e from seregamorph/SpringDocHateoasConfiguration-class...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/54e765036d9d49935a97e3ccebd875581efcc8ed\"\u003e\u003ccode\u003e54e7650\u003c/code\u003e\u003c/a\u003e ConditionalOnClass (HateoasProperties.class) in SpringDocHateoasConfiguration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/9f354b2a3cb92a8caa1d0518b1916ac4f79fbd71\"\u003e\u003ccode\u003e9f354b2\u003c/code\u003e\u003c/a\u003e Spring-boot upgrade to version 4.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/14df32f99179db89967a6260562775cd6b883128\"\u003e\u003ccode\u003e14df32f\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/3ee9a44547f44fb4982c98b7a5dbc1f6f9aff1a3\"\u003e\u003ccode\u003e3ee9a44\u003c/code\u003e\u003c/a\u003e Forwards all MCP non-transport headers, to downstream methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/df99408a7674af5ea3fc40f79d81bfef372e7c0e\"\u003e\u003ccode\u003edf99408\u003c/code\u003e\u003c/a\u003e upgrade swagger-ui to version 5.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/springdoc/springdoc-openapi/commit/6ee70f4074e76d3d8554487e4318681d95e444d7\"\u003e\u003ccode\u003e6ee70f4\u003c/code\u003e\u003c/a\u003e upgrade swagger-api to version 2.2.47\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/springdoc/springdoc-openapi/compare/v3.0.2...v3.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tools.jackson:jackson-bom` from 3.1.1 to 3.1.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/0ae1c2ae270dabe8e21700cbcee1c266b54e84f0\"\u003e\u003ccode\u003e0ae1c2a\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release jackson-bom-3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/3c171ebd5d6c5d8f6e8d4f3614cf9b4f0a8babb9\"\u003e\u003ccode\u003e3c171eb\u003c/code\u003e\u003c/a\u003e Prep for 3.1.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/8046ced071e0b36747bae0f0a96fa21914de1303\"\u003e\u003ccode\u003e8046ced\u003c/code\u003e\u003c/a\u003e Post-release dep version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FasterXML/jackson-bom/commit/ea00ca4cc59ba656a17a071e30a68387e51d3e0d\"\u003e\u003ccode\u003eea00ca4\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare for next development iteration\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/FasterXML/jackson-bom/compare/jackson-bom-3.1.1...jackson-bom-3.1.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.springframework.boot` from 4.0.5 to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spring-projects/spring-boot/releases\"\u003eorg.springframework.boot's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.6\u003c/h2\u003e\n\u003ch2\u003e:lady_beetle: Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDefault security is misconfigured when spring-boot-actuator-autoconfigure is present and spring-boot-health is not \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50188\"\u003e#50188\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eElasticsearch Rest5Client auto-configuration misconfigures underlying HTTP client \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50187\"\u003e#50187\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationPidFileWriter does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50185\"\u003e#50185\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRandomValuePropertySource is not suitable for secrets \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50183\"\u003e#50183\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCassandra auto-configuration misconfigures CqlSessionBuilder \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50180\"\u003e#50180\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApplicationTemp does not handle symlinks correctly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50178\"\u003e#50178\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemote DevTools performs comparison incorrectly \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50176\"\u003e#50176\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003espring.rabbitmq.ssl.verify-hostname is applied inconsistently \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50174\"\u003e#50174\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWhole number values are ignored when configuring min and max expected values and SLO boundaries for a distribution summary meter \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50077\"\u003e#50077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClassic starters are missing several modules \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50071\"\u003e#50071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModule spring-boot-resttestclient is missing from spring-boot-starter-test-classic \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/50069\"\u003e#50069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotations like \u003ccode\u003e@Ssl\u003c/code\u003e don't work on \u003ccode\u003e@Bean\u003c/code\u003e methods when using \u003ccode\u003e@ServiceConnection\u003c/code\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50064\"\u003e#50064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnversRevisionRepositoriesRegistrar should reuse \u003ccode\u003e@EnableEnversRepositories\u003c/code\u003e rather than configuring the JPA counterpart \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50039\"\u003e#50039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWebFlux Cloud Foundry links endpoint includes query string from received request in resolved links \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50017\"\u003e#50017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImports on a containing test class are ignored when a nested class has imports \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50012\"\u003e#50012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWith spring.jackson.use-jackson2-defaults set to true, FAIL_ON_UNKNOWN_PROPERTIES is enabled \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49951\"\u003e#49951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e500 response from env endpoint when supplied pattern is invalid \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49946\"\u003e#49946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReactive MongoDB starter has a transitive dependency on the synchronous MongoDB driver \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49945\"\u003e#49945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP method is lost when configuring excludes in EndpointRequest \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49943\"\u003e#49943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHonor HttpMethod for reactive additional endpoint paths \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49880\"\u003e#49880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/artemis image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49869\"\u003e#49869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker Compose support doesn't work with apache/activemq image \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49866\"\u003e#49866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpring Security's PathPatternRequestMatcher.Builder is not auto-configured when using WebMvcTest and spring-boot-security-test \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49854\"\u003e#49854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAPI versioning path strategy should be applied path last as it is not meant to yield \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49800\"\u003e#49800\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:notebook_with_decorative_cover: Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs to encourage Java fundamentals for beginners that prefer to learn that way \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50146\"\u003e#50146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHTTP Service Interface Clients still document that API versioning can be configured via properties \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50126\"\u003e#50126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the observability section of the Lettuce documentation is broken \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50097\"\u003e#50097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eJavadoc for StaticResourceLocation.FAVICON doesn't describe icons location \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50085\"\u003e#50085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMySamlRelyingPartyConfiguration is missing a Kotlin sample \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50024\"\u003e#50024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncorrect default value for management.httpexchanges.recording.include in configuration metadata \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50019\"\u003e#50019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLink to the Kubernetes documentation when discussing startup probes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50015\"\u003e#50015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypo in JdbcSessionAutoConfiguration Javadoc \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49873\"\u003e#49873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify that configuration property default values are not available through the Environment \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49851\"\u003e#49851\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument the need for Liquibase and Flyway starters \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49839\"\u003e#49839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKafka documentation refers to deprecated JSON serializer and deserializer classes \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/pull/49826\"\u003e#49826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e:hammer: Dependency Upgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to Elasticsearch Client 9.2.8 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50027\"\u003e#50027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Groovy 5.0.5 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49911\"\u003e#49911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Hibernate 7.2.12.Final \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50134\"\u003e#50134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to Jackson Bom 3.1.2 \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50051\"\u003e#50051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/jaxen-xpath/jaxen/releases/tag/v2.0.1\"\u003eJaxen 2.0.1\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/50104\"\u003e#50104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to \u003ca href=\"https://github.com/FirebirdSQL/jaybird/releases/tag/v6.0.5\"\u003eJaybird 6.0.5\u003c/a\u003e \u003ca href=\"https://redirect.github.com/spring-projects/spring-boot/issues/49914\"\u003e#49914\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/8821ad2cd381bb4b9615a61479e1de7305a8ba39\"\u003e\u003ccode\u003e8821ad2\u003c/code\u003e\u003c/a\u003e Release v4.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9e4048a03f17adfe78057a3c4d5b4693305c0ae0\"\u003e\u003ccode\u003e9e4048a\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/20bb11c3984802990572ddbeae8b66885a8f2462\"\u003e\u003ccode\u003e20bb11c\u003c/code\u003e\u003c/a\u003e Next development version (v3.5.15-SNAPSHOT)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/98daa8ea30f39a5b0ca6768b5cbc2dc8698ef4e1\"\u003e\u003ccode\u003e98daa8e\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/9dc5aa2863f598a15d3dfa116f4b89249daba7e7\"\u003e\u003ccode\u003e9dc5aa2\u003c/code\u003e\u003c/a\u003e Polish\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/874f6294b91da18367b8b5ab7b2fad3fa23cfba6\"\u003e\u003ccode\u003e874f629\u003c/code\u003e\u003c/a\u003e Fix default security with actuator but without health\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/e41b3bf731d1134bc18ec1f68ac01e0fe1c54923\"\u003e\u003ccode\u003ee41b3bf\u003c/code\u003e\u003c/a\u003e Enable hostname verification for SSL connections to Elasticsearch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/ef8527bb0ef8f564f4f9c57a7be99a7aa96c6ab0\"\u003e\u003ccode\u003eef8527b\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/f533a4549c3999aac30cb5830f07dc304933e93d\"\u003e\u003ccode\u003ef533a45\u003c/code\u003e\u003c/a\u003e Do not follow symlinks when writing PID file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spring-projects/spring-boot/commit/4a7bd332b6d19fef1aa4cf28434985f2b03a2e0f\"\u003e\u003ccode\u003e4a7bd33\u003c/code\u003e\u003c/a\u003e Merge branch '3.5.x' into 4.0.x\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/spring-projects/spring-boot/compare/v4.0.5...v4.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.hibernate.orm` from 7.3.0.Final to 7.3.2.Final\n\nUpdates `com.github.ben-manes.versions` from 0.53.0 to 0.54.0\n\nUpdates `gradle-wrapper` from 9.4.1 to 9.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gradle/gradle/releases\"\u003egradle-wrapper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.5.0\u003c/h2\u003e\n\u003cp\u003eThe Gradle team is excited to announce Gradle 9.5.0.\u003c/p\u003e\n\u003cp\u003eHere are the highlights of this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTask provenance in reports and failure messages\u003c/li\u003e\n\u003cli\u003eType-safe accessors for precompiled Kotlin Settings plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://docs.gradle.org/9.5.0/release-notes.html\"\u003eRead the Release Notes\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe would like to thank the following community members for their contributions to this release of Gradle:\n\u003ca href=\"https://github.com/atm1020\"\u003eatm1020\u003c/a\u003e,\n\u003ca href=\"https://github.com/mataha\"\u003emataha\u003c/a\u003e,\n\u003ca href=\"https://github.com/aSemy\"\u003eAdam\u003c/a\u003e,\n\u003ca href=\"https://github.com/kelemen\"\u003eAttila Kelemen\u003c/a\u003e,\n\u003ca href=\"https://github.com/britter\"\u003eBenedikt Ritter\u003c/a\u003e,\n\u003ca href=\"https://github.com/Vampire\"\u003eBjörn Kautler\u003c/a\u003e,\n\u003ca href=\"https://github.com/budindepunk\"\u003eCaro Silva Rode\u003c/a\u003e,\n\u003ca href=\"https://github.com/chanani\"\u003eCHANHAN\u003c/a\u003e,\n\u003ca href=\"https://github.com/DmitryNez\"\u003eDmitry Nezavitin\u003c/a\u003e,\n\u003ca href=\"https://github.com/Juneezee\"\u003eEng Zer Jun\u003c/a\u003e,\n\u003ca href=\"https://github.com/KugelLibelle\"\u003eKugelLibelle\u003c/a\u003e,\n\u003ca href=\"https://github.com/vmadalin\"\u003eMadalin Valceleanu\u003c/a\u003e,\n\u003ca href=\"https://github.com/quijote\"\u003eMarkus Gaisbauer\u003c/a\u003e,\n\u003ca href=\"https://github.com/koppor\"\u003eOliver Kopp\u003c/a\u003e,\n\u003ca href=\"https://github.com/hfhbd\"\u003ePhilip Wedemann\u003c/a\u003e,\n\u003ca href=\"https://github.com/ploober\"\u003eploober\u003c/a\u003e,\n\u003ca href=\"https://github.com/rpalcolea\"\u003eRoberto Perez Alcolea\u003c/a\u003e,\n\u003ca href=\"https://github.com/R0h1tAnand\"\u003eRohit Anand\u003c/a\u003e,\n\u003ca href=\"https://github.com/Suvrat1629\"\u003eSuvrat Acharya\u003c/a\u003e,\n\u003ca href=\"https://github.com/usv240\"\u003eUjwal Suresh Vanjare\u003c/a\u003e,\n\u003ca href=\"https://github.com/urdak\"\u003eVictor Merkulov\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eUpgrade instructions\u003c/h2\u003e\n\u003cp\u003eSwitch your build to use Gradle 9.5.0 by updating your wrapper:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e./gradlew wrapper --gradle-version=9.5.0 \u0026amp;\u0026amp; ./gradlew wrapper\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSee the Gradle \u003ca href=\"https://docs.gradle.org/9.5.0/userguide/upgrading_version_9.html\"\u003e9.x upgrade guide\u003c/a\u003e to learn about deprecations, breaking changes and other considerations when upgrading.\u003c/p\u003e\n\u003cp\u003eFor Java, Groovy, Kotlin and Android compatibility, see the \u003ca href=\"https://docs.gradle.org/9.5.0/userguide/compatibility.html\"\u003efull compatibility notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eReporting problems\u003c/h2\u003e\n\u003cp\u003eIf you find a problem with this release, please file a bug on \u003ca href=\"https://github.com/gradle/gradle/issues\"\u003eGitHub Issues\u003c/a\u003e adhering to our issue guidelines.\nIf you're not sure you're encountering a bug, please use the \u003ca href=\"https://discuss.gradle.org/c/help-discuss\"\u003eforum\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe hope you will build happiness with Gradle, and we look forward to your feedback via \u003ca href=\"https://twitter.com/gradle\"\u003eTwitter\u003c/a\u003e or on \u003ca href=\"https://github.com/gradle\"\u003eGitHub\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e9.5.0 RC4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/3fe117d68f3907790f3809f121aa36303a9151f8\"\u003e\u003ccode\u003e3fe117d\u003c/code\u003e\u003c/a\u003e Update jdks.yaml (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37703\"\u003e#37703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/33d145af6fbe7cf7c9d84646b6d7f32fea91d5e2\"\u003e\u003ccode\u003e33d145a\u003c/code\u003e\u003c/a\u003e Update jdks.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f7a05d1ed48442eb5da4d6e2b6593da55cdec1da\"\u003e\u003ccode\u003ef7a05d1\u003c/code\u003e\u003c/a\u003e Update Gradle wrapper to version 9.5.0-rc-4 (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37654\"\u003e#37654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/266facdcbcb0b4c60120cc118eaf0f652bfcdfe5\"\u003e\u003ccode\u003e266facd\u003c/code\u003e\u003c/a\u003e Update Gradle wrapper to version 9.5.0-rc-4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/0ad6dd8e143455707e444aa7e3d38327a3366513\"\u003e\u003ccode\u003e0ad6dd8\u003c/code\u003e\u003c/a\u003e Suppress OSC taskbar reset on plain/piped stdout (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37646\"\u003e#37646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/966025d5850d46c9158a2f25e4096222277ecf57\"\u003e\u003ccode\u003e966025d\u003c/code\u003e\u003c/a\u003e Suppress OSC taskbar reset on plain/piped stdout\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/e7455734449e422accebf44cf7b31bf93e3a770c\"\u003e\u003ccode\u003ee745573\u003c/code\u003e\u003c/a\u003e Polish IP docs (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37642\"\u003e#37642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/d5cfd079acd2c8f1182edd6ec23dbab571132d0a\"\u003e\u003ccode\u003ed5cfd07\u003c/code\u003e\u003c/a\u003e Ensure BuildOperationQueue will progress without extra leases (\u003ca href=\"https://redirect.github.com/gradle/gradle/issues/37629\"\u003e#37629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/acdf0c36fa13ba09a7ff5b51f79b9af4b1a097ee\"\u003e\u003ccode\u003eacdf0c3\u003c/code\u003e\u003c/a\u003e Ensure BuildOperationQueue will progress without extra leases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gradle/gradle/commit/f7d0e4f6f7896426a8b24091388e4c252b62faef\"\u003e\u003ccode\u003ef7d0e4f\u003c/code\u003e\u003c/a\u003e Rename anchor\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gradle/gradle/compare/v9.4.1...v9.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/willianpaixao/booklore/pull/16","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/willianpaixao%2Fbooklore/issues/16","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/16/packages"}}]}