NextStack

spring-boot v4.2.0-RC2

minor PublishedNov 5, 2026 Sourcespring-projects/spring-boot

spring-boot v4.2.0-RC2

:star: New Features

  • Remove LDAP SSL reload support #52365
  • Add support for X-Forwarded-Prefix with Reactor Netty #52316

:lady_beetle: Bug Fixes

  • Setting management.observations.conventions to open-telemetry enables neither semantic convention #52619
  • PushGatewayTaskScheduler does not correctly shutdown task scheduler when context is closed #52591
  • ClearCachesApplicationListener does not find inherited clearCache() methods #52589
  • MongoTransactionManager created by BatchDataMongoAutoConfiguration is not customized by TransactionManagerCustomizers #52572
  • Configuration processor does not handle known types when they are fully-qualified #52571
  • Invalid AMQP Rabbit host is reported with the wrong value #52568
  • Avoid premature overflow when converting durations to microseconds #52561
  • Binding a value from a config tree fails after a collection of the same element type has been bound from the same config tree #52559
  • JsonWriter writes invalid JSON when usingPairs is used with a named member #52549
  • Logback GELF structured logging writes a null short_message when the log message is null #52547
  • Auto-configured KafkaTransactionManager is not customized by TransactionManagerCustomizers #52542
  • Custom layers in the Gradle plugin include excluded content instead of excluding it #52540
  • RabbitMQ addresses without a port use the AMQP port when SSL is enabled #52538
  • BasicJsonParser does not decode \b, \f, \n, \r, \t and \uXXXX escape sequences #52534
  • NestedJarFile.getComment() fails with an EOFException when the jar has no comment #52513
  • Plain text thread dump reports threads in Object.wait() as parking on Java 19+ #52511
  • When using both spring-boot-amqp-rabbitmq and spring-boot-rabbitmq health information from the latter is lost #52506
  • JSON parse failures no longer produce DockerOutputParseExceptions #52500
  • ECS structured logging writes empty service and service.node objects #52497
  • ConfigurationMetadataAnnotationProcessor produces non-repeatable output if multiple endpoints share the same ID #52494
  • Graceful shutdown does not wait for active requests after a restart of Tomcat or Jetty #52490
  • RabbitMQ uses the wrong port by default when an SSL bundle is configured #52488
  • Auto-configured R2dbcTransactionManager is not customized by TransactionManagerCustomizers #52485
  • JsonWriter writes NaN and infinite values as invalid JSON #52483
  • ZipEndOfCentralDirectoryRecord finds the record signature inside the zip comment #52481
  • LLdap Docker Compose support fails to connect when LLDAP_LDAP_USER_DN is configured #52475
  • ZipContent.Entry hasNameStartingWith ignores the offset of virtualized nested directory names #52464
  • ZipContent cannot open a zip with data after the end of central directory record #52461
  • ZipContent reads the zip comment from the wrong position when the archive has prefixed data #52459
  • Root logger configuration cannot be retrieved and has no configured level with Log4j2 #52455
  • Docker Compose OTLP integration requires gRPC and HTTP ports to be exposed when only HTTP is used #52451
  • Spring Batch JDBC auto-configuration connects to the database on startup to detect its type, with no way to configure it #52449
  • OnAvailableEndpointCondition caches retain closed application contexts through their Environment #52447
  • DataSourceTransactionManagerAutoConfiguration uses an old and no-longer-supported property to control exception translation #52445
  • Tomcat’s new ‘maxLocaleCount’ property cannot be easily configured #52443
  • DevTools leaks a File Watcher thread for every failed restart #52441
  • SSL bundle ciphers and enabled protocols are sometimes silently ignored when the underlying component does not support their configuration #52438
  • AMQP 1.0 should not set any credential to use ANONYMOUS by default #52435
  • Default RabbitMQ AMQP 1.0 port to 5671 when an SSL bundle is configured #52432
  • Hikari does not register its own MBeans when lazy connection fetching is used with JMX enabled #52426
  • SSL bundle ciphers and enabled protocols are ignored by RabbitMQ clients #52416
  • SSL bundle ciphers and enabled protocols are ignored by Kafka clients #52413
  • Health endpoint fails with an internal error for a path with an unknown intermediate segment #52411
  • Servlet application fails to start when both JWT and opaque token resource server properties are configured #52409
  • Runners can be invoked after the application context has closed during startup #52408
  • Binding @ConfigurationProperties beans concurrently can corrupt BoundConfigurationProperties and fail the bind #52406
  • Auto-configured JavaMailSender does not apply SSL bundle ciphers or enabled protocols #52404
  • Class path root cannot be resolved in executable jars after #52246 #52402
  • Kotlin Serialization does not back off when JSON-B is the only JSON converter #52389
  • Matrix parameters distort the values passed to a match all remaining selector when using WebMvc or WebFlux #52378
  • Server name SSL bundles with upper-case server names are not used with Netty #52364
  • Config data locations with brackets in their path are not loaded correctly #52360
  • Closing the context can hang when Hikari pool suspension is enabled #52359
  • OriginTrackedPropertiesLoader drops the line following a comment that ends with a backslash #52357
  • Closing a child context stops the keep-alive thread #52344
  • MimeMappings copies of DEFAULT are empty and equals is asymmetric #52342
  • StringHttpMessageConverter cannot be overridden with an HTTP message converters customizer #52336
  • ConfigurationPropertyName incorrectly accepts an opening square bracket at the end of a name #52334
  • Directories created by jarmode tools extract make Docker layers non-reproducible #52330
  • Lettuce cluster refresh properties are ignored when the cluster is not configured using spring.data.redis.cluster properties #52328
  • BasicJsonParser mishandles braces within string values #52326
  • MessageSourceMessageInterpolator mishandles unbalanced closing braces #52324
  • BasicJsonParser does not ignore whitespace around the elements of a list #52318
  • ZipContent does not handle nested directory names with multi-byte characters #52315
  • RabbitMQ AMQP 1.0 should not set an empty exchange by default #52305
  • spring.data.redis.database is ignored when configuring master/replica nodes #52189

:notebook_with_decorative_cover: Documentation

  • Document how to customize the starter parent’s repackage execution and main class #52556
  • Fix typos and broken references in gRPC documentation #52543
  • Table of auto-configured ReactiveHealthIndicators does not list the R2DBC indicator #52424
  • Metadata for some health indicator enabled properties is missing #52422
  • Document that test clients are not observed #52418
  • Fix stale configuration metadata hints #52386
  • Fix broken xref in testing documentation #52384

:hammer: Dependency Upgrades

:heart: Contributors

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

@CCCLL, @Moaziz667, @RamiDarras, @Ridzzz0Alam, @ShakilUrRehman21, @Tanishq-Choudhary, @b84330808, @beyondwin, @challa, @dalerazimov, @noojung, @quaff, @raunakpandey1, and @zhoubiao188


Source spring-projects/spring-boot · v4.2.0-RC2 · 2026-11-05 · upstream release

Mirrored verbatim for indexing. All rights belong to the upstream project.

Release notes are published by the upstream project and mirrored here for indexing. All rights belong to their authors.