⭐ New Features
- Overriding bean definition message does not take parent definition into account [SPR-9671] #14305
- CollectionToCollectionConverter.convert() improvement for untyped collections [SPR-11479] #16104
- Treat empty log config refresh interval as infinite interval in Log4jWebConfigurer [SPR-11507] #16132
- Improve exception message for failed property access in SpEL [SPR-11535] #16160
- ResizableByteArrayOutputStream and ByteArrayOutputStream capacities [SPR-11594] #16218
- MarshallingView should avoid temporary byte array when copying to response [SPR-11646] #16269
- Fix/optimize handling of
@Bean
method override regression with return type narrowing on JDK 8 [SPR-11718] #16340 - Metadata reading should never use ASM for java.* and javax.* types (in particular on JDK 8) [SPR-11719] #16341
- AbstractAdvisingBeanPostProcessor.isEligible(…) does not consider proxy interfaces [SPR-11725] #16347
- StandardServletMultipartResolver should support lazy resolution along the lines of CommonsMultipartResolver [SPR-11730] #16352
- AbstractMarshaller should avoid SAXSource workaround when processExternalEntities=true [SPR-11737] #16359
- Improve prefix detection in StringUtils.cleanPath [SPR-11793] #16414
- ConfigurationClassParser.invokeAwareMethods(…) does not consider EnvironmentAware [SPR-11744] #16366
- Basic Java 8 bytecode compatibility for Spring 3.2.x through ASM 5.0.2 [SPR-11656] #16279
🪲 Bug Fixes
- Java config FactoryBean proxy causes class loader leak [SPR-9274] #13912
- Unsafe fallback pointcut construction in AspectJExpressionPointcut [SPR-9335] #13973
- Servlet 3 multipart parameter binding does not work on Weblogic12c (12.1.2.0) [SPR-11074] #15700
- double evaluation of method arguments in SpEL [SPR-11445] #16071
- XmlValidationModeDetector: length of a string is always greater than index of any of its characters [SPR-11477] #16102
- SpringBeanELResolver - setValue throws PropertyNotWritableException [SPR-11502] #16127
- Unable to retrieve FlashMap when target parameters are encoded [SPR-11504] #16129
- Default KeyGenerator doesn't work for methods with arguments of array types [SPR-11505] #16130
- Spring MVC Test can fail to obtain async result due to timing issue [SPR-11516] #16141
- ConstructorResolver will generate NPE in case of no factory method found when there are explicit args [SPR-11517] #16142
- Memory leak when using annotation based auto-wiring in child context [SPR-11520] #16145
- Providing unique names to prototype inner beans causes excessive memory and CPU use [SPR-11545] #16170
- BufferedImageHttpMessageConverter fails if JAI is installed [SPR-11581] #16205
- Log Forging in DispatcherServlet via requestURI [SPR-11591] #16215
- AbstractApplicationEventMulticaster can leak classes [SPR-11606] #16229
- Referencing static field of class that extends Map in expression language causes class cast exception [SPR-11609] #16232
- Servlet mocks are not reinjected into test instance between TestNG test methods [SPR-11626] #16249
- ResourceHttpRequestHandler not closing Resource's input stream [SPR-11644] #16267
- UrlResource.exists() does not properly detect JBoss vfszip resources [SPR-11676] #16299
- ConcurrentReferenceHashMap doesn't limit upper concurrency level [SPR-11720] #16342
- SpringProperties: the ClassLoader might be null, if class is loaded by the bootstrap class loader [SPR-11721] #16343
- If-Modified-Since header is parsed as HTTP-date; but IE 10 sends length [SPR-11727] #16349
- JRubyScriptUtils fails against JRuby 1.7.12 with NullPointerException in findClassNode [SPR-11747] #16369
- IdToEntityConverter throws Access Denied exception within Spring MVC application on WebSphere 8.x [SPR-11758] #16380
- Protect against security exploits via system identifier in DTD declaration [SPR-11768] #16390
- JDBC findColumn gives wrong result in case of duplicate column labels [SPR-11786] #16408
- SPR-10829: Spring JMS problem with Oracle AQ still exists if underlying DataSource is decorated [SPR-11791] #16412
- getTestExecutionListeners() doesn't detect NoClassDefFoundError within BeanInstantiationException [SPR-11804] #16424
- StringUtils.parseLocaleString: locale variant cannot contain country code [SPR-11806] #16426