⭐ New Features
- AbstractRoutingDataSource does not allow to unwrap the underlying datasource [SPR-9856] #14489
- Add JDBC exception translation support for Oracle error code ORA-06550 [SPR-9853] #14486
- allow replaced-method 'arg-type' matches against element body as well as 'match' attribute [SPR-9812] #14445
- Support opaque URIs in UriComponentsBuilder [SPR-9798] #14431
- Spring 3.1 CookieGenerator does not support HttpOnly property added in servlet 3.0 [SPR-9794] #14427
- Allow Jaxb2Marshaller to work with EclipseLink MOXy when using external binding definitions [SPR-9757] #14391
- Avoid per-request Pattern.compile() calls. [SPR-9749] #14383
- Share MethodParameter cache between HandlerMethods [SPR-9748] #14382
- Get rid of per-instance logger creation [SPR-9747] #14381
- Allow parsing of media types with single-quotes [SPR-9734] #14368
- Sybase lock wait timeout error code missing [SPR-9681] #14315
- Poor Performance with lots of Prototype Scoped Beans [SPR-9670] #14304
- HttpHeaders.getAccept() does not return all accept headers for Iplanet WebServer 7 [SPR-9655] #14289
- Add SpEL support for float literals [SPR-9486] #14121
- UriComponentsBuilder.query(String) does not always match properly the query [SPR-9474] #14109
- Deprecate SimpleJdbcTestUtils in favor of JdbcTestUtils [SPR-9235] #13873
- Value-oriented return method handling broken in 3.1 [SPR-9218] #13856
@ResponseBody
does not work with@ExceptionHandler
when reason is set in@ResponseStatus
[SPR-9159] #13797- Creating of Spring beans takes a long time when the application is deployed through webstart / jnlp with Java 6 and above [SPR-9117] #13755
- 3.1.x reference docs mentions RequestBodyNotValidException but should be MethodArgumentNotValidException [SPR-9111] #13749
- TypeConverterDelegate contains commented out code [SPR-8463] #13109
- Make ResourceBundleMessageSource more flexible (catching up with Java 6's java.util.ResourceBundle) [SPR-7392] #12050
🪲 Bug Fixes
- When SimpleMessageListenerContainer could not connect, it throws a NullPointerException in shutdown() [SPR-9930] #14563
- Close 'beans' tag in MVC namespace documentation [SPR-9898] #14531
- Inconsistent behavior for LocalContainerEntityManagerFactoryBean for using/not using persistence.xml, with Hibernate4 [SPR-9883] #14516
- DispatcherPortlet should forward to view for ResourceRequest [SPR-9876] #14509
- Portlet mapping predicate compareTo is not transitive [SPR-9874] #14507
- OpDivide wrongly wraps result of division in TypedValue [SPR-9869] #14502
- NullPointerException in AbstractMessageConvertorMethodProcessor [SPR-9868] #14501
- Unscalable code in Jaxb2Marshaller [SPR-9867] #14500
- TypeConverterDelegate falls back to deprecated Date constructor when first converter failed [SPR-9865] #14498
- LoadTimeWeaving not working properly in Websphere [SPR-9857] #14490
- ServletConfigAware-related exception is not thrown as expected [SPR-9855] #14488
- POM dependency issue: com.caucho#com.springsource.com.caucho;3.2.1 is no longer available [SPR-9854] #14487
@Resource
injection of singleton in prototype using AnnotationConfigApplicationContext is not thread-safe [SPR-9852] #14485- Prevent memory leaks with
@Configuration
beans [SPR-9851] #14484 - Hibernate 4 class loading issue on JBoss 7 when hibernate & spring classes loaded by different classloaders [SPR-9846] #14479
- Automatically created java.inject.Provider cannot be injected into session scoped beans [SPR-9845] #14478
- Upgrade spring mvc app to 3.1.2 causes content-type to be returned as 'application/*+xml' [SPR-9841] #14474
- HttpComponentsHttpInvokerRequestExecutor does not explicitly release connection [SPR-9833] #14466
- Erroneous "0" returned where empty string expected in call through the RestTemplate [SPR-9832] #14465
- Race Condition in ReschedulingRunnable [SPR-9821] #14454
- Fix split package introduced by
@EnableSpringConfigured
[SPR-9811] #14444 - Autowired properties can remain unset during concurrent instantiation of prototype-beans [SPR-9806] #14439
- Performance degradation for TransactionInterceptor [SPR-9802] #14435
- Spring fails to locate jar files defined with jar-file tag in persistence.xml [SPR-9797] #14430
- RestTemplate fails to correctly parse some HTTP URI parameters [SPR-9791] #14424
- ResourceDatabasePopulator incredibly slow on JDK 1.7.0_06 or newer [SPR-9781] #14415
- DelegatingDataSource incorrectly implements java.sql.Wrapper [SPR-9770] #14404
- Remove default profile during environment merge [SPR-9761] #14395
- Register environment in all bean factories in a hierarchy [SPR-9756] #14390
- LinkedCaseInsensitiveMap duplicate element with put() [SPR-9754] #14388
- Default PersistenceUnit is configured with wrong name, resulting in duplicates & causes RTE. [SPR-9741] #14375
- Flashmap matching logic fails when target params are encoded. [SPR-9657] #14291
- BeanFactoryAnnotationUtils should throw BeansException [SPR-9652] #14286
- Injection of Provider fails for prototype-scoped beans [SPR-9630] #14264
- When testing controller mappings using AnnotationMethodHandlerAdapter NPE is thrown [SPR-9629] #14263
- Regression: scoped beans being cached too aggressively [SPR-9627] #14261
- org.springframework.core.Constants fail with NPE dispite method documentations say that it accepts null values [SPR-9608] #14242
- MessageSourceSupport and StaticMessageSource uses invalid caches for MessageFormat [SPR-9607] #14241
- Wrong compareTo() implementation in Portlet mapping predicates [SPR-9605] #14239
- RequestMappingInfoHandlerMapping.handleNoMatch throws HttpRequestMethodNotSupportedException incorrectly [SPR-9603] #14237
- JdbcTestUtils should not interpret comments as a separate statement [SPR-9593] #14227
- Injecting prototypes into tests using
@Resource
appears to be broken [SPR-9580] #14214 - ResourceUtils.useCachesIfNecessary() not correct handle JNLP connections [SPR-9547] #14181
- CollectionFactory should be aware of MultiValueMap [SPR-9498] #14132
- Java 7 only - PropertyPathFactoryBean requires a bean setter in version 3.1.1.RELEASE. Works fine under Java 6. [SPR-9414] #14050
- ErrorsMethodArgumentResolver fails when model attribute is mentioned in the signature of
@ModelAttribute-annotated
method [SPR-9378] #14014 - StaxEventContentHandler.setDocumentLocator leaks references [SPR-9305] #13943
- Portlet annotation handler mapping does is not working properly because of a flaw in predicate comparison [SPR-9303] #13941
- CollectionFactory does not chain exceptions [SPR-9285] #13923
- Allow MapToMap conversion even without a default constructor [SPR-9284] #13922
- Java based configuration - after upgrade to 3.1.1.RELEASE the AOP Proxy session scoped bean is instantiated to find type of bean during dependency resolution [SPR-9243] #13881
- AnnoationMethodHandlerExceptionResolver identifies wrong exception handler [SPR-9209] #13847
@Inject
Provider or@Autowired
ObjectFactory issue with session scoped bean [SPR-9181] #13819- Jaxb2Marshaller::supports() ignores classes found by packages scanning [SPR-9152] #13790
- Allow SpEL to resolve getter method against object of type Class [SPR-9017] #13656
- If you annotate any parameter in a
@InitBinder
method, it fails at runtime. [SPR-8946] #13586 - Property Placeholder Configurer Incorrectly Reports "Circular placeholder reference" Error For Repeated Nested Placeholders [SPR-5369] #10042