Skip to content

Update backend (minor and patch) - #40

Closed
codeministry-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/backend-(minor-and-patch)
Closed

codeministry-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/backend-(minor-and-patch)

Conversation

@codeministry-renovate

@codeministry-renovate codeministry-renovate Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change Age Confidence
gradle (source) minor 9.4.1 → 9.8.2 age confidence
jacoco (source) dependencies patch 0.8.13 → 0.8.16 age confidence
org.springframework.ai:spring-ai-bom dependencies patch 2.0.1 → 2.0.2 age confidence
org.freemarker:freemarker (source) dependencies patch 2.3.34 → 2.3.35 age confidence
org.wiremock:wiremock-standalone (source) dependencies patch 3.13.1 → 3.13.2 age confidence
com.icegreen:greenmail-junit5 (source) dependencies patch 2.1.9 → 2.1.15 age confidence
org.projectlombok:lombok (source) dependencies patch 1.18.46 → 1.18.48 age confidence
org.jsoup:jsoup (source) dependencies minor 1.21.2 → 1.23.2 age confidence

Release Notes

gradle/gradle (gradle)

v9.8.2: 9.8.2

Compare Source

The Gradle team is excited to announce Gradle 9.8.2.

Here are the highlights of this release:

  • Java 27 support
  • Maven mirror settings reuse
  • Linked problem locations in build output

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
Aman Gautam,
Björn Kautler,
Eng Zer Jun,
Hashim Khan,
Julian Krannich,
KBS,
Labh R Jethe,
Mark Dodgson,
Maxim,
monkey,
nataphon-ktsystems,
Paul King,
Qiu Tian,
rg_sandesh,
Roberto Perez Alcolea,
Sean,
Zongle Wang.

Upgrade instructions

Switch your build to use Gradle 9.8.2 by updating your wrapper:

./gradlew :wrapper --gradle-version=9.8.2 && ./gradlew :wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

v9.8.1: 9.8.1

Compare Source

This is a patch release for Gradle 9.8.0. We recommend using 9.8.1 instead of 9.8.0.

This release addresses three high rated vulnerabilities:

The following issues were resolved:

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
Aman Gautam,
Björn Kautler,
Eng Zer Jun,
Hashim Khan,
Julian Krannich,
KBS,
Labh R Jethe,
Mark Dodgson,
Maxim,
monkey,
nataphon-ktsystems,
Paul King,
Qiu Tian,
rg_sandesh,
Roberto Perez Alcolea,
Sean,
Zongle Wang.

Upgrade instructions

Switch your build to use Gradle 9.8.1 by updating your wrapper:

./gradlew :wrapper --gradle-version=9.8.1 && ./gradlew :wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

v9.8.0: 9.8.0

Compare Source

The Gradle team is excited to announce Gradle 9.8.0.

Here are the highlights of this release:

  • Java 27 support
  • Maven mirror settings reuse
  • Linked problem locations in build output

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
Aman Gautam,
Björn Kautler,
Eng Zer Jun,
Hashim Khan,
Julian Krannich,
KBS,
Labh R Jethe,
Mark Dodgson,
Maxim,
monkey,
nataphon-ktsystems,
Paul King,
Qiu Tian,
rg_sandesh,
Roberto Perez Alcolea,
Sean,
Zongle Wang.

Upgrade instructions

Switch your build to use Gradle 9.8.0 by updating your wrapper:

./gradlew :wrapper --gradle-version=9.8.0 && ./gradlew :wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

v9.7.1: 9.7.1

Compare Source

The Gradle team is excited to announce Gradle 9.7.1.

This is a patch release for 9.7.0. We recommend using 9.7.1 instead of 9.7.0.

Here are the highlights of 9.7.0 release:

  • Isolated Projects graduates to incubating
  • Broader Configuration Cache compatibility
  • Resilient Sync helps you fix broken builds
  • More source locations in problem reports

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
Adam,
Aman Gautam,
Aman Kumar,
Anton Dubrouski,
Aurimas,
gbhavya07,
Josh Friend,
nicklauslittle-gov,
Pragati,
project516,
Qin Mi,
Ravi,
sk-reddy17,
Suvrat Acharya,
Yongshun Ye.

Upgrade instructions

Switch your build to use Gradle 9.7.1 by updating your wrapper:

./gradlew :wrapper --gradle-version=9.7.1 && ./gradlew :wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

v9.7.0: 9.7.0

