32713 Commits

Author SHA1 Message Date
Brian Clozel daf9551578 Next development version (v6.2.20-SNAPSHOT) 2026-06-08 19:16:50 +02:00
Sam Brannen 76a36dfd70 Track operations during SpEL expression evaluation
This commit introduces support for tracking operations during SpEL
expression evaluation. If the maximum number of operations is exceeded,
a SpelEvaluationException is thrown.

The limit can be configured either on a per-use-case basis via
SpelParserConfiguration supplied to the SpelExpressionParser or
globally as a JVM system property or Spring property named
`spring.expression.maxOperations`.

Closes gh-36801
2026-06-08 15:13:12 +02:00
Sam Brannen 3d47da9746 Ensure getters have non-void return types in SpEL
Closes gh-36800
2026-06-08 15:13:12 +02:00
Sam Brannen 519d7332eb Improve additional error messages in SpEL
This commit picks up where 987d6cca6d left off.

See gh-36756
2026-06-08 15:13:12 +02:00
Sam Brannen ec89834fa8 Further improve pattern caching in SpEL
See gh-36755
2026-06-08 15:13:12 +02:00
Sam Brannen b294371a46 Avoid too many character access attempts in AntPathMatcher
Closes gh-36799
2026-06-08 15:13:12 +02:00
Sébastien Deleuze 1829b42b9c Ensure consistent JSP tag attribute processing
Closes gh-36798
2026-06-08 15:13:12 +02:00
Sébastien Deleuze 86d99790db Refine JavaScriptUtils#javaScriptEscape
Closes gh-36796
2026-06-08 15:13:12 +02:00
Sébastien Deleuze 3aaec98765 Prevent special prefixes in default view name resolution
This commit updates the default view name generation logic in
both Spring WebMVC and Spring WebFlux to prevent "redirect:"
and "forward:" (for MVC) prefixes from the incoming request path.

Closes gh-36794
2026-06-08 15:13:12 +02:00
Sébastien Deleuze ee4e79002b Add trusted packages to MappingJackson2MessageConverter
This commit introduces trusted packages, specified via the related
setter for untrusted use cases. It allows explicit configuration
of which Java packages are allowed to be deserialized.

Closes gh-36792
2026-06-08 15:13:12 +02:00
rstoyanchev ce90e4b11f RfcParser rejects invalid IPv6 host
Closes gh-36787
2026-06-08 15:13:12 +02:00
Brian Clozel 224e647e1b Upgrade to Reactor 2024.0.18
Closes gh-36882
2026-06-08 12:19:46 +02:00
Brian Clozel c0d399ab88 Upgrade to Micrometer 1.15.12
Closes gh-36881
2026-06-08 10:25:24 +02:00
Sam Brannen 5c4497a96c Fix additional links to Selenium documentation
See gh-36875

(cherry picked from commit b4a378186f)
2026-06-05 14:58:22 +02:00
leestana01 0fadafa9bc Fix broken links to Selenium documentation
The links to docs.seleniumhq.org no longer resolve, since the host was
retired.

This commit changes those links to use the current Selenium
documentation at selenium.dev.

Closes gh-36875

Signed-off-by: leestana01 <leestana01@naver.com>
(cherry picked from commit 220fcaa1e3)
2026-06-05 14:58:14 +02:00
Brian Clozel f161a419bd Polishing contribution
This commit adds further fixes in the same area, since there were
similar bugs in the WriteCompletionHandler:
* databuffers were not always emitted when fully read in the onNext hook
* on completion, the iterator was closed too early, before it was fully
  read
* on completion, writing the next bytebuffers from the iterator would
  always reuse the first one and not update the attachment

Closes gh-36714
2026-06-04 12:20:04 +02:00
KimDaehyeon 244f6ec390 Fix data loss in DataBufferUtils synchronous write
Prior to this commit, WritableByteChannelSubscriber.hookOnNext() called
iterator.next() exactly once. If a DataBuffer consisted of multiple NIO
ByteBuffers (e.g., NettyDataBuffer wrapping a CompositeByteBuf), only
the first buffer was written to the channel, and the remaining buffers
were silently ignored and lost.

