⭐ New Features
- Documentation of AnnotationConfigApplicationContext default constructor [SPR-8577] #13221
- StringToCollectionConverter does not trim parsed collection elements [SPR-7657] #12313
- XStreamMarshaller - Add support for configuring XStream with aliases by class (type) and also defining multiple attributes for the same class. [SPR-7636] #12292
@Bean
cannot be used on static factory methods but error message does not inform of you of that [SPR-7628] #12284- add Serializer/Deserializer strategy interfaces and default implementation [SPR-7627] #12283
- SybaseMaxValueIncrementer doesn't work with non-enterprise Sybase db [SPR-7623] #12279
- Enable ability to specify interface types in Jdbc4NativeJdbcExtractor [SPR-7613] #12269
- Provide a way to use a native JDBC extractor for metadata processing in SimpleJdbcInsert [SPR-7611] #12267
- jdbc:datasource lacks 'name' attribute or related mechanism [SPR-7604] #12260
- Add ability to add to beginning of TestExecutionListener list in TestContextManager [SPR-7595] #12251
- HttpStatusCodeException should contain response body [SPR-7591] #12247
- AnnotationSessionFactoryBean postProcessConfiguration() should not be final [SPR-7581] #12237
- Make it easier to override the TableMetaDataProvider for SimpleJdbcInsert and CallMetaDataProvider for SimpleJdbcCall [SPR-7556] #12213
- Provide name of errant SQL script when EmbeddedDatabase population fails [SPR-7546] #12203
- Make UriTemplate Serializable [SPR-7541] #12198
- Allow Class-relative resource loading in GenericXmlApplicationContext [SPR-7530] #12188
- Improve log statement "not eligible for getting processed by all BeanPostProcessors" to be more informative [SPR-7524] #12182
- SpEL cannot project on an non-list collection (seems unnecessarily restrictive) [SPR-7493] #12151
- Typos, formatting issues, minor wording changes, minor fixes in code samples [SPR-7416] #12074
@Async
support in spring-aspects with AspectJ [SPR-7369] #12027
🪲 Bug Fixes
- RestTemplate API is misleading when it comes to url variable passing [SPR-7667] #12323
- SqlParameter name lower case conversion in CallMetaDataContext causes error. [SPR-7658] #12314
- 'default-merge' attribute value does not propagate to collection elements [SPR-7656] #12312
- Thread safety issue in InjectionMetaData affecting setter methods annotated with
@Resource
tags [SPR-7642] #12298 - Spring EL method resolver fails on vararg calls [SPR-7633] #12289
- SpEL: Conversion of collection method parameters fails [SPR-7631] #12287
- Major performance slowdown in AnnotationUtils.findAnnotation [SPR-7630] #12286
- NullPointerException in error path of ConstructorResolver when constructing a
@Bean
from a factory method [SPR-7629] #12285 - AbstractStaxContentHandler sets NamespaceContext on every start/end element [SPR-7621] #12277
- StaxEventContentHandler does not set Location for StartDocument event [SPR-7620] #12276
- SpEL: Resolving values from Map works different after PropertyAccessor is cached [SPR-7614] #12270
- ClassUtils.isAssignable should be commutative for wrapper and primitive types [SPR-7610] #12266
- Embedded database support in trouble shutting down Derby [SPR-7602] #12258
- View returned from
@ExceptionHandler
does not take into account response content type [SPR-7586] #12242 - PropertyPlaceholderHelper#findPlaceholderEndIndex does not work for custom placeholderPrefix [SPR-7574] #12231
- AspectJExpressionPointcut does not use the right classloader when initializing the pointcut parser [SPR-7570] #12227
- ResourceHttpRequestHandlerTests.modified() fails on Windows due to millisecond precision [SPR-7565] #12222
- Inconsistent behaviour in AbstractApplicationEventMulticaster listener caching [SPR-7563] #12220
- Changes in resource loading for 3.0.4 breaks for zipped files [SPR-7559] #12216
- JMS integration with Tibco causes deadlock due to commitIfNecessary in AbstractPollingMessageListenerContainer [SPR-7558] #12215
- MockHttpSession throws ConcurrentModificationException when removing attributes in a loop [SPR-7557] #12214
- DefaultServletHttpRequestHandler fails on Google App Engine [SPR-7553] #12210
- PropertiesLoaderSupport assumes file-based Resources [SPR-7547] #12204
- DispatcherPortlet should not throw a permanent UnavailableException when no handlermapping can be found [SPR-7542] #12199
- End user access to files in WEB-INF directory through DispatcherPortlet [SPR-7540] #12197
- EmbeddedDatabaseFactory fails to shutdown database if population fails [SPR-7536] #12193
- Possible regression in "redirect" views between Spring 3.0.2 and Spring 3.0.4 [SPR-7532] #12190
- Synchronization in AnnotationMethodHandlerAdapter [SPR-7525] #12183
- Registering null singleton results in BNFE on context refresh [SPR-7523] #12181
- SpEL regression with ArrayList to int array conversion [SPR-7519] #12177
- DefaultMessageListenerContainer may hang on shutdown [SPR-7511] #12168
- JdbcTemplate failed to get data from StoredProc by using column alias [SPR-7506] #12163
- JaxWsPortClientInterceptor gets an incorrect PortName [SPR-7505] #12162
- Memory leak in serializable bean factory management [SPR-7502] #12159
- SQLErrorCodesFactory classloader issues [SPR-7497] #12155
- Problem with URL encoding in org.springframework.web.servlet.view.RedirectView.RedirectView(String url) [SPR-7490] #12148
- StackOverflowError, ClassCastException and other issues with ConversionService [SPR-7488] #12146
- CLOB handling does not work with PostgreSQL [SPR-7487] #12145
- Optional
@RequestParam
with required=false no longer works in Spring 3.0.4 (compared to 3.0.2) when Controller extends interface [SPR-7483] #12141 - Exception (SpelEvaluationException: EL1021E) when using spring:eval with Jetty [SPR-7482] #12140
- Setup of JMS message listener invoker failed for destination when upgrading from 3.0.2 to 3.0.4 [SPR-7478] #12136
- HandlerMethodResolver does not handle hierarchy of generic interfaces with
@MVC
annotations [SPR-7355] #11985 - UrlPathHelper is too aggressive decoding URLs [SPR-6291] #10957
- PathVariable mappings are greedy over hard coded mappings [SPR-5367] #10040
- ClassLoader set on a WebApplicationContext is used to load beans but not to inject Class properties which uses the current thread's context ClassLoader [SPR-1461] #6160