Commit Graph
1467 Commits
Author SHA1 Message Date
Stéphane Nicoll 9be97e6b81 Merge branch '4.1.x'
Closes gh-52091
2026-10-07 16:54:34 +02:00
Stéphane Nicoll f825d04234 Merge branch '4.0.x' into 4.1.x
Closes gh-52090
2026-10-07 16:54:25 +02:00
Tim te Beek a5e6f1bf7b Fix assertions whose result was ignored
Several tests called AssertJ's assertThat without chaining an assertion,
or chained withFailMessage after the assertion had already run, so they
verified nothing. Found with OpenRewrite's FindIgnoredCheckReturnValue.

See gh-52045

Signed-off-by: Tim te Beek <tim@moderne.io>
2026-10-07 16:47:12 +02:00
Stéphane Nicoll ab09d113fe Merge branch '4.1.x'
Closes gh-52087
2026-10-07 16:07:28 +02:00
Stéphane Nicoll 5508957eca Polish "Zero-pad nanos in gRPC service config durations"
Use the short "<seconds>s" format when nanos are equal to 0. This
prevents extra padding for the most frequent use case.

See gh-51957
2026-10-07 16:04:17 +02:00
Iain 6bba9fdef6 Zero-pad nanos in gRPC service config durations
See gh-51957

Signed-off-by: Iain <iain1970@protonmail.com>
2026-10-07 15:49:37 +02:00
Stéphane Nicoll 8b89b0e40c Merge branch '4.1.x'
Closes gh-52085
2026-10-07 15:33:26 +02:00
Stéphane Nicoll af52cd87ff Merge branch '4.0.x' into 4.1.x
Closes gh-52084
2026-10-07 15:33:18 +02:00
Stéphane Nicoll eb0887085e Polish "Encode credentials in Docker Compose MongoDB connection string"
See gh-51939
2026-10-07 15:31:19 +02:00
lavinhoque33 64b6c98beb Encode credentials in Docker Compose MongoDB connection string
MongoDockerComposeConnectionDetailsFactory built the connection string
by appending MONGO_INITDB_ROOT_USERNAME and MONGO_INITDB_ROOT_PASSWORD
without encoding them. The mongo image accepts any password, but a
value containing a reserved character such as '@', ':' or '/' produced
an invalid connection string and the application failed to start.

Percent-encode the username and password, as
PropertiesMongoConnectionDetails already does. Spaces are encoded as
%20 because the MongoDB driver does not decode '+' to a space.

See gh-51939

Signed-off-by: lavinhoque33 <caspianprince33@yahoo.com>
2026-10-07 15:14:14 +02:00
Andy Wilkinson d4909e53c5 Add reactive multipart defaults with Framework's new defaults
See gh-51975
2026-10-06 15:56:10 +01:00
Stéphane Nicoll 9fd645d792 Upgrade to Tomcat 11.0.26
Closes gh-52032
2026-10-06 15:09:56 +02:00
Stéphane Nicoll e0189c5355 Upgrade to Tomcat 11.0.26
Closes gh-52002
2026-10-06 15:05:16 +02:00
Stéphane Nicoll 77c794e4f1 Merge branch '4.1.x'
Closes gh-51983
2026-10-06 11:05:53 +02:00
Stéphane Nicoll ddd0c3a7b2 Merge branch '4.0.x' into 4.1.x
Closes gh-51982
2026-10-06 11:05:46 +02:00
Stéphane Nicoll 372bd7cb09 Polish "Apply Jersey endpoint Jackson 2 mapper consistently"
See gh-51937
2026-10-06 11:03:39 +02:00
Kristoffer Larsen Hopland 03b584c261 Apply Jersey endpoint Jackson 2 mapper consistently
See gh-51937