This commit adds the missing while (iterator.hasNext()) outer loop to
ensure all fragmented buffers exposed by the iterator are completely
and safely written to the synchronous channel.

See gh-36714

Signed-off-by: KimDaehyeon <daehyeon3351@gmail.com>
2026-06-04 12:19:52 +02:00
Brian Clozel cca70d4ad2 Polishing contribution
This fixes a potential regression introduced by the previous commit.
Because the current value was not updated after the temporal was rolled
forward, there were new cases where entire days would be skipped.

Closes gh-36865
2026-06-04 10:38:53 +02:00
arno 96b44949a8 Fix CronExpression day skip on midnight DST gap
After rollForward, BitsCronField always searched for the next
matching bit from zero. When daylight saving creates a gap at
the start of a period (e.g. Africa/Cairo), the temporal lands on
a non-zero field value and matching from zero could advance an
entire period too far, skipping the calendar day.

Search from the actual field value in the new period instead,
falling back to zero only when no bit matches in that period.

See gh-36865

Signed-off-by: arno <me@zmovo.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 10:38:17 +02:00
Juergen Hoeller 2555655ccf Fix concurrency issue against shared cookie field in setLocaleContext
Closes gh-36869

(cherry picked from commit 2e653246b5)
2026-06-03 23:10:36 +02:00
Brian Clozel ecfa498ea9 Support multi-line comments in Server Sent Events
Prior to this commit, comments sent with Server Sent Events could break
the wire format when sent over the network when comments contained line
breaks.
While comments are mainly used for sending keepalive messages, they can
also be used for sending debug data. This commit ensures that line
breaks are properly handled in comments.

Fixes gh-36866
2026-06-03 11:22:49 +02:00
Juergen Hoeller e2646fe324 Fix applicability note on setAutoGrowCollectionLimit
Closes gh-36863

(cherry picked from commit ecc847c493)
2026-06-02 17:38:09 +02:00
Sam Brannen a22818564b Update antora-extensions to 1.14.12
Closes gh-36851

(cherry picked from commit 6985d00fce)
2026-05-28 11:00:21 +02:00
Juergen Hoeller c37ba027e7 Upgrade to Netty 4.1.134 2026-05-27 16:53:44 +02:00
Juergen Hoeller 2dd550d80f Force initialization of configuration class in mainline thread
Closes gh-36844

(cherry picked from commit af2b96192d)
2026-05-27 16:52:15 +02:00
Juergen Hoeller 9ca396e424 Remove scanned class only when conflicting with imported class
Closes gh-36835

(cherry picked from commit 121c0ac285)
2026-05-27 16:52:11 +02:00
Juergen Hoeller 2eb0ba3843 Fix MethodParameter nestingLevel documentation
Closes gh-36826

(cherry picked from commit 3e585830d7)
2026-05-27 16:52:07 +02:00
Sam Brannen cc48200b65 Upgrade Antora dependencies
(cherry picked from commit b95caa8331)
2026-05-27 12:17:18 +02:00
Sam Brannen 44150f2523 Pin Node.js version to 24.15.0
Prior to this commit, the `antora` Gradle task silently failed to build
the reference documentation, since Antora uses the latest LTS release
for Node.js by default, and the latest LTS apparently does not work for
us.

(cherry picked from commit 7651d5841f)
2026-05-27 12:05:48 +02:00
Sam Brannen a0a3fe41f6 Polish contribution
See gh-36833

(cherry picked from commit 6e122d3aaa)
2026-05-26 16:45:16 +02:00
seonwoo_jung de18f74c53 Expose ClassLoader from DefaultDeserializer
Add a public accessor for the ClassLoader configured on a
DefaultDeserializer instance so that callers no longer need to read the
private field via reflection in order to forward it to a
ConfigurableObjectInputStream subclass.

See gh-36827
Closes gh-36833

Signed-off-by: seonwoo_jung <laborlawseon@kap.kr>
(cherry picked from commit f7be796c1c)
2026-05-26 16:45:16 +02:00
dependabot[bot] 89ecaea937 Upgrade fast-xml-parser to 5.7.0
Closes gh-36691

