⭐ New Features
- JMSTemplate setDeliveryPersistent(boolean deliveryPersistent) javadoc incorrect [SPR-3983] #8663
- Improve the performance of BeanInfo lookups in CachedIntrospectionResults [SPR-9014] #13653
- CronTriggerFactoryBean doesn't allow calendar name and description to be specified [SPR-9771] #14405
- Provide access to SimpleTriggerFactoryBean property startTime [SPR-10940] #15568
- better method identification in AnnotationTransactionAttributeSource logging [SPR-11267] #15892
- Add patch() to MockMvcRequestBuilders [SPR-11299] #15923
- Optimize lookup of field errors in AbstractBindingResult [SPR-11304] #15928
- Provide a mechanism for adding ApplicationContextInitializers to DispatcherServlet's ApplicationContext [SPR-11314] #15938
- Add control of what HTTP Request method AbstractFileResolvingResource methods exists, lastModified and lastModified uses on http url resources [SPR-11320] #15944
- Bootstrapping the EntityManagerFactory should log the name of the persistence unit being used [SPR-11333] #15957
- Reduce footprint due to RootBeanDefinition [SPR-11343] #15967
- Unnecessary class loading in AspectJ RuntimeTestWalker [SPR-11344] #15968
- Provide alternative RestTemplate constructor to avoid default MessageConverter creation [SPR-11351] #15976
- Compatibility with JOpt 4.6 [SPR-11359] #15985
🪲 Bug Fixes
- Fix
@Bean
meta-annotation detection when using ASM [SPR-10488] #15121 - theme resolution fails with "IllegalArgumentException: Basename must not be empty" when an empty theme value is provided via request url [SPR-11128] #15754
- context:component-scan element says error in the mvc-cofig.xml [SPR-11221] #15846
- Backward compatibility of BeanUtils.copyProperties broken for copying wrapped types to primitive types (and vice versa) on 3.2.6 and 4.0.0 [SPR-11231] #15856
- Regression: InjectionMetadata cache needs to handle different bean classes per bean name [SPR-11246] #15871
- XMLEventStreamWriter fails to handle writeEmptyElement() followed by writeAttribute() [SPR-11254] #15879
- EhCacheFactoryBean should not call set(Sampled)StatisticsEnabled on EhCache 2.7/2.8 [SPR-11265] #15890
@Async
with cglib based proxy causes memory leak in heap [SPR-11275] #15899@Async
with cglib based proxy causes memory leak in permgen [SPR-11276] #15900- Full Quartz 2.2 compatibility, including LocalDataSourceJobStore [SPR-11284] #15908
- StandardEnvironment's system environment access produces warning with stacktrace on WebSphere [SPR-11297] #15921
- Bad type comparison in ReflectionHelper.getTypeDifferenceWeight(List paramTypes, List argTypes) [SPR-11306] #15930
- ServletWebRequest.checkNotModified() methods should treat HEAD identically to GET [SPR-11317] #15941
- Wrong assert in AspectJAwareAdvisorAutoProxyCreator.setAspectJAdvisorFactory() [SPR-11330] #15954
- ServletTestExecutionListener is not enabled by default in abstract base test classes [SPR-11340] #15964
- PlaceholderConfigurerSupport.doProcessProperties() loses stack trace on exception [SPR-11346] #15970
- Handle NoClassDefFoundError for TestExecutionListeners consistently in the TestContext framework [SPR-11347] #15971
- AbstractAnnotationConfigDispatcherServletInitializer does not allow consolidating all configuration into the "root" context [SPR-11357] #15982
- BeanWrapper fails in case of read/write method mismatch (e.g. EhCacheFactoryBean.setMemoryStoreEvictionPolicy) [SPR-11361] #15987
- SchedulerAccessor 'globalJobListeners' and 'globalTriggerListeners' not working with 2.0.x and 2.1.x [SPR-11362] #15988
- CompoundClassLoader.loadClass is trying to load some framework class and comsuming all web container threads. [SPR-11499] #16124
- StatementCreatorUtils introduces java 1.6 dependency [SPR-11349] #15974
- NoClassDefFoundError with Spring 3.2.7.BUILD-SNAPSHOT on WebSphere 6.1 [SPR-11341] #15965
- Downgrade accidental use of Java 1.6 APIs [SPR-11321] #15945
- spring-jdbc-3.2.6.RELEASE doesn't support JDK 5. [SPR-11313] #15937
@Enable
registrars invoked with subclass for annotation placed on superclass (3.2.x) [SPR-11251] #15876