Compare Source

The Gradle team is excited to announce Gradle 9.7.0.

Here are the highlights of this release:

  • Isolated Projects graduates to incubating
  • Broader Configuration Cache compatibility
  • More source locations in problem reports

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
Adam,
Aman Gautam,
Aman Kumar,
Anton Dubrouski,
Aurimas,
gbhavya07,
Josh Friend,
nicklauslittle-gov,
Pragati,
project516,
Qin Mi,
Ravi,
sk-reddy17,
Suvrat Acharya,
Yongshun Ye.

Upgrade instructions

Switch your build to use Gradle 9.7.0 by updating your wrapper:

./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

v9.6.1: 9.6.1

Compare Source

The Gradle team is excited to announce Gradle 9.6.1.

Here are the highlights of this release:

  • Improved Configuration Cache hit rates
  • Additional CLI rendering options
  • Important project hierarchy lookup deprecations

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
Aharnish Solanki,
Benedikt Johannes,
Devendra Reddy Pennabadi,
Dmytro Rodionov,
Dreeam,
Elías Hernández Rodríguez,
Eng Zer Jun,
FinlayRJW,
Kamal Kansal,
Marcono1234,
Nelson Osacky,
Philip Wedemann,
Ravi,
Roberto Perez Alcolea,
Ryan Schmitt,
Sebastian Schuberth,
seunghun.ham,
sk-reddy17,
Suvrat Acharya,
Vedant Madane.

Upgrade instructions

Switch your build to use Gradle 9.6.1 by updating your wrapper:

./gradlew :wrapper --gradle-version=9.6.1 && ./gradlew :wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

v9.6.0: 9.6.0

Compare Source

The Gradle team is excited to announce Gradle 9.6.0.

Here are the highlights of this release:

  • Improved Configuration Cache hit rates
  • Additional CLI rendering options
  • Important project hierarchy lookup deprecations

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
Aharnish Solanki,
Benedikt Johannes,
Devendra Reddy Pennabadi,
Dmytro Rodionov,
Dreeam,
Elías Hernández Rodríguez,
Eng Zer Jun,
FinlayRJW,
Kamal Kansal,
Marcono1234,
Nelson Osacky,
Philip Wedemann,
Ravi,
Roberto Perez Alcolea,
Ryan Schmitt,
Sebastian Schuberth,
seunghun.ham,
sk-reddy17,
Suvrat Acharya,
Vedant Madane.

Upgrade instructions

Switch your build to use Gradle 9.6.0 by updating your wrapper:

./gradlew :wrapper --gradle-version=9.6.0 && ./gradlew :wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

v9.5.1: 9.5.1

Compare Source

The Gradle team is excited to announce Gradle 9.5.1.

Here are the highlights of this release:

  • Task provenance in reports and failure messages
  • Type-safe accessors for precompiled Kotlin Settings plugins

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
atm1020,
mataha,
Adam,
Attila Kelemen,
Benedikt Ritter,
Björn Kautler,
Caro Silva Rode,
CHANHAN,
Dmitry Nezavitin,
Eng Zer Jun,
KugelLibelle,
Madalin Valceleanu,
Markus Gaisbauer,
Oliver Kopp,
Philip Wedemann,
ploober,
Roberto Perez Alcolea,
Rohit Anand,
Suvrat Acharya,
Ujwal Suresh Vanjare,
Victor Merkulov

Upgrade instructions

Switch your build to use Gradle 9.5.1 by updating your wrapper:

./gradlew wrapper --gradle-version=9.5.1 && ./gradlew wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

v9.5.0: 9.5.0

Compare Source

The Gradle team is excited to announce Gradle 9.5.0.

Here are the highlights of this release:

  • Task provenance in reports and failure messages
  • Type-safe accessors for precompiled Kotlin Settings plugins

Read the Release Notes

We would like to thank the following community members for their contributions to this release of Gradle:
atm1020,
mataha,
Adam,
Attila Kelemen,
Benedikt Ritter,
Björn Kautler,
Caro Silva Rode,
CHANHAN,
Dmitry Nezavitin,
Eng Zer Jun,
KugelLibelle,
Madalin Valceleanu,
Markus Gaisbauer,
Oliver Kopp,
Philip Wedemann,
ploober,
Roberto Perez Alcolea,
Rohit Anand,
Suvrat Acharya,
Ujwal Suresh Vanjare,
Victor Merkulov