(cherry picked from commit ac24766510)
2026-05-20 16:54:45 +02:00
Juergen Hoeller 444877a475 Polishing
(cherry picked from commit 8fe1de4595)
2026-05-13 19:57:29 +02:00
Juergen Hoeller 57b62dd73a Restrict SpringVersion.getVersion() to "major.minor.patch" format
Closes gh-36785

(cherry picked from commit c048074436)
2026-05-12 16:25:05 +02:00
Yanming Zhou 5f661f1b64 Fix typos for validateExistingTransaction
Closes gh-36767

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>

(cherry picked from commit cfb8dc6cc8)
2026-05-09 16:41:51 +02:00
Juergen Hoeller b0137977d8 Upgrade to Netty 4.1.133 2026-05-08 16:11:11 +02:00
Juergen Hoeller 425ce8625a Consistently expose map key quotes
Closes gh-36765

(cherry picked from commit d3152c11c7)
2026-05-08 16:10:16 +02:00
Juergen Hoeller 85c578b929 Avoid ResolvableType#forType contention for implicit cache cleanup
Closes gh-36745

(cherry picked from commit 856e1d5dc8)
2026-05-08 16:10:02 +02:00
Sam Brannen cf727bd7c8 Fix error message for invalid regex in SpEL
Closes gh-36756

(cherry picked from commit 987d6cca6d)
2026-05-06 13:55:18 +02:00
shenjianeng e8f08b4158 Refactor regex pattern caching using computeIfAbsent
Closes gh-36755

Signed-off-by: shenjianeng <ishenjianeng@qq.com>

(cherry picked from commit ec21dc0f91)
2026-05-06 13:55:03 +02:00
Brian Clozel c6b485c31d Do not warn against Root Servlet context location
Closes gh-36693
2026-05-05 11:54:02 +02:00
rstoyanchev b8ddd2c690 Avoid race in InMemoryWebSession
Closes gh-36742
2026-05-01 15:23:59 +01:00
rstoyanchev a42a6e0c6a Switch to JdkIdGenerator in AbstractWebSocketSession
Closes gh-36740
2026-05-01 14:23:00 +01:00
Brian Clozel 8a93a88962 Fix parsing failure for MIME types with quoted pairs
Prior to this commit, MIME types with parameter values that contain a
quoted pair would sometimes fail and parse an incomplete parameter
value.

This commit ensures that the quoted section of the parameter value is
correctly handled.

Fixes gh-36730
2026-04-30 16:26:12 +02:00
Juergen Hoeller fdcf4d50f0 Consistent wrapping of BeanCreationExceptions from instance suppliers
Closes gh-36725

(cherry picked from commit 08c5280843)
2026-04-30 14:50:04 +02:00
Juergen Hoeller 3c023114fb Polishing
(cherry picked from commit cd5fee5347)
2026-04-29 22:03:04 +02:00
Juergen Hoeller 8b5cbb7496 Detect custom deserialized NullValue instances
Closes gh-36727

(cherry picked from commit 916cb64581)
2026-04-29 22:02:13 +02:00
Brian Clozel a58fdeaf3f Fix PartGenerator token request while creating tmp file
Prior to this commit, the `PartGenerator` would allow requesting
additional part tokens while in the `CreateFileState`. This is invalid
as any new token emitted would be rejected and would fail the entire
process.
This would only happen if the tmp file creation is slow enough for a new
token to be parsed and emitted.

This commit ensures that no new part token is requested while creating
the temporary file.
This change also fixes lifecycle issues and ensures that buffer
resources are cleaned in case of errors.

Fixes gh-36694
2026-04-28 23:30:01 +02:00
Sigurd Gerke e4bfdfa229 Fix a regression on value class parameter handling
This commit fixes a regression introduced by gh-36449 for
nullable value class with an non-null value.

Closes gh-36720
Signed-off-by: Sigurd Gerke <sigurd.gerke@onedata.de>
2026-04-28 11:08:06 +02:00
Brian Clozel 46867fad81 Avoid cache collisions in CachingResourceResolver
Prior to this commit, there could be cache collisions in the
`CachingResourceResolver` because the cache key generation was
incomplete. This commit expands the cache key generation to avoid such
cases.

Fixes gh-36713
2026-04-28 09:30:39 +02:00