⭐ New Features
- When I try to acquire MD5 using DigestUtils, java.lang.OutOfMemoryError occurs. [SPR-14427] #18998
- Avoid canonicalName call for already-seen bean name [SPR-14433] #19004
@RequestMapping
consumes/produces InvalidMediaTypeException should mention offending class & method [SPR-14452] #19021- UrlPathHelper in PathExtensionContentNegotiationStrategy should be configurable [SPR-14454] #19023
- Avoid JNDI property lookup attempts for invalid JNDI keys [SPR-14518] #19087
- Avoid repeated getParameterType calls for setNull with Oracle 12c driver [SPR-14574] #19143
- Improve performance of assertion in StompSubProtocolHandler [SPR-14624] #19191
- Protect against getParameterType cursor leak with Oracle 12c JDBC driver [SPR-14629] #19196
- Improve performance of StompCommand.getMessageType() [SPR-14636] #19203
- CommonsMultipartResolver should explicitly convert FileSizeLimitExceededException next to SizeLimitExceededException [SPR-14638] #19204
- Default async request timeout handling does not work with Jetty 9.x [SPR-14669] #19233
- Better Exception Message for JMS Jackson Converter Error [SPR-14672] #19236
- AbstractPollingMessageListenerContainer's workaround for Tibco causes performance delays during ems failover [SPR-14697] #19261
- ScriptTemplateView should check template resource [SPR-14729] #19294
🪲 Bug Fixes
- Constructor sets the source incorrectly in org.springframework.beans.PropertyValue [SPR-8337] #12985
- ConfigurationClassParser needs to load annotations through source class loader [SPR-10343] #14977
- Regression: Insert statement fails with inconsistent datatypes on Oracle 12c driver [SPR-14191] #18764
- SSE: Terminating chunk not sent using tomcat >= 8.0.35 [SPR-14444] #19014
- MethodBasedEvaluationContext.lazyLoadArguments() execution fails for empty variable arguments call [SPR-14453] #19022
- CronSequenceGenerator causes StackOverflowError with reversed range values [SPR-14462] #19031
- Ineffective synchronization in StandardTypeConverter constructor [SPR-14465] #19034
- MessageHeaderAccessor doesn't remove headers if they are null [SPR-14468] #19037
- ResourcePatternUtils.getResourcePatternResolver does not accept null arg [SPR-14500] #19069
- LinkedCaseInsensitiveMap doesn't override HashMap.clone() [SPR-14509] #19078
- Do not fail with a circular
@Import
error caused by an@ComponentScan
[SPR-14517] #19086 - StackOverflowError for advisor search against factory-bean reference to FactoryBean [SPR-14551] #19119
- ArrayIndexOutOfBoundsException in MethodBasedEvaluationContext [SPR-14554] #19122
- SockJS heartbeat is causing application send Message to fail similar to (SPR-14356) [SPR-14564] #19133
- StompSubProtocolHandler responds with ERROR (Session closed.) on DISCONNECT when using SimpleBrokerMessageHandler [SPR-14568] #19137
- Fix assertions in StompHeaderAccessor [SPR-14625] #19192
- ResolvableType for a raw type is not assignable to generic types of the same class [SPR-14648] #19214
- TypeConverterSupport does not propagate custom exceptions anymore [SPR-14661] #19225
- NPE during websocket disconnect [SPR-14703] #19268
- StringUtils.parseLocaleString(): does not parse locale string in java 7 for Serbian (Latin) [SPR-14718] #19283
- exception during websocket client close [SPR-14721] #19286
📔 Documentation
- NoHandlerFoundException is mapped to 404 twice [SPR-14598] #19167