Releases: spring-projects/spring-framework
Releases · spring-projects/spring-framework
3.2 RC2 Release
⭐ New Features
- Remove reflection usage in orm.hibernate4.* [SPR-10039] #14673
- Introduce AnnotationAwareOrderComparator#INSTANCE constant [SPR-10038] #14672
- Update reference docs to a more modern CSS style [SPR-10036] #14670
- Support bean disposal on ApplicationContext shutdown for Closeable beans [SPR-10034] #14668
- Remove duplicate imageobject items from reference xml [SPR-10033] #14667
- Migrate to docbook 5 [SPR-10032] #14666
- Simplify CachedIntrospectionResults caching arrangements [SPR-10028] #14662
- Drop Appendix E. spring-beans-2.0.dtd [SPR-10011] #14645
- Restore custom reference manual titlepage [SPR-10008] #14642
- Changing the default behaviour of DeferredResult when the timeout is triggered [SPR-10002] #14636
@Cacheable
should participate in transactions [SPR-9966] #14600- Implement java.io.Closeable where appropriate [SPR-9962] #14596
- Provide option in MockRestServiceServer where an instance of MockMvc is used to obtain the response [SPR-9917] #14550
- Support SpEL in mvc:mapping tags [SPR-9848] #14481
- Add documentation for cache and jdbc namespaces [SPR-9824] #14457
- Non-singleton beans performance issue [SPR-9819] #14452
- container-type and other NMTOKEN attributes declared in spring-jms-3.1.xsd - consider using string pattern to allow for property placeholders [SPR-9597] #14231
- Support Aware interfaces for ImportBeanDefinitionRegistrar [SPR-9568] #14202
- Add support for in addition to for mvc:message-converters [SPR-9469] #14104
- spring-expression: null values in (boolean) expressions won't be converted [SPR-9445] #14064
- mvc:resources/ location param shoud support SpEL [SPR-9291] #13929
- Tiles-3 support [SPR-8825] #13467
- AsyncAnnotationBeanPostProcessor should cache AopUtils.canApply results, it's unusable in projects with a huge number of prototype beans otherwise [SPR-8065] #12720
- Cache result of AopUtils.canApply [SPR-7328] #11987
🪲 Bug Fixes
- WebMvcConfigurationSupport is not properly initializing ExceptionHandlerExceptionResolver [SPR-9997] #14631
- LocalDataSourceConnectionProvider closes connection instead of releasing it [SPR-9978] #14612
- HttpMessageConverter no longer works for
@ResponseBody
parameters with an extended generic.at the type [SPR-9964] #14598 - Honor timeZone property in DateTimeFormatterFactory [SPR-9953] #14586
- The behavior of returning null for Callable or DeferredResult return values is currently undefined [SPR-9951] #14584
- Error in "13.4.3 Batch operations with multiple batches" documentation [SPR-9937] #14570
- inherited
@Lazy
annotation not picked up for scanned@Components
[SPR-9589] #14223 @DependsOn
inheritence appears not to function as defined [SPR-9476] #14111- org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBean() causes ClassLoader leak [SPR-8956] #13596
- Performance bottleneck and potential thread deadlock in DefaultSingletonBeanRegistry [SPR-8471] #13117
📔 Documentation
3.2 RC1 Release
⭐ New Features
- SQL Server error code 209 should map to BadSqlGrammarException [SPR-9946] #14579
- Extend conditional conversion support [SPR-9928] #14561
- Provide a way to handle timeouts for Servlet 3 async requests [SPR-9914] #14547
- Allow setting WSDL document as a Resource on LocalJaxWsServiceFactory [SPR-9909] #14542
- Allow usage of injection annotations (
@Autowired
,@Value
) as meta-annotations [SPR-9890] #14523 - Allow configurable await time in TestCallableInterceptor in test mvc [SPR-9875] #14508
- Allow SpEL reserved words in type package names [SPR-9862] #14495
- Add first class support for testing Spring MVC applications [SPR-9859] #14492
- ContentNegotiatingViewResolver does not support wildcards in contentType [SPR-9807] #14440
- Develop ConcurrentReferenceHashMap [SPR-9796] #14429
- List
@PathVariable
not converted correctly in@Controller
[SPR-9765] #14399 - Support for increment (++) operator in SpEL [SPR-9751] #14385
- TypeDescriptor getAnnotation method should use generics [SPR-9744] #14378
- Implement support of Jackson2 for JacksonObjectMapperBeanFactory [SPR-9739] #14373
- Implement HttpMessageConverter that can use a ConversionService to convert String content to some Object type [SPR-9738] #14372
- Make locales in MockHttpServletRequest configurable [SPR-9724] #14358
- Support flexible formatting for resolved message codes [SPR-9707] #14341
- Support conversion from Enum Interface [SPR-9692] #14326
- Provide runtime access to Spring container and bean graph metadata [SPR-9662] #14296
- MediaType's include method does not check for generalization when using a format extension/suffix [SPR-9635] #14269
- Allow PropertyResolver implementations to ignore unresolvable ${placeholders} [SPR-9569] #14203
- Bypass conversion when possible [SPR-9566] #14200
- Upgrade commons-httpclient from version 4.1 to version 4.2 [SPR-9475] #14110
- Add more details in ResourceAccessException message thrown by doExecute method of RestTemplate [SPR-9325] #13963
- Cache and late resolve annotations on bean properties to improve performance [SPR-9166] #13804
- Make the ConfigurableWebBindingInitializer easy to customize in WebMvcConfigurationSupport [SPR-8984] #13624
- Introduce
@EnableMBeanExport
equivalent to context:mbean-export [SPR-8943] #13583 - Use concurrent cache to improve performance of GenericTypeResolver [SPR-8701] #13343
- Allow Customization of Object Name Attributes [SPR-8244] #12892
- MockHttpRequest to support ClientRequestInterceptor testing [SPR-7995] #12650
- Add first class support for client-side REST tests [SPR-7951] #12606
- MappingJacksonHttpMessageConverter default media type should include *+json [SPR-7905] #12560
- Support for custom global Joda DateTimeFormatters [SPR-7121] #11781
- Apache HttpClient 4.1 pooled coonection manager support in Spring Web [SPR-6940] #11605
- Support DateTimeFormat annotation without Joda [SPR-6508] #11174
- Support loading WebApplicationContexts with the TestContext Framework [SPR-5243] #9917
- Throw AopInvocationException on advice returning null for primitive type [SPR-4675] #9352
- Provide support for session/request scoped beans for integration testing [SPR-4588] #9265
🪲 Bug Fixes
- AbstractEnvironment addActiveProfile ignores profiles activated with properties [SPR-9944] #14577
- HttpMessageNotReadableException when
@RequestBody
(required=false) [SPR-9942] #14575 - Spring test module shouldn't pull in hamcrest-all as hard dependency [SPR-9940] #14573
- Avoid NullPointerException in ObjectToObjectConverter [SPR-9933] #14566
- OncePerRequestFilter executes again on errors [SPR-9895] #14528
- PathExtensionContentNegotiationStrategy depends on Servlet 3 specific method [SPR-9826] #14459
- RequestMethodsRequestCondition fails on unsupported method types [SPR-9815] #14448
- Delete CopyOfRequestMappingHandlerMapping [SPR-9814] #14447
- JibxMarshaller deletes comments when Result is an XMLEventWriter [SPR-9768] #14402
- Initialize ServletContext and ServletConfig property sources eagerly in FrameworkServlet [SPR-9610] #14244
- Resolve Collection element types during conversion [SPR-9257] #13895
@Entity
objects are not enhanced by the load time weaver in certain situations [SPR-8523] #13167
3.1.3 Release
⭐ 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](https://github.c...
3.2 M2 Release
⭐ New Features
- MockFilterChain should support Filters and Servlet [SPR-9745] #14379
- Introduce ConvertingComparator and InstanceComparator [SPR-9730] #14364
- HttpEntity and ResponseEntity value objects do not implement equals(…)/hashCode() [SPR-9714] #14348
- Make DeferredResult testable [SPR-9690] #14324
- DeferredResult/async provides no (obvious) way to handle exceptions [SPR-9689] #14323
- MockHttpSession does not implement invalidate() properly [SPR-9686] #14320
- Introduce strategy for BeanInfo creation [SPR-9677] #14311
- Upgrade to ASM 4.0 and CGLIB 3.0 [SPR-9669] #14303
- Introduce countRowsInTableWhere() and dropTables() in abstract transactional base classes in the TestContext framework [SPR-9665] #14299
- XStreamMarshaller + BinaryStreamDriver [SPR-9663] #14297
- Upgrade to Gradle 1.1 GA [SPR-9660] #14294
- MVC: Put exception in PageContext before sending error [SPR-9653] #14287
- Support single, unnamed transaction manager bean in the TestContext framework [SPR-9645] #14279
@DateTimeFormat
does not work with@Value
[SPR-9637] #14271- SpEL should support standard operators for logical AND and logical OR [SPR-9614] #14248
- SpEL should support case-insensitive null literals [SPR-9613] #14247
- Support TransactionManagementConfigurer for determining the transaction manager in the TestContext framework [SPR-9604] #14238
- Improve getNamedDispatcher(String) method of MockServletContext [SPR-9587] #14221
- Support base package inference for
@ComponentScan
[SPR-9586] #14220 - org.springframework.web.context.request.async.DeferredResult should have parameter type [SPR-9579] #14213
- Proper handling of parameterized types for
@RequestBody
parameters [SPR-9570] #14204 - Improve SimpleStreamingClientHttpRequest performance [SPR-9530] #14164
- Update javadoc of HttpMediaTypeException constructor [SPR-9513] #14147
- Infer return type of parameterized static factory methods [SPR-9493] #14127
- Introduce MockEnvironment in the spring-test module [SPR-9492] #14126
- Javadoc for RequestMapping consumes, produces format is misleading, incomplete [SPR-9483] #14118
- Document correct data sql file name in default scripts of embedded database in reference manual [SPR-9467] #14102
- Add Servlet 3 async support related config options [SPR-9399] #14035
- Update documentation with regards to overrid RequestMappingHandlerMapping and RequestMappingHandlerAdapter when using the MVC namespace [SPR-9344] #13982
- com.sun.syndication.feed.rss.Channel/Feed should be rendered by RssChannelHttpMessageConverter/AtomFeedHttpMessageConverter by default [SPR-9336] #13974
- DefaultHandlerExceptionResolver doesn't provide a reason when sending error responses [SPR-9312] #13950
- DefaultHandlerExceptionResolver doesn't handle BindException but does handled other data binding related exceptions [SPR-9310] #13948
- Improved support for REST API error reporting [SPR-9283] #13921
- Add extension element to Spring Web MVC
@RequestMapping
annotation [SPR-9153] #13791 - Provide bean factory to simplify the customization of Jackson ObjectMapper [SPR-9125] #13764
- Support
@MVC
methods that can apply to any@Controller
[SPR-9112] #13750 - Provide support for ApplicationContextInitializers in the TestContext framework [SPR-9011] #13650
- Provide JdbcTemplate in abstract transactional base classes in the TestContext framework [SPR-8990] #13630
- Reduce log level to DEBUG when
@TestExecutionListeners
is not present [SPR-8645] #13287 - Spring MVC - Ability to use a Converter based on the Path Extension instead of Accep Header. [SPR-8546] #13190
- Content negotiation improvements [SPR-8410] #13057
- HttpMessageConverter doesn't support typed collections [SPR-8381] #13028
- Better description for DispatcherServlet's "No adapter for handler: Does your handler implement a supported interface like Controller?" exception message [SPR-8338] #12986
- Add support for the HTTP PATCH method [SPR-7985] #12640
- Use of semicolon delimited lists in REST URIs [SPR-7818] #12474
@RequestMapping
should support alternative between a header and a url extension [SPR-7722] #12378- Introduce request parameter based content negotiation for ResponseBody / HttpMessageConverter approach [SPR-7517] #12175
- Allow Errors/BindingResult after
@RequestBody
[SPR-7114] #11774 - Proper handling of parameterized types in RestTemplate [SPR-7023] #11685
- Add content-negotiation to RequestBody and ResponseBody processing [SPR-6993] #11658
- Add Gradle task for building zip with dependencies [SPR-6575] #11241
- Ability to exclude HandlerInterceptor from specific path with mvc:interceptor [SPR-6570] #11236
@RequestMapping
should support accept header and url extension [SPR-6497] #11163- Use split index for Web documentation [SPR-4984] #9660
🪲 Bug Fixes
- Sometimes throws Classcast exception for cglib [SPR-10086] #14719
- Package org.springframework.asm split across core and asm JARs [SPR-9988] #14622
- isFormContentType in org.springframework.web.filter.HttpPutFormContentFilter should return false on an illegal argument exception [SPR-9769] #14403
- Sort candidate
@AspectJ
methods deterministically [SPR-9729] #14363 - Unable to build spring-framework on Windows platform [SPR-9717] #14351
- spring-orm dependency on spring-web should be optional [SPR-9632] #14266
- SpEL MethodFilter registration fails if custom method resolvers have been set [SPR-9621] #14255
- SpEL fails to parse nested double quotes in expressions [SPR-9620] #14254
- SpEL fails to parse method invocation on an Integer literal [SPR-9612] #14246
- A forward before startAsync is called results in incorrect async request processing [SPR-9611] [#14245](https://githu...
3.1.2 Release
⭐ New Features
- Setting default charset in StringHttpMessageConverter [SPR-7904] #12559
- XStreamMarshaller should convert XStream StreamException to Spring exception in case of unmarshalling an empty stream [SPR-9536] #14170
- Use BufferedInputStream in SimpleMetaDataReader to double performance [SPR-9528] #14162
- Quartz 2.x scheduler support (SimpleTriggerFactoryBean) ignores repeatCount attribute [SPR-9521] #14155
- Backport constructor accepting Charset in StringHttpMessageConverter, from Spring for Android to Spring Web. [SPR-9487] #14122
- Hibernate 4 smart flushing does not work unless CMTTransactionFactory is being specified [SPR-9480] #14115
- Resolve nested ${..} placeholders via PropertyResolver/Environment [SPR-9473] #14108
- Add missing section ids in reference documentation [SPR-9346] #13984
- Use Jackson 2.0 for Jackson based json processing such as MappingJacksonJsonView [SPR-9302] #13940
- Clarify
@EnableScheduling
javadoc re ExecutorService shutdown [SPR-9280] #13918 - Reduce log level for message re: missing annotation [SPR-9233] #13871
- HttpClientErrorException should provide access to response headers [SPR-7938] #12593
- Invalid MIME-type causes a 500 error [SPR-7712] #12368
- Cache by-type lookups in DefaultListableBeanFactory [SPR-6870] #11536
- Enable Executor qualification with
@Async
[SPR-6847] #11513
🪲 Bug Fixes
- Documentation for AbstractResource.getFilename() says 'throws IllegalAccessException' when in fact it returns null [SPR-9561] #14195
- DatabasePopulatorUtils uses non-transactional connection [SPR-9457] #14092
- ApplicationContext environment inheritance may causes child context environment property sources to be lost [SPR-9444] #14080
- Fix package cycle established by
@EnableSpringConfigured
[SPR-9441] #14077 - Fix regression in ClassPathResource descriptions [SPR-9413] #14049
- Unknown status codes (i.e. not in HttpStatus enum) prevent HttpClientErrorException and HttpServerErrorExceptions from being raised [SPR-9406] #14042
- Exposure of setStatisticsEnabled/setSampledStatisticsEnabled causes cache not initialized exception when chaches are defined as spring beans. [SPR-9392] #14028
- Reinstate check for a type-level
@RequestMapping
annotation to decide if a bean contains@RequestMapping
methods [SPR-9374] #14010 - Cannot amend properties in RequestMappingHandlerMapping (e.g. useSuffixPatternMatch) using a bean post processor as ApplicationContextAwareProcessor always fires first initialising RequestMappingHandlerMapping [SPR-9371] #14007
- Regression: Incorrect behavior if a
@PathVariable
has the same name as a@ModelAttribute
's object property [SPR-9349] #13987 @PathVariable
drops extension [SPR-9333] #13971- UriComponentsBuilder.fromUri brakes url encoded query param [SPR-9317] #13955
- org.springframework.web.multipart.support.StandardServletMultipartResolver.cleanupMultipart causes an IOException on Resin [SPR-9299] #13937
- DispatcherPortlet shouldn't call exposeActionException during event processing [SPR-9287] #13925
- MutablePropertySources#get throws when it should return null [SPR-9179] #13817
- Scoped-proxy memory leak w/
@Resource
injection [SPR-9176] #13814 - org.springframework.context misses Import-Package on javax.inject [SPR-9173] #13811
- Avoid infinite loop in AbstractResource#contentLength [SPR-9161] #13799
- AbstractMessageConverterMethodProcessor ignores quality parameter when selecting a MediaType [SPR-9160] #13798
- "Content-Disposition" in class StandardMultipartHttpServletRequest should be case insensitive [SPR-9149] #13787
- Invalid MIME-type causes a 500 error [SPR-9142] #13781
- Race condition in AnnotationMethodHandlerExceptionResolver [SPR-9138] #13777
- Custom condition in request mapping handler does not work as an exclusion filter [SPR-9134] #13773
- Fix regression in
@PropertySource
placeholder resolution [SPR-9133] #13772 - ServletContextResource getFile should not rely on getRealPath (for WebLogic 10 compatibility) [SPR-8461] #13107
📔 Documentation
3.2 M1 Release
⭐ New Features
- Improve documentation for
@Bean
'lite' mode and annotated class support in the TestContext Framework [SPR-9401] #14037 - java.sql.SQLTimeoutException not translated to org.springframework.dao.QueryTimeoutException [SPR-9376] #14012
- Possibility of creating multiple custom
@RequestConditions
[SPR-9350] #13988 - Documentation Typo [SPR-9321] #13959
- Add convenient WebApplicationInitializer base classes [SPR-9300] #13938
- Support binding
@PathVariable
(s) to a Map [SPR-9289] #13927 - Confusion around binding request parameters to Maps using Spring MVC [SPR-9265] #13903
- Small memory improvements to InjectionMetadata and InitDestroyAnnotationBeanPostProcessor.LifecycleMetadata [SPR-9264] #13902
- Improve Support for Maps of Mixed Types [SPR-9249] #13887
@RequestBody
should have a required parameter to allow a request body to be optional [SPR-9239] #13877- Allow configuration of a custom MessageCodesResolver in WebMvcConfigurer [SPR-9223] #13861
- SpEL: support references to arrays in the T() construct [SPR-9203] #13841
- ResourceHttpRequestHandler should check that locations is not null [SPR-9186] #13824
- Map Oracle's ORA-30006 to Spring's CannotAcquireLockException [SPR-9141] #13780
- Decode URI variable values when UrlPathHelper.setUrlDecode() is set to false [SPR-9098] #13736
- Improve dependency management for the spring-test module [SPR-8861] #13503
- Missing syntax in the 3.0.0 reference documentation [SPR-8856] #13498
- Support for JCache (JSR-107) [SPR-8774] #13417
- Support not (!) operator for profile selection [SPR-8728] #13370
- Support for Servlet 3.0/3.1 asynchronous request processing [SPR-8517] #13162
- spring-expression: OpPlus should convert operand values to String using registered convertors [SPR-8308] #12957
- Improve build system and source control infrastructure [SPR-8120] #12773
- HttpStatus deprecations/links [SPR-7942] #12597
- Update documentation regarding scoped-proxy and singleton beans [SPR-7940] #12595
- Hibernate LocalSessionFactoryBean schemaUpdate incompatible with automatic dialect detection [SPR-7936] #12591
- Predict specific object type in EhCacheFactoryBean [SPR-7843] #12499
- support pretty printing in MappingJacksonHttpMessageConverter [SPR-7201] #11860
- Support initial delay attribute for
@Scheduled
and task:scheduled [SPR-7022] #11684 - <form:form /> : propose a limited number of values for the method attribute [SPR-6945] #11610
- Some implementation of HandlerExceptionResolver should allow for a list of Exceptions to be ignored [SPR-5193] #9866
🪲 Bug Fixes
- StringUtils.parseLocaleString incorrectly parses when language and country are the same and lowercase "de_de" parses to "de_DE_de" [SPR-9420] #14056
- Log4jWebConfigurer: wrong config location URL with some property substitutions [SPR-9417] #14053
- JavaBeanInfo Link broken [SPR-9408] #14044
- ContentNegotiationViewResolver should not decode Request-URI while fetching requested Media-Types [SPR-9390] #14026
- Broken external link in AbstractWireFeedHttpMessageConverter API [SPR-9379] #14015
- AnnotationUtils.findAnnotation(Method, Class) fails to find annotation under specific conditions [SPR-9342] #13980
- HttpStatusCodeException cannot be serialized [SPR-9273] #13911
- incorrect message in BeanCreationException [SPR-9260] #13898
- JSON (jackson)
@RequestBody
marshalling throws java.io.EOFException when body is missing [SPR-9238] #13876 - Reference documentation has incorrect attribute name for Spring url tag [SPR-9188] #13826
- [SpEL] Problem with uppercase property names [SPR-9123] #13761
- Multiple javadoc issues [SPR-9113] #13751
- Encoding issue causes javadoc generation to fail [SPR-9097] #13735
- JibxMarshallerTests causes build failure on Windows [SPR-8360] #13007
- Constants.toCode throws NPE when namePrefix is null [SPR-8278] #12926
- Wrong path mapping combination between type-level and method-level
@RequestMapping
on@Controller
[SPR-7970] #12625 - org.springframework.web.servlet.view.json.MappingJacksonJsonView does not set the Content-Length response header. [SPR-7866] #12523
- JibxMarshaller doesn't use configured encoding property when unmarshalling documents [SPR-7865] #12522
- Using array syntax generates invalid id in freemarker [SPR-7710] #12366
- Invalid reference to spring version in MultipartResolver javadocs [SPR-5984] #10652
📔 Documentation
- Change green JavaDocs API to standard JavaDoc colors with SpringSource logo [SPR-6787] #11453
3.1.1 Release
⭐ New Features
- Add receive-timeout option to jms:listener-container or jms:listener definition [SPR-9114] #13752
- Synchronization issues occur on a form which heavily uses [SPR-9084] #13722
- UriComponentsBuilder.pathSegments(...) should drop empty segments [SPR-9077] #13715
- ServletUriComponentsBuilder should allow normalizing URIs created [SPR-9076] #13714
- ServletUriComponentsBuilder should provide static method to create URI from request without query parameters [SPR-9075] #13713
- SessionAttributes defined in the controller are not populated from the HttpSession object when the web session fails over to a new server in the cluster [SPR-9047] #13686
- org.springframework.dao.EmptyResultDataAccessException doesn't provide cause Throwable [SPR-9041] #13681
- Provide a way to override the ReflectiveMethodResolver so that subclasses can provide thier own static methods [SPR-9038] #13677
- SimpleMessageListenerContainer creates the consumers in the afterPropertySet instead of the start [SPR-9009] #13648
- Couple of ExtendedBeanInfoTests failing on Java 7 [SPR-9007] #13646
- ORM PersistenceExceptionTranslation does not convert Hibernate3 unique ids error to spring DuplicateKeyException [SPR-8996] #13636
- Initialize property sources before invoking ApplicationContextInitializer [SPR-8991] #13631
- Add the ability to Scan Packages for JAXB Marshalling (java example provided) [SPR-8986] #13626
- Add FlashAttributes to Model for view controllers [SPR-8976] #13616
- Flash attributes with RedirectView [SPR-8968] #13608
- Regression: please expose Configuration object in Hibernate 4 LocalSessionFactoryBean [SPR-8961] #13601
- Spring JDBC does not support JBoss 7 Native JDBC connection [SPR-8957] #13597
- How can Spring 3.1 support hibernate 4 such as support Hibernate 3? [SPR-8940] #13580
- Allow SELECT statements in ResourceDatabasePopulator [SPR-8932] #13572
- Please include block in project pom's. [SPR-8927] #13567
- form:errors tag: include object errors in the documentation [SPR-7799] #12455
- Add QueryTimeoutException to the DataAccessException hierarchy [SPR-7680] #12336
- Allow more flexibility for SQLException translation based on state [SPR-7675] #12331
🪲 Bug Fixes
- PDF documentation still missing images (even in 3.1 final) [SPR-9267] #13905
@PropertySource
annotation with multiple values and a name fails to register all property sources [SPR-9127] #13766- BeanNameGenerator strategy provided to AnnotationConfig(Web)ApplicationContext does not apply to nested and imported
@Configuration
classes [SPR-9124] #13762 - ResourceHttpRequestHandler OSGiBundleResource contentLength [cannot be resolved to absolute file path] [SPR-9118] #13756
- StringHttpMessageConverter should use HttpServletRequest encoding for POST body [SPR-9096] #13734
- org.springframework.web.util.UriTemplate not throwing IllegalArgumentException when URIVariables map missing values [SPR-9093] #13731
- Incorrect name in documentation for ByteArrayHttpMessageConverter class [SPR-9085] #13723
- JobDetailFactoryBean missing properties to set description and durability on JobDetail [SPR-9080] #13718
- RequestParamMethodArgumentResolver does not resolve multiparts using HTTP PUT [SPR-9079] #13717
- ServletContextResource.isReadable() returns "true" for directories [SPR-9067] #13706
- After upgrade to 3.1.0 from 3.0.5 we've get "Unexpected ClassLoader type" exception during startup of our application under jboss 5.1 [SPR-9065] #13704
- Spring MVC 3.1.GA 405 problem, can not create two mappings with a same url when using 2 methods (GET, POST) and a PathVariable [SPR-9062] #13701
- IllegalStateException when saving flash attributes if the session does not exist [SPR-9060] #13699
- Make spring-test dependency on spring-aspects optional [SPR-9048] #13687
- PropertiesLoaderSupport no longer works with XML-formatted property files when they're loaded as a FileSystemResource. [SPR-9043] #13683
@ComponentScan
with includeFilters on@Import-ed
context does not work [SPR-9031] #13670- javax.Provider Spring support doesn't work for collections [SPR-9030] #13669
- Beanname of
@Configuration
instance is null when Configuration is imported via@Import
[SPR-9023] #13662 - Two matching produces conditions compared incorrectly if media type in 'Accept' header contains a quality parameter [SPR-9021] #13660
- Provide property in RedirectView to disable treating the redirect URL as a URI template [SPR-9016] #13655
- AbstractEnvironment should not call overridable method from constructor [SPR-9013] #13652
- NPE in Spring-JDBC with sqlite [SPR-9006] #13645
- Javadoc error in AbstractRequestCondition subclasses [SPR-9001] #13641
@ActiveProfiles
are not cascaded down to contexts loaded via@ImportResource
[SPR-8992] #13632- NullPointerException when
@InitBinder
method has an HttpServletResponse argument [SPR-8983] #13623 - UriUtils query parser broken from 3.0.7 to 3.1.0 [SPR-8974] #13614
- spring-context missing optional Import-Package directive for javax.validation.spi [SPR-8973] #13613
- JDBC XML schema refers to a non-existing class EmbeddedDataSourceFactoryBean [SPR-8972] #13612
- Property wrongly converted if field and setter do not match [SPR-8964] #13604
- Bean configuration behaviour in detecting Locale values changed [SPR-8962] #13602
- Regression: SpringValidatorAdapter generates invalid error codes for class-level constraints [SPR-8958] #13598
- Got stackoverflow when scanning for
@Configuration
[SPR-8955] #13595 - BeanFactory does not return FactoryBeans in case the are looked up by type and type prediction is used [SPR-8954] #13594
- The class org.springframework.orm.hibernate4.LocalSessionFactoryBean does not implement the interface PersistenceExceptionTranslator [SPR-8952] #13592
- PropertyPathFactoryBean requires a bean setter in version 3.1.0.RELEASE. It didn't in 3.0.6.RELEASE [SPR-8949] #13589
- TypeConverterDelegate no longer processes ConversionService ParseException when converting to String [SPR-8944] [#135...
3.0.7 Release
⭐ New Features
- TransactionSynchronizationManager should remove ThreadLocal if removal of void ResourceHolder leaves resources map empty [SPR-8845] #13487
- Add support for setting an MBeanServerForwarder to ConnectorServerFactoryBean [SPR-8820] #13462
- Support JDO 3.x [SPR-8655] #13297
- MappingJacksonHttpMessageConverter should have getObjectMapper() method [SPR-8605] #13248
- AbstractCachingViewResolver does not cache negative lookups [SPR-8524] #13168
- SpEL: Unnecessary conversion of Map arguments [SPR-8518] #13163
- Update SQL error code mapping for H2 1.3.154 [SPR-8235] #12883
- GenericTypeResolver's getTypeVariableMap(...) and resolveType(...) should be public [SPR-8005] #12660
- Poor multithread performance in AbstractAutowireCapableBeanFactory.filterPropertyDescriptorsForDependencyCheck method [SPR-7863] #12520
- org.h2.jdbc.JdbcSQLException: NULL nicht zulässig für Feld "xyz" gets translated to org.springframework.jdbc.UncategorizedSQLException [SPR-7480] #12138
🪲 Bug Fixes
- CollectionsToCollectionsConverter no longer handles java.util.Collections$EmptyList -> java.util.Collections$EmptyList [SPR-7293] #11952
@Transactional
with qualifier can't find PlatformTransactionManager defined in parent context [SPR-7679] #12335- ResourceHttpRequestHandler shouldn't return 404 when mime-type of existing resource can't be determined (and maybe try harder) [SPR-7713] #12369
- CollectionToCollectionConverter does not convert if the source is empty [SPR-7728] #12384
- Setting "file-encoding" attribute in a "context:property-placeholder" element in spring xml configuration doesn't work [SPR-8024] #12679
- Exception during SpringSessionSynchronization.aftercompletion() results in IllegalStateException/SessionHolder never unbound from thread [SPR-8757] #13399
- Using DataBinder with an auto-growing list is broken [SPR-8828] #13470
- PortletUtils.getSessionMutex() needs to use APPLICATION_SCOPE [SPR-8888] #13529
- Autowire of overriden setters with generic parameter regression [SPR-8905] #13545
- SimpleJdbcTestUtils.executeSqlScript doesn't close script InputStream [SPR-8872] #13513
@RequestMapping
(headers="foo!=bar") does not work for non media type headers [SPR-8862] #13504- JDO PersistenceManager should not be closed until after transaction completion [SPR-8846] #13488
- TransactionSynchronizationManager should not return void ResourceHolder when unbinding [SPR-8844] #13486
- AbstractAsyncExecutionAspect setExecutor wrong assignment [SPR-8772] #13415
- ClassCastException possible when converting to a target type that is a subtype of T for a Converter<S, T> convertible type. [SPR-8718] #13360
- 3.0.6 Map to Map conversion shallow copying maps causing unexpected results on upgrade from 3.0.5 [SPR-8714] #13356
- DefaultResponseErrorHandler IOException Bug [SPR-8713] #13355
- contentLength method is not correctly implemented for all Resource subclasses [SPR-8709] #13351
- GenericTypeResolver can throw null pointer exception when types cannot be resolved [SPR-8698] #13340
- Media type such as "*/xml" should not be accepted [SPR-8697] #13339
- wrong getBody() implementation in ServletServerHttpRequest [SPR-8688] #13330
- Collection Binding broken - TypeConverterDelegate does bind Collection Elements to Collection type instead of the collection elements Type [SPR-8674] #13316
- Bridged method detection leads to false positive detection of autowired annotations [SPR-8660] #13302
- Incorrect output of big numbers when using NamedParameterJdbcTemplate.queryForLong [SPR-8652] #13294
- StringUtils.parseLocaleString incorrectly constrains the characters of the variant parts of a locale String [SPR-8637] #13279
- RmiClientInterceptorUtils.isConnectFailure() fails to detect java.rmi.MarshalException caused by java.net.SocketException [SPR-8628] #13271
- pdf documentation doesn't contain images [SPR-8512] #13158
- StandardEvaluationContext.setRootObject should test parameter rather than private for null [SPR-8241] #12889
- AbstractCachingViewResolver does not query cache correctly [SPR-8173] #12824
- LinkedCaseInsensitiveMap does not correctly implement putAll() [SPR-7969] #12624
- EntityManagerFactoryUtils fails to apply transaction timeout for EclipseLink update and delete queries [SPR-7947] #12602
- CurrencyEditor#getAsText() documents wrong return value [SPR-7890] #12546
- AbstractFileResolvingResource.exists() method incorrectly returns 'true' for non-existent HTTP resources [SPR-7881] #12537
- formMultiSelect macro in spring.ftl causes freemarker.template.TemplateException [SPR-7721] #12377
3.1 GA Release
⭐ New Features
- HibernateTransactionManager.doBegin() is trowing NullPointerException without additional clarification [SPR-8909] #13549
- Add system-properties-mode back into the 3.1 schema for context:property-placeholder/ [SPR-8901] #13541
- useDefaultSuffixPattern in RequestMappingHandlerMapping [SPR-8898] #13539
- Add String constants to MediaType for use in
@RequestMapping
consumes and produces conditions [SPR-8892] #13533 - AspectJ
@Transactional
aspect uses runtime checks [SPR-8890] #13531 - Allow multiple
@Filter
'value' args for concision [SPR-8881] #13522 - Add methods to RequestContext to resolve URLs relative to servlet path [SPR-8863] #13505
- Make MethodInvokingJobDetailFactoryBean compatible with Quartz 2.x [SPR-8741] #13383
- RestTemplate should support Void response types [SPR-8572] #13216
- Add 'mappingLocations' to LocalContainerEntityManagerFactoryBean to scan any JPA mapping files (ORM.xml) in the classpath. [SPR-8440] #13086
- 3.1.0.M2 update of the RestTemplate for Apache HTTP Components will default to sending 2 requests on authentication and doesn't support HttpContext parameters without significant extention/rewrite [SPR-8367] #13014
- Ability to specify ResourceResolver property for SchemaFactory in Jaxb2Marshaller [SPR-8349] #12996
- Allow AnnotationTypeFilter to consider interfaces as well [SPR-8336] #12984
- Support JSF 2.1 (JSR-314) [SPR-8102] #12756
- ValidationUtils: add support for Validation group interfaces [SPR-7847] #12504
- DefaultAnnotationHandlerMapping does not allow for distributing Portlet 2.0 action names across controllers [SPR-7685] #12341
- Support Java-Based Application Configuration [SPR-7420] #12078
- Provide alternatives to using FactoryBean types within
@Bean
methods [SPR-7418] #12076 - please add JMS JsonMessageConverter [SPR-7404] #12062
- RequestMapping header condition should apply for exact match only [SPR-7219] #11878
- Support for validation groups in
@Valid
used by spring MVC [SPR-6373] #11039 - When doing a redirect anything that is not org.springframework.beans.BeanUtils.isSimpleValueType silently gets left off of the redirect query string [SPR-5957] #10625
- ServletRequestDataBinder is not Extensible [SPR-5660] #10331
- Allow developers to introduce custom
@RequestMapping
implementations [SPR-5269] #9942 - Allow locations value in PropertyPlaceholderConfigurer be resolved [SPR-4902] #9578
- Global Errors are clumsy to bind and display in JSP [SPR-3028] #7714
🪲 Bug Fixes
- The DefaultLifecycleProcessor, when starting autostartup beans, should be checking isAutoStartup on dependencies before starting them [SPR-8912] #13552
- org.springframework.orm.hibernate4.HibernateTransactionManager fails with NoSuchMethodError against SessionFactory.getCurrentSession() [SPR-8908] #13548
- org.springframework.web.WebApplicationInitializer's Javadoc missed a semi-colon; [SPR-8897] #13538
- Hibernate Class Level Validators cause IllegalArgument Exception [SPR-8895] #13536
- PortletUtils.getSessionMutex() needs to use APPLICATION_SCOPE [SPR-8888] #13529
- RestTemplate.headForHeaders throws "IllegalArgumentException: No InputStream specified" on server resource which status code are 4xx [SPR-8883] #13524
- Using DataBinder with an auto-growing list is broken [SPR-8828] #13470
- RestTemplate headers not sent when bufferRequestBody is false [SPR-8809] #13451
- NPE when injecting
@Value
into@Configuration
methods [SPR-8762] #13405 @Scheduled
doesn't work with well with proxies [SPR-8651] #13293- ContextLoaderListener overwriting config location set in WebApplicationContext [SPR-8510] #13156
- Multiple
@CacheEvict
meta-annotated annotations not recognized [SPR-8082] #12737 - Response contains twice the Allow header when using
@RequestMapping
(method=RequestMethod.OPTIONS) [SPR-7837] #12493 - CollectionToCollectionConverter does not convert if the source is empty [SPR-7728] #12384
- ResourceHttpRequestHandler shouldn't return 404 when mime-type of existing resource can't be determined (and maybe try harder) [SPR-7713] #12369
@Transactional
with qualifier can't find PlatformTransactionManager defined in parent context [SPR-7679] #12335- CollectionsToCollectionsConverter no longer handles java.util.Collections$EmptyList -> java.util.Collections$EmptyList [SPR-7293] #11952
📔 Documentation
3.1 RC2 Release
⭐ New Features
- Support by-type lookup/injection of primitive types [SPR-8874] #13515
- Introduce SystemEnvironmentPropertySource [SPR-8869] #13510
- LocalSessionFactoryBean in Spring 3.1.0.RC1 unable to set NamingStrategy [SPR-8864] #13506
- EhCacheFactoryBean does not support setting setStatisticsEnabled field. [SPR-8855] #13497
- change log level on AbstractWebArgumentResolverAdapter.supportsParameter [SPR-8851] #13493
- Javadoc for ResourceHolder.isVoid contains misspelling [SPR-8843] #13485
- reconsider ValueWrapperImpl name [SPR-8833] #13475
- introduce meta annotation for declaring multiple
@Cache
annotations [SPR-8830] #13472 - Add ServletUriComponentsBuilder [SPR-8823] #13465
- Allow
@Configuration
classes to self-@ComponentScan
[SPR-8808] #13450 - UriComponentsBuilder should also contain subtractive methods [SPR-8803] #13445
- Add a way to easily reverse 'ignoreDefaultModelOnRedirect' default when using mvc:annotation-driven [SPR-8801] #13443
- Improve documentation on options for configuring Spring MVC [SPR-8784] #13427
- Button Tag [SPR-8755] #13397
- RequestMappingHandlerMapping lacks detectHandlersInAncestorContexts [SPR-8753] #13395
- MockServletRequest and MockServletResponse Ignore Content-Type [SPR-8750] #13392
- Implement new method from ClassLoadHelper to make Spring work with Quartz 2.1 [SPR-8727] #13369
- Allow for a more flexible
@CacheEvict
annotation [SPR-8629] #13272 - UriTemplate doesn't encode query parameters [SPR-8403] #13050
- Provide
@Configuration
support for annotation-based caching [SPR-8312] #12960 - Ease creating Location headers in REST controllers [SPR-8020] #12675
- Improve documentation of the context caching mechanism in the TestContext framework [SPR-7996] #12651
- Introduce
@EnableSpringConfigured
[SPR-7888] #12544 - Add updateOnly option to
@Cacheable
annotation [SPR-7833] #12489
🪲 Bug Fixes
- [Documentation] Wrong namespace declaration in c-namespace example in reference guide. [SPR-8879] #13520
- Truncated HTTP responses [SPR-8867] #13509
@InitBinder
and@ModelAttribute
caches in RequestMappingHandlerAdapter ignore "prototype" controllers [SPR-8859] #13501- Path variable in class-level
@RequestMapping
not working properly [SPR-8858] #13500 - JUnit Dependency not in Central [SPR-8852] #13494
- Spring 3.1 RC1 includes stale duplicate of spring-cache XSD [SPR-8850] #13492
- Misplaced "foo bar" in Reference Documentation under "Classpath scanning and managed components" [SPR-8842] #13484
- DateTimeFormat javdoc mistake [SPR-8838] #13480
@Configuration
class enhancement is not idempotent [SPR-8824] #13466- Unguarded access to first iterator element in RequestMappingInfoHandlerMapping [SPR-8819] #13461
- org.springframework.orm.hibernate4.LocalSessionFactoryBean fails if 'packagesToScan' is not set [SPR-8812] #13454
- ExtendedBeanInfo raises 'type mismatch' error with covariant property types [SPR-8806] #13448
- Regression: HibernateJpaDialect adding SessionFactory as txResource not getting cleaned up [SPR-8800] #13442
- DefaultFlashMapManager does not support URLs with multiple parameter values [SPR-8798] #13440
- New non-optional dependencies in org.springframework.web-3.1.0.RC1.jar [SPR-8788] #13431
- Update and improve AnnotationDrivenBeanDefinitionParser javadoc [SPR-8783] #13426
- RedirectAttributes parameter results in IllegalArgumentException if using DefaultAnnotationHandlerMapping or AnnotationMethodHandlerAdapter [SPR-8782] #13425
- 3.1 RC1 does not work on Google App Engine because direct InitialContext usage (which is restricted) [SPR-8781] #13424
- Transaction synchronization resources are not properly cleaned-up [SPR-8778] #13421
- java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session; [SPR-8776] #13419
- MethodInvokingJobDetailFactoryBean doesn't actually return the JobDetail if Quartz 2.0 in use [SPR-8775] #13418
- Jpa transaction manager transaction suspension ignores dialect resources [SPR-8771] #13414
- RequestDataValueProcessor not called in RedirectView [SPR-8770] #13413
- Spring tries to instantiate nested annotation with a
@Component
annotation [SPR-8761] #13404 - SimpleMappingExceptionResolver: setStatusCodes getter return not same as setter. Makes override impossible [SPR-8759] #13402
- Code example bug in Cache Abstraction document [SPR-8708] #13350
- Duplicate "type" attribute rendered in JSP InputTag [SPR-8694] #13336
- form:hidden disabled attribute is created regardless if value is true or false [SPR-8661] #13303
- NumberFormatException caused by property paths from JSR-303 based validation with no index into a collection [SPR-8634] #13276
- Formatter subsystem's ParserConverter skips Parser invocation if input string is empty [SPR-8321] #12969
- NotificationListenerBean constructor accepts null NotificationListener [SPR-8091] #12746