⭐ New Features
- Invalid MIME-type causes a 500 error [SPR-7712] #12368
- Required annotation processing can't be skipped by using bean definition meta element [SPR-8617] #13260
- Allow read and connect timeouts and request headers to be set on SimpleHttpInvokerRequestExecutor [SPR-8615] #13258
- Allow the read and connect timeout to be set on SimpleClientHttpRequestFactory [SPR-8614] #13257
- ExposeInvocationInterceptor should always be highest precedence [SPR-8544] #13188
- Add setInstanceName and setInstanceId methods into LocalTaskExecutorThreadPool [SPR-8542] #13186
- CollectionToObjectConverter uses the first element of a collection even when the collection could be assigned to an Object [SPR-8538] #13182
- ResourceHttpRequestHandler should check for directory traversal [SPR-8515] #13160
- Type conversion not applied on
@Resource
annotation [SPR-8480] #13126 - Javadocs on CustomDateEditor misleading [SPR-7759] #12415
- ConcurrentModificationException in DefaultListableBeanFactory when using your own bean factory to register beans [SPR-7757] #12413
- improve the process of finding actual methods for servlet and portlet handlers [SPR-7703] #12359
- Reduce footprint due to BeanDefinitions [SPR-7491] #12149
- Double EL expression evaluation in JSP MessageTag [SPR-5308] #9981
🪲 Bug Fixes
- Problem using SpringBeanAutowiringInterceptor with
@Value
annotation in a Stateless Session Bean [SPR-8621] #13264 - RedirectView always sends 302s in HTTP/1.0 (default) mode [SPR-8612] #13255
- PersistenceAnnotationBeanPostProcessor does not operate on the most specific persistence annotation declaration [SPR-8594] #13238
- Can not inject primitive values from property file using
@Value
annotation into servlet [SPR-8574] #13218 - subelement in throws BeanDefinitionParsingException [SPR-8563] #13207
- Synchronisation during performance tests - TypeDescriptor [SPR-8559] #13203
- MapToMapConverter invalidly returns source map for empty maps [SPR-8554] #13198
@PathVariable
incorrect matching [SPR-8543] #13187- Backport JUnit 4 and
@Rule
execution order change to 3.0.x [SPR-8537] #13181 - ConfigurationClassPostProcessor throws IllegalStateException when its postProcessBeanDefinitionRegistry is called with different registries [SPR-8527] #13171
- org.springframework.transaction bundle is missing import of org.jboss.resource.work [SPR-8505] #13151
- Non-fatal exception thrown/logged by TypeConverterDelegate [SPR-8499] #13145
- GenericConverter specifies Set getConvertibleTypes(), but ConvertiblePair doesn't override hashCode and equals. [SPR-8459] #13105
- CachingConnectionFactory too eagerly Session.commit [SPR-8437] #13083
- Concurrency problem in CachingConnectionFactory on closing Session [SPR-8436] #13082
- By default, there is broken conversion String -> ContextResource [SPR-8383] #13030
- RmiInvocationWrapper methods must not be declared as idempotent for Weblogic cluster [SPR-8369] #13016
- Debug logging forces instantiation of scoped beans [SPR-8297] #12945
- ExceptionDepthComparator handle comparison of exact object is incorrect [SPR-8231] #12880
- Spring ORM 3_0_5 does not set the JPA timeout in milliseconds [SPR-8086] #12741
- ConcurrentModificationException at Autowired [SPR-7956] #12611
- BeanDefinitionVisitor does not actually visit factory method names [SPR-7953] #12608
- Annotation based injection into non public base classes does not work [SPR-7900] #12555
- Problem with FormattingConversionService [SPR-7875] #12532
- Accept-Charset header with '*' results in java.nio.charset.IllegalCharsetNameException [SPR-7869] #12526
- FormHttpMessageConverter.read() always ignores post data when processing request (from Tomcat) [SPR-7845] #12502
- DataBinder should be able to define a different strategy for BeanWrapperImpl how autogrowing should handle gaps in collection properties [SPR-7842] #12498
- HttpHeaders.getEtag() mangles the value [SPR-7834] #12490
- StringUtils incorrectly interprets UNIX-style hidden directories as file extensions [SPR-7828] #12484
- ConversionService broken since 3.0.4 [SPR-7816] #12472
- EhCacheManagerFactoryBean should close stream obtained from configLocation [SPR-7813] #12469
- ServletRequestDataBinder does not bind MultipartFile with HiddenHttpMethodFilter and Multipart Request [SPR-7795] #12451
- FormHttpMessageConverter does not honor the charset in the content type when writing a form and uses a wrong default charset [SPR-7789] #12445
@RequestParam
- wanting List getting List [SPR-7781] #12437- Vulnerability in LocaleChangeInterceptor [SPR-7779] #12435
- Wrong data-type resolution using custom Converter [SPR-7766] #12422
- MediaType incorrectly calls the toString() method instead of name() method causing RestTemplate on Android to fail [SPR-7729] #12385
- 304 responses should not have non-0 Content-Length [SPR-7706] #12362
- Missing package imprts in bundle org.springframework.aspects [SPR-7702] #12358
- Problem by invoking method NamedParameterJdbcTemplate.query() if parameter contains a array [SPR-7699] #12355
- NullPointerException in InjectionMetadata [SPR-7686] #12342
- AbstractBindingResult.hashCode() throws NullPointerException [SPR-7682] #12338
- Unresolved thread safety issue in AutowiredAnnotationBeanPostProcessor.AutowiredMethodElement [SPR-7635] #12291
- ThreadLocal leaking in AbstractBeanFactory and XmlBeanDefinitionReader [SPR-7441] #12099