Upgrade instructions

Switch your build to use Gradle 9.5.0 by updating your wrapper:

./gradlew wrapper --gradle-version=9.5.0 && ./gradlew wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.

For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines.
If you're not sure you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.

jacoco/jacoco (jacoco)

v0.8.16: 0.8.16

New Features

  • JaCoCo now officially supports Java 27 (GitHub #​2287).
  • Experimental support for Java 28 class files (GitHub #​2170, #​2189).
  • To instrument classes loaded by the platform class loader, introduced in JDK 9 by JEP 261, the agent option inclbootstrapclasses=true is required (GitHub #​2155).

Non-functional Changes

v0.8.15: 0.8.15

New Features

  • JaCoCo now officially supports Java 26 (GitHub #​2076).
  • Experimental support for Java 27 class files (GitHub #​2004).
  • Compatibility methods generated by Kotlin compiler for functions defined in interfaces are filtered out during generation of report (GitHub #​1905).
  • Compatibility methods generated by Kotlin compiler for exposed boxed inline value classes (JvmExposeBoxed annotation) are filtered out during generation of report (GitHub #​1944).
  • Methods generated by the Kotlin compiler for functions with JvmStatic annotation are filtered out during generation of report (GitHub #​2097).
  • Improved filtering of bytecode generated by Kotlin compiler for when expressions and statements with kotlin.String subject where first branch condition contains string with largest hash (GitHub #​2098).
  • Part of bytecode that javac versions from 24 to 26 generate for switch statements and expressions with selector expression of type java.lang.String inside lambdas is filtered out during generation of report (GitHub #​2023).
  • Improved performance of Kotlin files analysis by parsing SMAPs only once per class (GitHub #​2114).
  • For better performance agent output methods tcpclient and tcpserver use BufferedOutputStream to write execution data to socket. Maven plugin, Ant tasks, CLI, API usage examples, and ExecDumpClient API use BufferedInputStream to read execution data from socket. Third-party integrations should do the same to benefit from this change in agent (GitHub #​2089).

Fixed bugs

  • Fixed processing of Kotlin SMAP in synthetic classes (GitHub #​1985).
  • Multiple JaCoCo runtimes within one JVM writing to the same output file should not cause data corruption when running on JDK versions from 6 to 10 affected by JDK-8166253 (GitHub #​2065, #​2074).
  • For better performance agent writes to output file via BufferedOutputStream, this fixes regression introduced in version 0.6.2 (GitHub #​2073).
  • Fixed NullPointerException when JaCoCo agent is loaded by non system class loader, for example when loaded by JBoss Modules (GitHub #​1651).

Non-functional Changes

  • JaCoCo now depends on ASM 9.10.1 (GitHub #​2134).

v0.8.14: 0.8.14

New Features

  • JaCoCo now officially supports Java 25 (GitHub #​1950).
  • Experimental support for Java 26 class files (GitHub #​1870).
  • Branches added by the Kotlin compiler for default argument number 33 or higher are filtered out during generation of report (GitHub #​1655).
  • Part of bytecode generated by the Kotlin compiler for elvis operator that follows safe call operator is filtered out during generation of report (GitHub #​1814, #​1954).
  • Part of bytecode generated by the Kotlin compiler for more cases of chained safe call operators is filtered out during generation of report (GitHub #​1956).
  • Part of bytecode generated by the Kotlin compiler for invocations of suspendCoroutineUninterceptedOrReturn intrinsic is filtered out during generation of report (GitHub #​1929).
  • Part of bytecode generated by the Kotlin compiler for suspending lambdas with parameters is filtered out during generation of report (GitHub #​1945).
  • Part of bytecode generated by the Kotlin compiler for suspending functions and lambdas with suspension points that return inline value class is filtered out during generation of report (GitHub #​1871).
  • Part of bytecode generated by the Kotlin Compose compiler plugin for pausable composition is filtered out during generation of report (GitHub #​1911).
  • Methods generated by the Kotlin serialization compiler plugin are filtered out (GitHub #​1885, #​1970, #​1971).

Fixed bugs

  • Fixed handling of implicit else clause of when with String subject in Kotlin (GitHub #​1813, #​1940).
  • Fixed handling of implicit default clause of switch by String in Java when compiled by ECJ (GitHub #​1813, #​1940).
    Fixed handling of exceptions in chains of safe call operators in Kotlin (GitHub #​1819).

Non-functional Changes

  • JaCoCo now depends on ASM 9.9 (GitHub #​1965).
spring-projects/spring-ai (org.springframework.ai:spring-ai-bom)

v2.0.2

For upgrading from 2.0.1 to 2.0.2, please refer to the upgrade notes here.

⭐ New Features

  • Upgrade the Anthropic Java SDK to 2.72.0 #​7164
  • Add observability support for TextToSpeechModel, TranscriptionModel and StabilityAiImageModel #​7141
  • Configure Redis vector store metadata fields #​6870
  • Add customizers for stateless MCP servers #​6539

🐞 Bug Fixes

  • Fix numeric filters in Cassandra vector store #​7117
  • Fix StructuredOutputValidationAdvisor repeating tool call requests #​7100
  • Handle Ollama responses without a message #​7066
  • Return final answer first in AnthropicChatModel #​7001
  • Honor disabled reasoning in tool history #​6984
  • Include thinking text in Anthropic streaming chunks #​6982
  • Fix Neo4j chat memory index properties #​6967
  • Fix invalid JSON in Bedrock tool-call arguments #​6963
  • Backfill additionalProperties: false in OpenAI strict tool schemas #​6865
  • Restore honoring the configured OpenAI timeout #​6837
  • Fix JsoupDocumentReader dropping relative link URLs #​6803
  • Close the resource stream in TextReader #​6797
  • Fix tool call extraction in GoogleGenAiChatModel for mixed content responses #​5468

📔 Documentation

  • Document Anthropic server-side spans in traces #​7165
  • Correct stale API names in AI metadata docs #​7032
  • docs: document OpenAI reasoning effort property #​6943
  • Document MCP client scope and session boundaries #​6820

🔨 Dependency Upgrades

  • Upgrade OpenAI Java SDK to 4.80.0 #​7170
  • Upgrade AWS SDK and Bedrock runtime to 2.55.14 #​7169

❤️ Contributors

Thank you to all the contributors who worked on this release:

@​CodeTrainerMan, @​CryoThrust, @​JamesBLewis, @​Lubaoshuai, @​Rainmemery, @​ashakirin, @​chabinhwang, @​chengwudi1, @​chensishang, @​dimitarproynov, @​dlwldn30, @​flex-ilsub, @​herder, @​ikaitist, @​iuliiasobolevska, @​jhpark1227, @​jianran, @​kezhenxu94, @​lazer-dev, @​martin-grofcik, @​nicolaskrier, @​pengjonas, @​pengmoubuaixuexi, @​rvullriede, @​ryujungkyun, @​seo92js, @​sharanrenukeshbharmshetty, @​sobychacko, @​tzolov, @​vinayreddykalluri, @​wantaekchoi, @​xujiantop-crypto, and @​zxuhan

wiremock/wiremock (org.wiremock:wiremock-standalone)

v3.13.2

Compare Source

What's Changed

Full Changelog: wiremock/wiremock@3.13.1...3.13.2

greenmail-mail-test/greenmail (com.icegreen:greenmail-junit5)

v2.1.15

Compare Source

v2.1.14

Compare Source

v2.1.13

Compare Source

v2.1.12

Compare Source

v2.1.11

Compare Source

v2.1.10

Compare Source

jhy/jsoup (org.jsoup:jsoup)

v1.23.2

Improvements
  • Improved consecutive StreamParser.selectFirst(...) calls during progressive parsing, so later matches are returned with their parsed contents when earlier selections had left them as parser lookahead. E.g., given <title>One</title><p id=hit>Full</p><p>Next</p>, selecting title and then #hit now advances the partial lookahead and returns <p id="hit">Full</p>, rather than returning an empty <p id="hit"></p> before its content is parsed. The updated readiness tracking follows StreamParser's normal emission order across implicit HTML structure and parser recovery. #​2551
  • Improved XML parser performance and memory use for documents with many nested namespace declarations by recording namespace changes within each element scope. #​2556
  • Improved W3CDom conversion performance for documents with many nested namespace declarations. The W3C converter now uses the same optimized namespace tracking as the XML parser. #​2559
  • Improved W3CDom XML conversion to retain processing instructions, comments outside the root element, and CDATA sections, which were previously dropped or converted to text. #​2572
  • DOM mutation methods, including child insertion and replacement, now reject operations that would create a cycle, such as making a node its own child or moving an ancestor beneath a descendant. #​2552
  • Added Elements#before(Node), after(Node), prepend(Node), and append(Node) to match the existing HTML string methods. #​953
  • Large file-backed uploads through Connection.requestBodyStream(InputStream) now stream directly with the JDK HttpClient on Java 11+, rather than being loaded fully into memory first. #​2575
  • Extended Java 11+ HTTP client reuse from requests sharing a Jsoup.newSession() to ordinary Jsoup.connect(...) calls, reducing transport thread and connection setup churn under sustained request loads. Sessions with custom authentication or SSL contexts continue to use their own client. #​2584
Changes
  • Aligned the XML parser stack depth and lookups to the configured maximum, which now defaults to 512 for both HTML and XML. Use Parser#setMaxDepth(int) to configure. #​2570
Bug Fixes
  • Fixed W3CDom namespace conversion in several cases: #​2559
    • Namespace declarations and prefixed attributes now carry the correct namespace URI, so namespace-aware DOM lookups work as expected.
    • Attributes added after parsing, or included through subtree conversion, now use inherited prefix declarations.
    • Namespace declarations now apply regardless of attribute order, and an empty declaration shadows an inherited binding only within its scope.
    • With namespace awareness disabled, inherited and undeclared prefixes now receive the declarations needed for XML serialization.
    • Valid HTML names that are not XML QNames, such as a:b:c, are normalized. Attributes that still cannot be represented are skipped, and unrepresentable elements no longer change the surrounding tree.
  • Fixed W3CDom conversion of programmatically created or renamed elements whose names can be represented in a jsoup HTML DOM but are not valid XML names, such as 1abc. These names are now normalized (e.g. _1abc) instead of causing a NullPointerException. #​2560
  • Fixed XML doctype serialization when a system identifier contains a double quote, which could otherwise produce invalid XML. #​2571
  • XML serialization now repairs element and attribute names that start with an invalid character, rather than outputting null elements or dropping attributes. For example, an attribute named 1a is written as _1a. Additional leading underscores keep repaired attribute names unique if they conflict with another attribute. #​2573
  • Supplementary Unicode characters are now escaped correctly when serializing with non-UTF, non-ASCII output charsets such as ISO-8859-1. Previously, characters could be emitted unescaped when their low 16-bit value was representable by the configured charset, causing replacement or corruption when the output was encoded. #​2578
  • Fixed the JDK HttpClient implementation to accept responses missing a Content-Type header, matching the HttpURLConnection implementation. #​2549
  • Fixed HTTP response content-type matching to handle media types case-insensitively and recognize structured +xml suffixes, including vendor-specific media types. #​2550
  • HTTP request URL normalization now percent-encodes ASCII control characters, DEL, and embedded fragment delimiters, keeping normalized URLs valid for HTTP requests while preserving existing escapes. #​2585
  • Corrected multipart form encoding to percent-escape CR and LF in field names and filenames, matching the HTML form submission specification. Multipart file content-types containing CR or LF are now rejected with a ValidationException. #​2555
  • Aligned trailing comment placement with the HTML specification: comments after </body> remain children of the html element, while comments after </html> remain children of the document. #​2557
  • When using the optional re2j regular expression engine, memory allocation errors caused by complex selector patterns at match time are now normalized to a ValidationException with a Pattern complexity error message.
  • Fixed parsing of malformed SVG and MathML content so that breakout HTML tags are placed according to the HTML specification. #​2562
  • Fixed deeply nested malformed HTML parsing that could lose the document body because stack lookups did not align to the configured maximum parser depth. #​2569
  • Aligned RCDATA, RAWTEXT, and script-data parsing with the HTML specification: malformed end tags no longer consume following markup, unclosed title/textarea content stays text through EOF, and custom text tags match exact names. #​2577
  • Improved URL validation during HTTP/HTTPS URL resolution and cleaning; resolved URLs without a host are now rejected instead of being accepted based only on their scheme prefix, aligning to RFC 9110. Valid relative links and non-HTTP(S) schemes are unchanged. #​2579
  • Redirects with malformed single-slash HTTP locations now use standard URL resolution to align with browsers. #​2580
  • Template fragment parsing now handles unmatched </template> tags without throwing a ValidationException. #​2581
  • Improved source tracking for adopted formatting elements and malformed markup ending at EOF. #​2582

v1.23.1

Improvements
  • Reduced retained memory when parsing with source position tracking enabled (Parser#setTrackPosition(true)). Source ranges are now stored in compact parser-owned span records instead of node and attribute user data, and Position objects are created lazily when source ranges are read. This cuts tracked DOM retained size by about 50-60% on representative benchmark documents, while keeping Node#sourceRange(), Element#endSourceRange(), and Attribute#sourceRange() behavior intact. #​2498
  • Added Element#classList(), an immutable snapshot of an element's class names in attribute order. Use hasClass() when you just need to test for one class, classList() when you want to read or iterate classes without needing a mutable result, and classNames() when you want the existing mutable, deduplicated set that can be written back with classNames(Set). The class APIs now share an HTML-whitespace scanner, which also makes classNames() faster and lighter on allocation, especially when walking many elements without class names. #​2500
  • Aligned HTML parser scope classification with the current HTML spec for select, foreignObject, and template. #​2501
  • Simplified the HTML tree builder's scope, implied-end-tag, and special-element checks by caching parser-only options on Tag. That improves HTML parser throughput by about 10% on small inputs and up to about 30% on larger inputs in the benchmark fixtures. #​2502
  • Improved HTML parser throughput stability by making hot tokeniser scan paths compile more predictably. #​2507
  • <noscript> fallback markup is now parsed into an inspectable DOM subtree in both the document head and body. The fallback acts as a contained parsing island, so malformed markup cannot disrupt the surrounding document structure, while normal HTML tokenization still applies within it. This also improves round-trip serialization. #​2537
  • Improved redirect credential handling as a defense-in-depth measure: explicit authorization headers and request cookies are no longer forwarded across origins, reducing exposure through open redirects and aligning with HTTP guidance. Cookies managed by a CookieStore continue to follow their configured scope. #​2540
  • Elements can now append their outer HTML, including their own tags, directly to an Appendable with Node#outerHtml(Appendable), without first creating a String. This complements Element#html(Appendable), which appends inner HTML only. #​2532
  • Aligned CDATA tokenization with the HTML spec: CDATA syntax in HTML content is parsed as a bogus comment, while it remains supported in SVG, MathML, and XML. Also improved namespace-aware fragment parsing so SVG and MathML contexts, HTML integration points, and context-sensitive tokenizer states are handled correctly. #​2542
  • When using the optional re2j regular expression engine, stack overflows caused by complex selector patterns are now normalized to a ValidationException with a Pattern complexity error message. #​2548
Bug Fixes
  • Fixed HTML parsing of mixed-case RCDATA end tags after tag-shaped text. For example, <title><p>Foo</TiTLE> and <textarea><img src=x></TeXtArEa> now keep the tag-shaped content as text instead of promoting it to markup. #​2503
  • Fixed W3CDom XML conversion so plain XML elements don't serialize with the reserved XML namespace as the default namespace. Explicit XML namespaces and xml:* attributes are still preserved. #​2504
  • Preserve control characters in parsed tag names #​2538
  • Updated HTTP redirects to follow the specification: 307 and 308 preserve the request method and content, 301 and 302 only change POST to GET, and Location is followed only for 301, 302, 303, 307, and 308 responses. Streamed request bodies are not buffered; if an automatic redirect requires replaying one, execution fails, so the caller can resend with a fresh stream. #​2540
  • Corrected the Cleaner's same-site link detection to compare hostnames rather than URL prefixes when applying rel=nofollow. #​2543
Build Changes
  • Cleaned up the Maven build for the multi-release JAR so Java 8 and Java 11+ sources compile as separate source sets. This avoids spurious Java 8 compiler warnings from newer-language overlay sources, keeps long-running parser checks behind an explicit profile, and preserves the same published artifacts and runtime behavior.
  • Improved parallelism and tuned timing in our integration tests, so that a full mvn clean verify drops from ~ 1m18s to ~ 21 seconds.

v1.22.2

Improvements
  • Expanded and clarified NodeTraversor support for in-place DOM rewrites during NodeVisitor.head(). Current-node edits such as remove, replace, and unwrap 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

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/Berlin)

  • Branch creation
    • "before 6am on monday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@codeministry

Copy link
Copy Markdown
Owner

Superseded by #47 for everything except Spring AI. Spring AI 2.0.2 breaks stopping a streaming chat turn (ChatConversationTest ×2, ChatStreamTest, ChatTurnDeadlineTest fail; green with 2.0.1 on the same tree), so main stays on 2.0.1 for now. The 2.0.2 bump is being investigated in its own PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant