⭐ New Features
- Base64Utils: Support URL and filename safe alphabet (RFC 4648) [SPR-13784] #22188
- Provide an easy way to populate a request in MockMvc for form input scenarios [SPR-13801] #18374
- Defensive error reporting when ConfigurationClassParser introspects declared methods via StandardAnnotationMetadata [SPR-13791] #18364
- ReflectionUtils cache uses up a fairly big chunk of heap even [SPR-13783] #18357
- Allow for setting TTL on a response sent by
@JmsListener
[SPR-13774] #18348 - Support for Microsoft SQL Server driver version 4 and above [SPR-13772] #18346
- AbstractRequestLoggingFilter with startAsync: unwrap request to find ContentCachingRequestWrapper [SPR-13764] #18338
- Configure view controllers with the ApplicationContext [SPR-13762] #18335
- BeanFactoryAnnotationUtils.qualifiedBeanOfType should not instantiate all beans of given type before checking qualifier [SPR-13741] #18314
- Consistent bean type checking for endpoint handlers [SPR-13725] #18298
- Add JSR 310 Period and Duration Converters [SPR-13721] #18294
- Cache detected factory methods in ObjectToObjectConverter [SPR-13703] #18278
@ManagedOperationParameter
not marked with@Target
/@Retention
/@Documented
/@Repeatable
[SPR-13700] #18275- Allow SpelCompiler to compile MapAccessor expressions [SPR-13638] #18215
- Conversion support for java.time.YearMonth (as well as MonthDay) [SPR-13518] #18095
- Allow the ManagedResource/Attribute/Metric/Operation to be placed on interface [SPR-13138] #17729
- Allow setting custom ClassPathBeanDefinitionScanner on AnnotationConfigWebApplicationContext [SPR-9324] #13962
- Add conversion support for Joda Duration and Period [SPR-6706] #11372
🪲 Bug Fixes
- java.lang.NullPointerException at org.springframework.test.web.servlet.result.MockMvcResultHandlers.(MockMvcResultHandlers.java:44) [SPR-13802] #18375
- VersionResourceResolver's versionStrategyMap should keep insertion order [SPR-13798] #18371
- Jdbc4SqlXmlHandler should return null as documented (instead of throwing NPE) [SPR-13782] #18356
- VerifyError when trying to compile constructor invocation with SpEL [SPR-13781] #18355
- Regression: HttpEntityMethodProcessor does not allow other Http methods than defined in the HttpMethod Enum [SPR-13776] #18350
- MessagingMessageListenerAdapter provides a BytesMessage that has already been read [SPR-13769] #18343
- Inefficient and inconsistent setAllowedOrigins collection types in AbstractSockJsService/OriginHandshakeInterceptor [SPR-13761] #18334
- allowed-origins are not resolved from properties variables [SPR-13760] #18333
- ControllerAdviceBean javadoc is inconsistent with its implementation [SPR-13759] #18332
- ResourceUrlEncodingFilter improperly encodes URLs on root page [SPR-13757] #18330
- Second call to MVC handler method with Optional parameter fails with argument type mismatch [SPR-13755] #18328
- MockHttpServletResponse.setIntHeader throws exception for 'Content-Length' header [SPR-13752] #18325
- The URL content negotiation "format" parameter values are case sensitive and only lowercase values are accepted [SPR-13747] #18320
- SubProtocolWebSocketHandler does not update lastSessionCheckTime [SPR-13745] #18318
- NoClassDefFoundError: org/joda/time/YearMonth for joda-time < 2 [SPR-13730] #18303
- CssLinkResourceTransformer is incompatible with FixedVersionStrategy VersionResourceResolver [SPR-13727] #18300
- Regression: AsyncAnnotationBeanPostProcessor fails on startup when encountering ambiguous TaskExecutor beans [SPR-13720] #18293
- Regression: ShallowEtagHeaderFilter does not add Etag header for ResponseEntity returning methods [SPR-13717] #18290
- Regression: UriTemplate does not match when URI ends with slash [SPR-13705] #18280
- SimpAnnotationMethodMessageHandler fails when no applicationDestinationPrefixes configured or Rabbit endpoint present [SPR-13704] #18279
- SynthesizedAnnotation is not visible from class loader [SPR-13696] #18271
- Regression: Spring on WildFly causing ClassNotFoundException in ASM when deployed outside of EAR [SPR-13695] #18270
- HTTP Range requests hang on large file in nested jar [SPR-13661] #18236
- EventListenerMethodProcessor resolves classes of lazy beans causing NoClassDefFoundError [SPR-13712] #17619
- SpEL compiler creating bad byte code for some values that are added together via OpPlus [SPR-12426] #17032