⭐ New Features
- Enforce JDK version on CI server [SPR-10569] #15198
- Configurable JSON prefix on MappingJackson2JsonView and MappingJacksonJsonView [SPR-10567] #15196
- Small clarification to CronTrigger javadoc [SPR-10556] #15186
- AnnotationAwareOrderComparator does not work on proxied classes [SPR-10514] #15145
- Improve defaulting of media types via ContentNegotiationManager [SPR-10513] #15144
- Jaxb2Marshaller doesn't need to depend on ResourceLoaderAware and thus spring-context [SPR-10512] #15143
- No way to ask MethodReference for its private field 'name' [SPR-10422] #15055
- Make implementations of PreparedStatementSetter public, not package-private [SPR-10375] #15008
- OXM Jaxb2Unmarshaller to support non-root elements [SPR-10282] #14916
🪲 Bug Fixes
- Large number of StandardEnvironment objects are initialised during startup. Visible in the logs at DEBUG level. [SPR-10568] #15197
- Cannot instantiate bean in Spring when using annotations and when it extends generic abstract class compiled to java 1.4 byte code [SPR-10559] #15189
- BeanPropertyRowMapper underscoreName [SPR-10547] #15177
- Loading
@Import
(ChildConfig) or EnclosingConfig.ChildConfig and then ChildConfig does not load beans on ParentConfig [SPR-10546] #15176 - Lookup of beans of type fails for factory beans if type prediction is used. [SPR-10517] #15148
- AbstractAutowireCapableBeanFactory.predictBeanType returns parent type instead of class="" value [SPR-10507] #15139
- Deadlocks with DeferredResult timeout handling on Tomcat [SPR-10485] #15118
- ServletContextResourcePatternResolver fails to resolve resources when an app is using a foo#bar.war filename [SPR-10471] #15104
- cannot delete file once resttemplate has done a multipart postforentity with the said file [SPR-10460] #15093
- NPE in the ContextLoader#customizeContext on building Assert.isAssignable message [SPR-10449] #15082
- Sporadic deadlocks while using servlet scoped beans from another thread. [SPR-10436] #15069
- A URI with URL path parameters causes IllegalStateException [SPR-10427] #15060
- PropertyEditor registered through
@ControllerAdvice
will not be superseded by local one. [SPR-10419] #15052 - Request
@RequestParam
not enforced with empty values [SPR-10402] #15035 - spring3.2 matrix variable url match problem [SPR-10398] #15031
- PooledConnection has already been closed exception with Hibernate 4.2 [SPR-10395] #15028
- Typo in Code Example [SPR-10394] #15027
- ReflectiveMethodResolver causes UnsupportedOperationException [SPR-10392] #15025
- Fix errors in Spring MVC Test server-side code examples [SPR-10389] #15022
- Remove default value of LifecycleGroup.lifecycleBeans [SPR-10388] #15021
- Ant Pattern Matching throws IllegalStateException for multiple RequestMapping values [SPR-10386] #15019
- JdbcTemplate cannot set null parameter with Oracle driver [SPR-10385] #15018
- Form tag prepending context/servlet path breaks use for portlets [SPR-10382] #15015
- Type detection fails for child bean if parent bean has been resolved before [SPR-10374] #15007
- JavaDoc generation reports warnings [SPR-10373] #15006
- Unnecessary check in PatternsRequestCondition.getMatchingPattern [SPR-10504] #14998