Signed-off-by: Kristoffer Larsen Hopland <24739853+khopland@users.noreply.github.com>
2026-10-06 10:47:27 +02:00
Andy Wilkinson f6142c9f47 Merge branch '4.1.x'
Closes gh-51934
2026-10-02 18:22:28 +01:00
Andy Wilkinson 1958b39214 Use new isEnabled methods when testing CBOR and XML feature config
Closes gh-47774
2026-10-02 17:59:02 +01:00
Phillip Webb ab8d5266fb Merge branch '4.1.x'
Closes gh-51898
2026-09-28 14:20:27 -07:00
Phillip Webb a5bc294685 Merge branch '4.0.x' into 4.1.x
Closes gh-51897
2026-09-28 14:20:12 -07:00
Phillip Webb 7a871ff117 Polish 'Use instanceof pattern matching to avoid an explicit cast'
See gh-51896
2026-09-28 14:18:55 -07:00
Tran Ngoc Nhan 68c321499a Use instanceof pattern matching to avoid an explicit cast
See gh-51896

Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>
2026-09-28 14:18:41 -07:00
Stéphane Nicoll 5f790ed584 Merge branch '4.1.x'
Closes gh-51891
2026-09-28 13:16:42 +02:00
Stéphane Nicoll 3af085d914 Merge branch '4.0.x' into 4.1.x
Closes gh-51890
2026-09-28 13:16:33 +02:00
Stéphane Nicoll e3805a9601 Polish contribution
See gh-51872
2026-09-28 13:08:02 +02:00
Kosuke Yanagihara f0987da4bb Back off DevTools' JDBC and R2DBC support when modules are missing
DevToolsDataSourceAutoConfiguration and DevToolsR2dbcAutoConfiguration
were only guarded by classes from the JDK and r2dbc-spi respectively.
When a single user-defined DataSource or ConnectionFactory bean was
present, their conditions went on to reference classes from
spring-boot-jdbc or spring-boot-r2dbc. Both are optional dependencies
of spring-boot-devtools, so startup failed with a NoClassDefFoundError
when they were absent.

This commit adds a class from each module to the class conditions.
Without the modules the conditions could never match, so this only
turns the failure into a back-off.

See gh-51872

Signed-off-by: Kosuke Yanagihara <11373191+ksky8864@users.noreply.github.com>
2026-09-28 12:44:47 +02:00
Stéphane Nicoll e8d93a7670 Merge branch '4.1.x'
Closes gh-51889
2026-09-28 12:42:38 +02:00
Stéphane Nicoll 708a58c2cf Merge branch '4.0.x' into 4.1.x
Closes gh-51888
2026-09-28 12:42:30 +02:00
ohchanKyu 5e2730eb01 Recognize MARIADB_ALLOW_EMPTY_ROOT_PASSWORD in Docker Compose support
MariaDbEnvironment checked for MARIADB_ALLOW_EMPTY_PASSWORD, which the
official MariaDB image does not support. The documented variable is
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD. As a result, a compose service that
used the documented variable started fine but Spring Boot failed with
"No MariaDB password found".

See gh-51870

Signed-off-by: ohchanKyu <okc0202@naver.com>
2026-09-28 12:41:32 +02:00
Stéphane Nicoll 9e334ee02c Merge branch '4.1.x'
Closes gh-51887
2026-09-28 11:23:22 +02:00
Stéphane Nicoll aecce0a0a5 Merge branch '4.0.x' into 4.1.x
Closes gh-51886
2026-09-28 11:23:16 +02:00
Hyunwoo Jung 032ed4eabf Fix actuator endpoint property names in Javadoc
See gh-51869

Signed-off-by: Hyunwoo Jung <hyunwoojung@kakao.com>
2026-09-28 11:21:22 +02:00
Stéphane Nicoll a249310e34 Polish "Reuse cached PathPattern"
See gh-51852
2026-09-28 11:17:41 +02:00
crapxxi 5cf401758d Reuse cached PathPattern
See gh-51852

Signed-off-by: crapxxi <aibynkairatov@gmail.com>
2026-09-28 11:09:26 +02:00
Stéphane Nicoll 593344ccc1 Merge branch '4.1.x'
Closes gh-51885
2026-09-28 11:07:19 +02:00
Stéphane Nicoll dda41fef36 Merge branch '4.0.x' into 4.1.x
Closes gh-51884
2026-09-28 11:07:14 +02:00
Tran Ngoc Nhan 3fe8d42485 Remove unnecessary cast to null
See gh-51850

Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>
2026-09-28 10:54:13 +02:00
Stéphane Nicoll 0fe97e3da2 Polish "Add property to enable Caffeine async cache mode"
Restructured to spring.cache.caffeine.cache-mode with an enum that can
be "native" or "async". Also clarified in the documentation the scope
of the property and that custom caches are not affected.

See gh-51844
2026-09-28 10:45:01 +02:00
seonghun lee 4e4cdc3fda Add property to enable Caffeine async cache mode
CaffeineCacheManager supports asynchronous caches backed by Caffeine's
AsyncCache via setAsyncCacheMode, which adds support for Cache.retrieve.

Add a spring.cache.caffeine.async property (default false) wired to
CaffeineCacheManager.setAsyncCacheMode in CaffeineCacheConfiguration.

See gh-51844

Signed-off-by: seonghun lee <harrisleesh@gmail.com>
2026-09-28 10:12:51 +02:00
Stéphane Nicoll 0eed305ce0 Merge branch '4.1.x'
Closes gh-51878
2026-09-28 10:11:22 +02:00
Stéphane Nicoll a2a08124f1 Merge branch '4.0.x' into 4.1.x
Closes gh-51877
2026-09-28 10:11:10 +02:00
Stéphane Nicoll a55d5985fc Polish contribution
See gh-51842
2026-09-28 10:06:38 +02:00
Dmitry Sulman ea72da3604 Apply auto-configured Kotlinx Serialization JSON codec customization
See gh-51842

Signed-off-by: Dmitry Sulman <dmitry.sulman@gmail.com>
2026-09-28 10:05:53 +02:00
Stéphane Nicoll 097319ecf9 Polish "Check resource existence once when looking for deleted files"
See gh-51841
2026-09-28 09:40:24 +02:00
DongHoon Lee 5c2ad14f50 Check resource existence once when looking for deleted files
ClassLoaderFilesResourcePatternResolver.isDeleted() calls
resource.exists() and resource.getURI() inside the loop over the
uploaded files, so both are repeated once per DELETED entry although
neither depends on the entry. Every resource lookup made while the
application context is being built goes through this method - about
1300 times per restart in the application I measured - so a session
that has accumulated 100 deleted files performs around 130 000 file
system lookups where 1300 are enough.

This commit hoists both calls out of the loop: the resource is
inspected at most once per call, on the first DELETED entry, and the
URI comparison then uses the cached value. The method still returns on
the first match and still reports a failing getURI() as an
IllegalStateException, so behaviour is unchanged.

The loop now walks the per-directory entry sets, which is what
ClassLoaderFiles.addAll() and RestartServer already do, instead of the
flattened view added in gh-46289. That view is wrapped in
Collections.unmodifiableSet(), whose iterator is shared JDK code; in a
running application its delegate calls are megamorphic and C2 stops
inlining them, which made restarts with many accumulated files and no
deletions slower than before gh-46289. isDeleted() returns a boolean,
so the visiting order of the entries cannot change its result.

Measured on a Spring Boot application driven through the remote restart
path (restart request to ApplicationReadyEvent), 12 JVMs per variant
and 20 restarts per JVM, medians:

  100 source directories, 10 000 entries, 10 deleted:  278 ms -> 200 ms
  100 source directories, 10 000 entries, 100 deleted: 891 ms -> 201 ms
  100 source directories, 10 000 entries, 500 deleted: 3536 ms -> 200 ms
  100 source directories, 50 000 entries, none deleted: 431 ms -> 341 ms
  100 source directories, 10 000 entries, none deleted: 202 ms -> 192 ms
  no uploaded files:                                   150 ms -> 148 ms

See gh-51841

Signed-off-by: DongHoon Lee <dhl1924@naver.com>
2026-09-28 09:26:41 +02:00
Phillip Webb 789e06631b Merge branch '4.1.x'
Closes gh-51866
2026-09-25 15:35:31 -07:00
Phillip Webb caec174dee Merge branch '4.0.x' into 4.1.x
Closes gh-51865
2026-09-25 15:35:16 -07:00
itaekyung a0df183115 Enable nullability checking of spring-boot-jersey's tests
See gh-51861

Signed-off-by: itaekyung <taeyun1411@gmail.com>
2026-09-25 15:32:57 -07:00
Phillip Webb cb1f5440bb Merge branch '4.1.x'
Closes gh-51829
2026-09-17 17:01:30 -07:00