Releases: spring-projects/spring-framework
Releases · spring-projects/spring-framework
4.0 RC1 Release
⭐ New Features
- Support class-level mappings via
@MessageMapping
or@SubscribeEvent
[SPR-11024] #15652 - ScriptExecutor for JSR-223 [SPR-11007] #15635
- Update json-path dependency to 0.9.0 [SPR-10990] #15618
- Add support for resolving message header based arguments [SPR-10985] #15613
- Introduce ResolvableType Class [SPR-10973] #15601
- Provide option to configure "host" header in CONNECT frames to STOMP message brokers [SPR-10955] #15583
- Support
@PathVariable
in annotated message handling methods [SPR-10949] #15577 - SpEL: Make EvaluationException more informative with Expression [SPR-10938] #15566
- Add "ignoreResourceNotFound" attribute to the
@PropertySource
[SPR-10932] #15560 - Add IssueManagement declaration to POMs [SPR-10929] #15557
- PersistenceExceptionTranslationPostProcessor.setBeanFactory(BeanFactory) causes unwanted early initialization [SPR-10894] #15522
- Potential out-of-memory in AbstractSockJsService [SPR-10893] #15521
- Validate if body is allowed in StompMessageConverter for the given command [SPR-10890] #15518
- Provide support for using multiple MessageConverters depending on the Content-Type of a STOMP message [SPR-10889] #15517
- Use ListenableFuture as the return value in WebSocketClient methods [SPR-10888] #15516
- Make conversion framework extensible for non-Java classes [SPR-10887] #15515
- ThreadPoolTaskScheduler setPoolSize() unable to change the pool size at runtime [SPR-10883] #15510
- oxm:jibx-marshaller lacks support for "target-package" annotation [SPR-10882] #15509
- Switch to Jetty's
@WebSocket
(from WebSocketListener) [SPR-10877] #15504 - Add STOMP heartbeat support [SPR-10845] #15472
- Add support for extensions during WebSocket handshake [SPR-10843] #15470
- Compatibility problems with Hibernate 4.3.0.Beta1 and newer [SPR-10839] #15465
- Hibernate 4 Multi Tenancy Feature Support [SPR-10823] #15449
- Enhance Stomp support to handle frames with NULL octets in the body [SPR-10818] #15444
- Provide support for pattern matching in MockMvcResultMatchers.redirectedUrl() [SPR-10789] #15415
- Use Tomcat 8's new instrumentable WebappClassLoader [SPR-10788] #15414
- add support for MockRestServiceServer to verify that a header does not exist [SPR-10771] #15397
- Add ability to create proxy around classes that has no default constructor [SPR-10594] #15223
- FilterType enum should have ASPECTJ, REGEX constants for AspectJTypeFilter, RegexPatternTypeFilter [SPR-10593] #15222
- RestTemplate does not support IPv6 raw address (as opposed to hostname) [SPR-10539] #15169
- MVC DispatcherServlet throw exception in noHandlerFound [SPR-10481] #15114
- enhance Jackson2ObjectMapperFactoryBean to allow setting of (De)SerializerModifiers [SPR-10429] #15062
- Off by one error in StringUtils.parseLocaleString [SPR-10364] #14996
- Allow
@ControllerAdvice
to be cofigured with a join point to target a subset of controller [SPR-10222] #14855 - ShallowEtagHeaderFilter should deal with the If-Match HTTP Header [SPR-10164] #14797
- Autowiring of generic types [SPR-9965] #14599
- Provide mechanism for creating links to controllers and controller methods [SPR-8826] #13468
- Add
@PropertySources
annotation and support ignoreResourceNotFound [SPR-8371] #13018 - Support Servlet 3.1 (JSR-340) [SPR-8193] #12842
- Provide meta-annotation support for test-related annotations [SPR-7827] #12483
- Convert TestContext to interface and introduce default implementation [SPR-7692] #12348
- Migrate Grails BeanBuilder into Spring Core [SPR-7123] #11783
- Create CGLIB proxy instances honoring tags [SPR-3150] #7836
- Spring i18n needs TimeZone resolution as well as Locale resolution. [SPR-1528] #6227
🪲 Bug Fixes
- HttpComponentsClientHttpRequestFactory method signature changes prevent user code from supporting Spring 3 and Spring 4 simultaneously [SPR-11053] #15680
- GenericTypeResolver.resolveTypeArguments(…) returns Object for raw types [SPR-11052] #15679
- Spring web depends on a beta release of Apache HTTP Client [SPR-11050] #15677
- NPE in MatchAlwaysTransactionAttributeSource [SPR-11048] #15675
- Unable to autowire concrete classes when java config methods return interface [SPR-11046] #15673
- ResolvableType can throw NPE when resolving Generic Arrays [SPR-11044] #15672
- NPE in ResolvableType.hasUnresolvableGenerics [SPR-11034] #15662
- Potential NPE on result of GenericTypeResolver.resolveTypeArguments [SPR-11030] #15658
- groovy-all should not be a mandatory dependency [SPR-11028] #15656
- "Illegal instant due to time zone offset transition" when binding with LocalDate (joda) in Controller handler [SPR-11014] #15642
- TypeDescriptor can no longer be programatically created with null generics [SPR-11006] #15634
- Autowiring of types narrows with generics does not work [SPR-11004] #15632
- Generic autowiring should support wiring of components with unresolved type variables [SPR-10993] #15621
- Regression with detecting nested components [SPR-10970] #15598
- HttpInvokerClientInterceptor.convertHttpInvokerAccessException implementation throws the RemoteAccessException instead of return it [SPR-10965] #15593
- Keep "cookie_needed" property in SockJS service enabled by default [SPR-10939] #15567
- Server sends SEND stomp frames back to the client instead of MESSAGE frames [SPR-10930] #15558
- getSockJsPath() method in org.springframework.web.socket.sockjs.support.AbstractSockJsService returns wrong path [SPR-10923] #15551
- RequestMappingHandlerAdapter.createDataBinderFactory has a return type of ServletRequestDataBinderFactory [SPR-10920] #15548
@RestController
causing errors [SPR-10905] [#15533](https://github.com/spring-projects/spring-framework/issues/...
4.0 M3 Release
⭐ New Features
- Can
@Profile
be@Documented
[SPR-10967] #15595 - Add support for sending Ping and Pong WebSocket messages as well as for handling incoming Pong messages [SPR-10876] #15503
- Implement ChannelInterceptor-like feature for SockJS/WebSocket/STOMP messages [SPR-10866] #15493
- Add client and server-side WebSocket container configuration support [SPR-10844] #15471
- MockMvcBuilders.standaloneSetup() ignores controller path mapping URIs' placeholders [SPR-10825] #15451
- Untranslated Hibernate exception [SPR-10815] #15441
- Add
@RestController
to stereotype a controller that is going to be used for@ResponseBody
rendering [SPR-10814] #15440 - Stereotype
@Profiles
not merged [SPR-10812] #15438 - Make it possible to configure serialization inclusion for Jackson ObjectMapper [SPR-10810] #15436
- Make the use of JSON library in the SockJS service configurable [SPR-10800] #15426
- Add support for discovering JPA 2.1
@Converter
during scanning [SPR-10799] #15425 - Allow headers to be set on WebSocketConnectionManager [SPR-10796] #15422
- Add LocalContainerEntityManagerFactoryBean missing methods to easily replace elements in persistence.xml [SPR-10764] #15390
- Request streaming for HttpComponentsClientHttpRequestFactory [SPR-10728] #15356
- Add recovery-interval to jms:listener-container [SPR-10711] #15339
- Make UriComponents.UriTemplateVariables public [SPR-10647] #15275
- Allow BeanDefinitionRegistryPostProcessor to register other BeanDefinitionRegistryPostProcessors [SPR-10630] #15258
- Provide access to attributes from the handshake HTTP session [SPR-10624] #15252
- Allow
@Bean
to override a dynamically registered bean definition [SPR-10607] #15236 - New
@Description
annotation to add description field to BeanDefinition when using annotation based configuration [SPR-10583] #15212 @RequestMapping
inheritance not worked as expect with a dot path [SPR-10554] #15185- Assign lowest priority to "/**" in AntPathMatcher [SPR-10550] #15181
- MarshallingHttpMessageConverter#supports() is not symmetric [SPR-10463] #15096
- Add time zone support to the
@Scheduled
annotation for cron jobs [SPR-10456] #15089 - UriComponentsBuilder should provide a way to remove the extension from the path [SPR-10272] #14906
- Allow usage of
@Lazy
on injection points [SPR-10353] #14896 - Allow meta-annotations to override attributes from their parent [SPR-10181] #14814
- Comprehensive support for Java 8 / OpenJDK 8 [SPR-9639] #14273
- Support for WebSocket messaging [SPR-9356] #13994
- Support an asynchronous API for RestTemplate [SPR-8804] #13446
- Make org.springframework.http.MediaType Serializable [SPR-8738] #13380
- Doc: gzip support in RestTemplate [SPR-7874] #12531
- Autowiring should support ordered collection driven by Order annotation or Ordered interface [SPR-5574] #10245
🪲 Bug Fixes
- Stomp passcode should not be included in plain text in log messages [SPR-10868] #15495
- WebSocket support on Jetty always uses SockJS HTTP fallbacks [SPR-10861] #15488
- NoSuchMethodError: MediaType.isCompatibleWithMediaType;) [SPR-10860] #15487
- Spring no longer recognizes mapped classes [SPR-10826] #15452
- NoSuchMethodError: org.springframework.util.MultiValueMap.getOrDefault(Ljava/lang/Object;Ljava/lang/Object;) [SPR-10807] #15433
- SpringConfigurator uses ListableBeanFactory method which is documented to be slow for EVERY new WebSocket connection [SPR-10605] #15234
📔 Documentation
- Modify Spring 4.x documentation to reflect JSR-349 support [SPR-10813] #15439
3.2.4 Release
⭐ New Features
- Fix potential security risk when using Spring OXM [SPR-10806] #15432
- Fix SimpleJdbc{Call,Insert} Javadoc [SPR-10792] #15418
- Make HttpHeaders getFirstDate(String headerName) and setDate(String headerName, long date) methods as public [SPR-10713] #15341
- WebAsyncUtils could/should cache the reference to StandardServletAsyncWebRequest's constructor [SPR-10673] #15301
- Configurable JSON prefix on MappingJackson2HttpMessageConverter and MappingJacksonHttpMessageConverter [SPR-10627] #15255
- Add ability to check that attribute does not exist in Spring MVC test framework [SPR-10509] #15141
- XStreamMarshaller - no way to set a MapperWrapper on XStream [SPR-10421] #15054
- Unnecessary blocking in DelegatingFilterProxy [SPR-10413] #15046
🪲 Bug Fixes
- ResourceHttpRequestHandler always logs warning [SPR-10780] #15407
- UriComponentsBuilder should be case-insensitive when parsing URL scheme names [SPR-10779] #15406
- Spring + Quartz 2.2.0 Integration is Inconsistent [SPR-10775] #15401
- is read incorrectly in PersistenceUnitReader [SPR-10767] #15393
- JDBC Connection is not released due to incorrectly defined catch [SPR-10755] #15381
- setPrefixJson don't work in org.springframework.web.servlet.view.json.MappingJackson2JsonView and org.springframework.web.servlet.view.json.MappingJacksonJsonView [SPR-10752] #15378
- spring-instrument has unused dependency on spring-core [SPR-10732] #15360
- spring-instrument is lacking Java 7 instrumentation manifest attributes [SPR-10731] #15359
- method demarcated with
@Async
isn't executed when precompiled [SPR-10715] #15343 - ClassPathJaxb2TypeScanner which scans packagesToScan for Jaxb2Marshaller does not scan for
@XmlRegistry
annotation [SPR-10714] #15342 - Spring 3.2.2 AOP has increased memory usage [SPR-10709] #15337
- ServletUriComponentsBuilder doesn't work if X-Forwarded-Host is in host:port format [SPR-10701] #15329
- ${} placeholders are not resolved in
@ImportResource
[SPR-10686] #15314 - ContentNegotiatingViewResolver does not select any views if no content types are requested [SPR-10683] #15311
- BeanFactory.getBeansWithAnnotation() should not consider abstract beans [SPR-10663] #15291
- Cached MethodExecutor invokes wrong method [SPR-10657] #15285
- Missing RmiInvocationWrapperRTD.xml (build problem?) [SPR-10649] #15277
- HttpHeaders should be tolerant with bad date-aware headers as it said in the RFC 2616 [SPR-10648] #15276
- ConfigurationClassPostProcessor should be Ordered.HIGHEST_PRECEDENCE [SPR-10645] #15273
- Invocation of
@Async
service fails [SPR-10636] #15264 - TypeDescriptor must be Serializable [SPR-10631] #15259
- UnionMethodMatcher and ClassFilterAwareUnionMethodMatcher have broken eqauls. [SPR-10604] #15233
- Rename HttpHeaders#getIfNotModifiedSince() to getIfModifiedSince() to avoid confusing [SPR-10600] #15229
- ClassCastException on meta
@Components
with not Spring value [SPR-10580] #15209 - Revert change for SPR-10402 that allowed treating empty values as missing values [SPR-10578] #15207
- Spring3.2 bug context:property-placeholder nested search property appear java.lang.StackOverflowError [SPR-10549] #15180
- Async does not work anymore when switching from 3.2 to 3.2.2 [SPR-10492] #15125
📔 Documentation
- Documentation Error: rollbackForClassname is listed, should be rollbackForClassName (notice UPPERcase N) [SPR-10754] #15380
- SQL syntax error in jdbcTemplate update example [SPR-10625] #15253
- Doc: JMS CachingConnectionFactory incompatible with DefaultMessageListenerContainer in some circumstances [SPR-10581] #15210
4.0 M2 Release
⭐ New Features
- XPath expressions in Spring MVC Test fail when using the default namespace [SPR-10704] #15332
- Documentation in 17.15.3 Configuring Interceptors incorrect [SPR-10670] #15298
- Make #result available for SpEL in
@CachePut
key attribute [SPR-10664] #15292 - Add expected header name to assert message for HeaderResultMatchers [SPR-10659] #15287
@CacheEvict
key should allow referencing return value [SPR-10658] #15286- Typo in ModelAndViewMethodReturnValueHandler's JavaDoc [SPR-10650] #15278
- Ensure that method and requestURI fields are non-null in MockHttpServletRequest [SPR-10643] #15271
- Introduce deleteFromTableWhere() in abstract transactional base classes in the TestContext Framework [SPR-10639] #15267
- Introduce java.nio.file.Path based Resource implementation [SPR-10608] #15237
- Make result-data accessible in onCompletion Event in DeferredResult [SPR-10603] #15232
- ImportSelector and ImportBeanDefinitionRegistrar should be able to implement EnvironmentAware [SPR-10602] #15231
- SimpleCommandLinePropertySource could be enumerable [SPR-10579] #15208
- Support for
@Conditional
@Configuration
[SPR-10534] #15164 - Create MockHttpServletRequestBuilder.accept(String ...mediatTypes) overload. [SPR-10390] #15023
- Introduce ActiveProfilesResolver in the TestContext framework [SPR-10338] #14972
- Make form method accessible to RequestDataValueProcessor [SPR-10041] #14675
- Support implicit ports for MockHttpServletRequest.getRequestURL() [SPR-9726] #14360
- Add spring:argument subtag for spring:message [SPR-9678] #14312
- Introduce TCP & UDP server port scanning utility [SPR-8032] #12687
- MockHttpSession methods should throw IllegalStateException if invalid [SPR-7659] #12315
🪲 Bug Fixes
- PathResourceTests fail on Windows [SPR-10770] #15396
- Ensure ParamTag release resources [SPR-10769] #15395
- Turn down logging in DefaultListableBeanFactory [SPR-10758] #15384
- Could not build from sources [SPR-10751] #15377
- WebSocketHttpRequestHandler constructor doesn't use handshakeHandler [SPR-10721] #15349
- Regression in SharedEntityManagerCreator [SPR-10678] #15306
- Include all SQL statements in batch fail exception [SPR-10677] #15305
- Self-injection in configuration class hierarchies broken [SPR-10668] #15296
- JdbcTemplate.queryForObject throws TypeMismatchDataAccessException when used per the reference manual [SPR-10651] #15279
- Support
@Configuration
class parsing fallback to ASM [SPR-10646] #15274 - AbstractMethodError thrown within MethodValidationInterceptor [SPR-10644] #15272
- JsonpTransportHandler read message header problem [SPR-10621] #15249
- Do not consider all
@Component
instances as@Configuration
candidates [SPR-10609] #15238 - Documentation issues in
@RequestMapping
[SPR-10587] #15216 - Fix getters to match setters in RequestMappingHandlerAdapter [SPR-10519] #15150
- view/ JSP compilation exceptions, not logged from JstlView or DispatcherServlet. [SPR-10340] #14974
- Cacheable key collision with DefaultKeyGenerator [SPR-10237] #14870
3.2.3 Release
⭐ New Features
- Enforce JDK version on CI server [SPR-10569] #15198
- Configurable JSON prefix on MappingJackson2JsonView and MappingJacksonJsonView [SPR-10567] #15196
- Small clarification to CronTrigger javadoc [SPR-10556] #15186
- AnnotationAwareOrderComparator does not work on proxied classes [SPR-10514] #15145
- Improve defaulting of media types via ContentNegotiationManager [SPR-10513] #15144
- Jaxb2Marshaller doesn't need to depend on ResourceLoaderAware and thus spring-context [SPR-10512] #15143
- No way to ask MethodReference for its private field 'name' [SPR-10422] #15055
- Make implementations of PreparedStatementSetter public, not package-private [SPR-10375] #15008
- OXM Jaxb2Unmarshaller to support non-root elements [SPR-10282] #14916
🪲 Bug Fixes
- Large number of StandardEnvironment objects are initialised during startup. Visible in the logs at DEBUG level. [SPR-10568] #15197
- Cannot instantiate bean in Spring when using annotations and when it extends generic abstract class compiled to java 1.4 byte code [SPR-10559] #15189
- BeanPropertyRowMapper underscoreName [SPR-10547] #15177
- Loading
@Import
(ChildConfig) or EnclosingConfig.ChildConfig and then ChildConfig does not load beans on ParentConfig [SPR-10546] #15176 - Lookup of beans of type fails for factory beans if type prediction is used. [SPR-10517] #15148
- AbstractAutowireCapableBeanFactory.predictBeanType returns parent type instead of class="" value [SPR-10507] #15139
- Deadlocks with DeferredResult timeout handling on Tomcat [SPR-10485] #15118
- ServletContextResourcePatternResolver fails to resolve resources when an app is using a foo#bar.war filename [SPR-10471] #15104
- cannot delete file once resttemplate has done a multipart postforentity with the said file [SPR-10460] #15093
- NPE in the ContextLoader#customizeContext on building Assert.isAssignable message [SPR-10449] #15082
- Sporadic deadlocks while using servlet scoped beans from another thread. [SPR-10436] #15069
- A URI with URL path parameters causes IllegalStateException [SPR-10427] #15060
- PropertyEditor registered through
@ControllerAdvice
will not be superseded by local one. [SPR-10419] #15052 - Request
@RequestParam
not enforced with empty values [SPR-10402] #15035 - spring3.2 matrix variable url match problem [SPR-10398] #15031
- PooledConnection has already been closed exception with Hibernate 4.2 [SPR-10395] #15028
- Typo in Code Example [SPR-10394] #15027
- ReflectiveMethodResolver causes UnsupportedOperationException [SPR-10392] #15025
- Fix errors in Spring MVC Test server-side code examples [SPR-10389] #15022
- Remove default value of LifecycleGroup.lifecycleBeans [SPR-10388] #15021
- Ant Pattern Matching throws IllegalStateException for multiple RequestMapping values [SPR-10386] #15019
- JdbcTemplate cannot set null parameter with Oracle driver [SPR-10385] #15018
- Form tag prepending context/servlet path breaks use for portlets [SPR-10382] #15015
- Type detection fails for child bean if parent bean has been resolved before [SPR-10374] #15007
- JavaDoc generation reports warnings [SPR-10373] #15006
- Unnecessary check in PatternsRequestCondition.getMatchingPattern [SPR-10504] #14998
4.0 M1 Release
⭐ New Features
- Allow access to applied property sources from PropertySourcesPlaceholderConfigurer [SPR-10545] #15175
- Make DefaultResourceLoader.ClassPathContextResource protected [SPR-10544] #15174
- Consider
@Import
classes as lite@Configuration
[SPR-10533] #15163 - Filter source
@Configuration
with@ComponentScan
[SPR-10531] #15161 - Support *Aware ImportSelectors [SPR-10530] #15160
- Add AnnotationConfigApplicationContext constructor for custom DefaultListableBeanFactory [SPR-10529] #15159
- Make SpringFactoriesLoader.loadFactoryNames method public [SPR-10528] #15158
- Cannot inject ServletContext into MockMultipartHttpServletRequest [SPR-10098] #14731
- Support for JTA 1.2 transaction annotation [SPR-9139] #13778
- Update EhCacheFactoryBean to support current releases (2.4.x) [SPR-8258] #12906
- Support Bean Validation 1.1 (JSR-349) [SPR-8199] #12848
- Support JMS 2.0 (JSR-343) [SPR-8197] #12846
- Support Concurrency Utilities for Java EE (JSR-236) [SPR-8195] #12844
- Support JPA 2.1 (JSR-338) [SPR-8194] #12843
🪲 Bug Fixes
- Use of same
@Configuration
class across multiple ApplicationContexts is not threadsafe [SPR-10936] #15564 - Creating ApplicationContexts from multiple threads causes ConcurrentModificationException [SPR-10543] #15173
- Cannot configure validationMessageSource when using Hibernate 5 as validation implementation [SPR-10466] #15099
- Fix missing font for JasperReports tests on Linux [SPR-10438] #15071
- Concurrent creation of the same Configuration class in different contexts is not thread-safe [SPR-10307] #14941
- IllegalArgumentException initializing an application compiled with Java 8 [SPR-10292] #14926
3.2.2 Release
⭐ New Features
- Clarify DefaultLobHandler's applicability to Oracle 10g/11g [SPR-10339] #14973
- Introduce a pre-resolved target type in RootBeanDefinition [SPR-10335] #14969
- The JARs spring-test-3.2.1 and spring-webmvc-3.2.1 contain two MANIFEST.MF [SPR-10324] #14958
- DefaultJdoDialect does not support JDO 2.2 isolation levels [SPR-10323] #14957
- Replace examples using deprecated SimpleJdbcTemplate [SPR-10317] #14951
- Introduce JdbcTestUtils.deleteFromTableWhere method [SPR-10302] #14936
- Ability to set per-session entity interceptors removed from HibernateTransactionManager for Hibernate 4 [SPR-10301] #14935
- Share locale independent properties among several ResourceBundleMessageSources [SPR-10291] #14925
- In AnnotationSessionFactoryBean, be able to specify annotatedPackages and packagesToScan in one property [SPR-10288] #14922
- Log4jWebConfigurer only uses System properties/environment [SPR-10284] #14918
- StandaloneMockMvcBuilder interface is inconsistent [SPR-10279] #14913
- MockMvcBuilders' use of generics doesn't allow for chaining more than 2 calls [SPR-10277] #14911
- Assertion message unclear when expected and actual have same string representation [SPR-10275] #14909
- Resolve SQL errorCode from underlying SQLException [SPR-10260] #14893
- NamedParameterJdbcTemplate and JdbcTemplate: consider deprecating queryFor* methods [SPR-10257] #14890
- NamedParameterJdbcTemplate: add methods to simplify usage when no parameter is needed [SPR-10256] #14889
- No way to ask RealLiteral for original string (to parse into BigDecimal) [SPR-10248] #14881
- Cannot create relative URIs with UriComponents [SPR-10231] #14864
- DefaultMessageListenerContainer should expose an API to determine whether the consumer successfully connected to a topic/queue [SPR-10230] #14863
- Limit auto grow collection size when using SpEL [SPR-10229] #14862
- org.springframework.http.MediaType.parseMediaType should throw a better exception [SPR-10226] #14859
- Update documentation examples for scheduling to use SimpleTriggerFactoryBean instead of SimpleTriggerBean [SPR-10209] #14842
- Cleanup whitespace in *.aj and use AspectJ Annotations to prevent NoSuchMethodErrors [SPR-10208] #14841
@RequestParam
default value not set in certain cases [SPR-10180] #14813- o.s.web.util.JavaScriptUtils.javaScriptEscape insufficiently escapes some characters [SPR-9983] #14617
- Support WebApplicationContext hierarchies in the TestContext Framework [SPR-9863] #14496
- Transparent authentication fails when POSTing to Kerberos web service using the Simple HTTP Client [SPR-9617] #14251
- Reference Documentation needs a chapter on using Gemfire as a CacheManager [SPR-9468] #14103
- SPEL: Error message is useless at helping developer resolve problem actual problem, EL1027E:(pos 4): Indexing into type ... [SPR-8876] #13517
@Cachable
condition should allow referencing return value [SPR-8871] #13512- Hibernate Annotation scanner missing package-info.java [SPR-8589] #13233
- Update for Spring OXM Reference, including changes introduced in CastorMarshaller [SPR-8509] #13155
@PreDestroy
and@PostConstruct
should be mentioned more prominently in container callback section [SPR-8493] #13139- CastorMarshaller - marshaller and unmarshaller properties. [SPR-8470] #13116
@Scheduled
's int attributes do not allow for placeholder values [SPR-8067] #12722- AnnotationSessionFactoryBean packagesToScan does not scan for annotations in package's package-info.java file [SPR-7748] #12404
- Make MappingJacksonJsonView fields protected to make extending it easier [SPR-7619] #12275
- Provide support for context hierarchies in the TestContext Framework [SPR-5613] #10284
- Performance improvement on AbstractCachingViewResolver [SPR-3145] #7831
🪲 Bug Fixes
- Configuration class implementing Provider interface throws StackOverflowError after upgrading to Java 7 [SPR-11830] #16449
- Thread-safety issue in RequestMappingHandlerAdapter causes NPE [SPR-10365] #14997
- UriComponentsBuilder.fromUriString(…) throws exception for empty fragment [SPR-10363] #14995
- SpringCompleteAutoloadTilesContainerFactory disables EL expressions [SPR-10361] #14993
- Scope of model attributes when including JSP [SPR-10360] #14992
- mvc:resources location attribute doesn't guarantee order [SPR-10355] #14987
- SpringValidationAdapter cannot handle disabled default constraint violation [SPR-10345] #14979
- Change in FrameworkServlet makes it impossible to use an alternative WebRequest instance for request processing [SPR-10342] #14976
- doOptions method of FrameworkServlet uses servlet 3.0 only method [SPR-10341] #14975
- MockServletContext always returns application/octet-stream for unknown filetypes or ContentNegotiationManager is not correct [SPR-10334] #14968
- StringToEnumConverterFactory fails to convert enums using classes from values [SPR-10329] #14963
- NPE while parsing an invalid indexer expression [SPR-10328] #14962
- By-type matching caches in DefaultListableBeanFactory should be cleared on registerSingleton [SPR-10326] #14960
- Broken UriComponents.equals() method [SPR-10313] #14947
- LazyConnectionDataSourceProxy causes exception in WebSphere with an Oracle database [SPR-10312] #14946
- Reference documentation declares inner beans being prototypes, which is wrong [SPR-10311] #14945
- AspectJ advisor always positioned behind an "old school" advisor [SPR-10309] #14943
- Invalid format media-type in Content-Type request header results in IllegalArgumentException when no handler matched [SPR-10308] #14942
- ArrayIndexOutOfBoundsException in AbstractAutowireCapableBeanFactory.predictBeanType [SPR-10304] #14938
- java.lang.IllegalStateException: getOutputStream() has already been called for this response [SPR-10293] #14927
- MockMvcRequestBuilders.fileUpload() cannot merge if defaultRequest is set [SPR-10280] #14914
@Async
executor ignored if decla...
3.2.1 Release
⭐ New Features
- distinguish "none found" from "several found" in NoSuchBeanDefinitionException [SPR-10194] #14827
- RequestMappingInfoHandlerMapping.handleNoMatch returns null instead of throwing an exception [SPR-10193] #14826
- Provide a means to ignore the character set in ContentResultMatchers.contentType(MediaType) [SPR-10165] #14798
- EntityManagerFactoryUtils.findEntityManagerFactory() does not search parent contexts if persistence unit name is unspecified [SPR-10160] #14793
- AnnotationAwareOrderComparator does not work on Class objects [SPR-10152] #14785
- Improve documentation regarding which
@MVC
annotations are required on interfaces when proxying [SPR-10132] #14765 - Add support for X-Forwarded-Host in ServletUriComponentsBuilder [SPR-10110] #14743
- Support SpEL in
@initial-delay
for task:scheduled [SPR-10102] #14735 - ContentNegotiationManagerFactoryBean does not provide default value for "parameterName" as stated in doc [SPR-10101] #14734
- Implement support of Jackson2 for MappingJacksonMessageConverter [SPR-10099] #14732
- Support configurable charset for ResourcePropertySource [SPR-10096] #14729
- Support OPTIONS method in the MVC Test framework [SPR-10093] #14726
- Detect split packages at build time [SPR-9990] #14624
- Use parameter names during MBeanInfo assembly [SPR-9985] #14619
- Allow customization of request mappings [SPR-9935] #14568
- ResourcePropertySource cannot load JDK 5 properties xml [SPR-9896] #14529
- Allow TypeDescriptor array construction [SPR-9792] #14425
- Infer "shutdown()" as destroy method for convenient EHCache setup using
@Bean
[SPR-9713] #14347 - AnnotationAwareOrderComparator.sort has very misleading syntax [SPR-9625] #14259
- WebApplicationInitializer with AnnotationConfigWebApplicationContext parent gets reset to null by ContextLoaderListener [SPR-9591] #14225
- Relax jms:listener-container xsd:int attributes to xsd:string in order to allow for SpEL expressions [SPR-9553] #14187
- Improve documentation for validation and data binding [SPR-9437] #14073
- Improve support for registering Validator implementations in Spring MVC [SPR-9436] #14072
- Consistency between scheduling/concurrent factory beans, resulting in inheritance improvement [SPR-9435] #14071
- exposeAccessContext should also be available for JndiRmiClientInterceptor [SPR-9428] #14063
- Update reference documentation on handling 401 response in the RestTemplate [SPR-9367] #14004
- WebContentInterceptor.preHandle(request, response, handler), handler of type HandlerMethod not controller instance [SPR-9248] #13886
- Map "no default value for field" MySQL error code to DataIntegrityViolationException [SPR-9237] #13875
- SpringContextResourceAdapter does not fulfill whole JCA 1.5 contract [SPR-9162] #13800
- Request to switch off heading & trailing whitespaces trim of path segments in AntPathMatcher [SPR-8687] #13329
- Form tag should prepend the contextPath and servletPath if not present [SPR-8684] #13326
- EhCacheCacheManager throws assertion error for ehcache configuration with only default cache configured [SPR-7955] #12610
@Primary
and primary attribute of element are not considered for calls to getBean(Class) [SPR-7854] #12511- BufferedImageHttpMessageConverter not using defaultContentType [SPR-7763] #12419
- Make ResponseStatusExceptionResolver handling of
@ResponseStatus
.reason internationalizable [SPR-6044] #10713 - ThreadPoolExecutor waitForTasksToCompleteOnShutdown doesn't work as expected [SPR-5387] #10060
🪲 Bug Fixes
- MBeanExporter/MBeanRegistrationSupport leaks ObjectNames in registeredBeans [SPR-10957] #15585
- HttpEntityMethodProcessor does not support HttpEntity/ResponseEntity subclasses [SPR-10207] #14840
- Support Date to String in JodaTimeConverters [SPR-10198] #14831
- ClassCastException while using completeAutoload in Tiles 3 [SPR-10195] #14828
- MockHttpServletRequest must not throw an exception on getParameter(null) [SPR-10192] #14825
- FormHttpMessageConverter#writePart NPE on 'partBody.getClass()' [SPR-10187] #14820
- UriComponents break UriTemplate serialization [SPR-10186] #14819
- NoSuchMethodError for Aspects [SPR-10178] #14811
- Attribute mode removed from annotation-driven definition in spring-task.xsd [SPR-10177] #14810
- AbstractMessageConverterMethodProcessor returns allSupportedMediaTypes with HttpMediaTypeNotAcceptableException [SPR-10175] #14808
- RequestMapping fileExtension filling interferes with registration of mapping methods [SPR-10173] #14806
- Consider bridge methods in SpEL properties [SPR-10162] #14795
- spring-aspects is compiled with JDK 1.7 compatibility [SPR-10161] #14794
- Building 3.2.x branch with Java 7 fails - api depends on asmRepackJar [SPR-10151] #14784
- Improve exceptions for multi-operand expressions [SPR-10146] #14779
- NPE in PersistenceExceptionTranslationPostProcessor when instantiate a
@Configurable
Bean [SPR-10144] #14777 - MatrixVariable values are not decoded [SPR-10140] #14773
- error with tomcat 6 and spring 3.2 [SPR-10139] #14772
- HttpServletBean requires overly narrow Environment type [SPR-10138] #14771
- MessageSourceResourceBundle.containsKey throws NullPointerException [SPR-10136] #14769
- SpEL support for static finals on interfaces [SPR-10125] #14758
- Fix SpEL JavaBean compliance for setters [SPR-10122] #14755
- ContentNegotiatingViewResolver - Upgrade from 3.1 to 3.2 causes ClassCastException [SPR-10119] #14752
- Fix GenericConversionService search algorithm [SPR-10116] #14749
- Regression in static setter method support [SPR-10115] #14748
- Processing java.math.BigDecimal via Spring's ExtendedBeanInfo fails sporadically [SPR-10111] #14744
- JMSTemplate.receive() and receiveSelected() don't use "receiveTimeout" property if in a transactio...
3.1.4 Release
⭐ New Features
- EhCacheCacheManager throws assertion error for ehcache configuration with only default cache configured [SPR-7955] #12610
- SpringContextResourceAdapter does not fulfill whole JCA 1.5 contract [SPR-9162] #13800
- exposeAccessContext should also be available for JndiRmiClientInterceptor [SPR-9428] #14063
- WebApplicationInitializer with AnnotationConfigWebApplicationContext parent gets reset to null by ContextLoaderListener [SPR-9591] #14225
- ResourcePropertySource cannot load JDK 5 properties xml [SPR-9896] #14529
- Concurrent Consumers Not Allowed for Durable Subscription [SPR-10037] #14671
- Unnecessary reading of java.lang.Object input stream [SPR-10058] #14691
- Implement support of Jackson2 for MappingJacksonMessageConverter [SPR-10099] #14732
- EntityManagerFactoryUtils.findEntityManagerFactory() does not search parent contexts if persistence unit name is unspecified [SPR-10160] #14793
- RequestMappingInfoHandlerMapping.handleNoMatch returns null instead of throwing an exception [SPR-10193] #14826
- Remove xsd versions from reference samples [SPR-10010] #14644
- Use ExtendedBeanInfo on an as-needed basis only [SPR-9723] #14357
- Documentation update regarding aspectjrt and aspectjweaver jars usage [SPR-8896] #13537
🪲 Bug Fixes
- MemoryLeak in Cglib2AopProxy.ProxyCallbackFilter [SPR-8008] #12663
- CachedIntrospectionResults cannot be cleared for null class loaders [SPR-9189] #13827
- MimeMessageHelper does not handle attachment file name encoding [SPR-9258] #13896
- BridgeMethodResolver throws exception when trying to find bridged method if method is declired in interface or it is abstract [SPR-9330] #13968
- FreeMarkerConfigurationFactory's instance variable become enlarged whenever call create method. [SPR-9389] #14025
- LocalVariableTableParameterNameDiscoverer doesn't support bridged methods [SPR-9429] #14065
- MBeanExporter#destroy logs warnings about explicitly unregistered mbeans [SPR-9451] #14086
- SimpleDriverDataSource doesn't use the connectionProperties specified [SPR-9461] #14096
- Add migration instructions regarding component-scanning against "org" base package [SPR-9843] #14476
- MockHttpServletResponse.getHeaderNames is incompatible with Servlet 3.0 [SPR-9885] #14518
- ContextLoader incorrectly refreshes already refreshed context [SPR-9996] #14630
- SpringBeanAutowiringInterceptor not closing ApplicationContext after EJB initialisation exception [SPR-10013] #14647
- AbstractCachingViewResolver - caching redirect views leads to memory leak [SPR-10065] #14698
- EclipseLink marks transaction RollbackOnly when applying timeout for "nonread" queries [SPR-10068] #14701
- NamedParameterJdbcTemplate for "insert / select" clause, set NULL value causes JConnect 7 (Sybase) problem - java.io.IOException: JZ0SL: Unsupported SQL type 0. - Affects 3.1.3.RELEASE, works in 3.1.1.RELEASE [SPR-10084] #14717
- HierarchicalUriComponents.equals() incorrectly returns false when other object is not an instance of OpaqueUriComponents [SPR-10088] #14721
- SpEl bug while reading boolean fields [SPR-10091] #14724
- DMLC: JMS resources are never cleared under certain conditions [SPR-10092] #14725
- JMSTemplate.receive() and receiveSelected() don't use "receiveTimeout" property if in a transaction [SPR-10109] #14742
- Processing java.math.BigDecimal via Spring's ExtendedBeanInfo fails sporadically [SPR-10111] #14744
- SpEL support for static finals on interfaces [SPR-10125] #14758
- MessageSourceResourceBundle.containsKey throws NullPointerException [SPR-10136] #14769
- Consider bridge methods in SpEL properties [SPR-10162] #14795
- AbstractMessageConverterMethodProcessor returns allSupportedMediaTypes with HttpMediaTypeNotAcceptableException [SPR-10175] #14808
- Attribute mode removed from annotation-driven definition in spring-task.xsd [SPR-10177] #14810
- FormHttpMessageConverter#writePart NPE on 'partBody.getClass()' [SPR-10187] #14820
- MockHttpServletRequest must not throw an exception on getParameter(null) [SPR-10192] #14825
- HttpEntityMethodProcessor does not support HttpEntity/ResponseEntity subclasses [SPR-10207] #14840
- MBeanExporter/MBeanRegistrationSupport leaks ObjectNames in registeredBeans [SPR-10957] #15585
- Handling of BeanInfo broken [SPR-10040] #14674
- Deadlock in DefaultListableBeanFactory/DefaultSingletonBeanRegistry [SPR-10020] #14654
- ReflectivePropertyAccessor should not consider bridge methods [SPR-9994] #14628
- IntrospectionException: type mismatch between indexed and non-indexed methods [SPR-9943] #14576
- Prevent duplicate
@Import
processing and ImportBeanDefinitionRegistrar invocation [SPR-9925] #14558 - Ensure LineNumberReader is always closed in ResourceDatabasePopulator [SPR-9912] #14545
- ExtendedBeanInfo exception - java.beans.IntrospectionException [SPR-9702] #14336
- Deadlock between DefaultListableBeanFactory and DefaultSingletonBeanRegistry, perhaps due to lazily-instantiated aspect [SPR-7718] #12374
📔 Documentation
- Doc: Bad snippet for CompositeCacheManager [SPR-9064] #13703
- Error in doc on JCA CCI - ConnectionSpecConnectionFactoryAdapter [SPR-9466] #14101
- Example shows deprecated ScheduledTimerTask [SPR-10050] #14683
- Community Download site mentioned in the docs doesn't work [SPR-10171] #14804
- Fix castor website [SPR-10189] #14822
- Backport "Documentation update regarding aspectjrt and aspectjweaver jars usage" [SPR-10009] #14643
3.2 GA Release
⭐ New Features
- Support external Javadoc links [SPR-10078] #14711
- Support comments within SQL statements in ResourceDatabasePopulator [SPR-10075] #14708
- Make DeferredResult extensible [SPR-10059] #14692
- Unnecessary reading of java.lang.Object input stream [SPR-10058] #14691
- FormHttpMessageConverter should have a MappingJackson2HttpMessageConverter in its partConverters [SPR-10055] #14688
- Make it easier to integrate Tiles 3 with Spring MVC [SPR-10054] #14687
- Add hook for before concurrent handling [SPR-10052] #14685
- Rename MvcAsyncTask to WebAsyncTask [SPR-10051] #14684
- Concurrent Consumers Not Allowed for Durable Subscription [SPR-10037] #14671
- SpEL performance [SPR-10035] #14669
- Support comments within SQL statements in JdbcTestUtils [SPR-9982] #14616
- Possibility to disable WebApplicationInitializer [SPR-9977] #14611
- Eclipse .classpath exports optional and provided dependencies [SPR-9656] #14290
- Setting default charset in StringHttpMessageConverter [SPR-7904] #12559
🪲 Bug Fixes
- DMLC: JMS resources are never cleared under certain conditions [SPR-10092] #14725
- SpEl bug while reading boolean fields [SPR-10091] #14724
- HierarchicalUriComponents.equals() incorrectly returns false when other object is not an instance of OpaqueUriComponents [SPR-10088] #14721
- Replace SLF4J with ACL in TilesConfigurer for Tiles 3 [SPR-10077] #14710
- POM of spring-aspects should have a dependency on aspectjweaver and not aspectjrt [SPR-10072] #14705
- Tests in spring-test-mvc fail to execute in Eclipse [SPR-10070] #14703
- EclipseLink marks transaction RollbackOnly when applying timeout for "nonread" queries [SPR-10068] #14701
- AbstractCachingViewResolver - caching redirect views leads to memory leak [SPR-10065] #14698
- 404 error when working with .htm servlet-mapping [SPR-10061] #14694
- StandaloneMockMvcBuilder's setHandlerExceptionResolvers does not return the builder [SPR-10053] #14686
- MVC test support breaks the contract of ServletRequestAttributes.getRequest() [SPR-10025] #14659
- AbstractBeanFactory#markBeanAsCreated performance issue due to lock contention [SPR-9780] #14414
- AbstractAutoProxyCreator and RequiredAnnotationBeanPostProcessor synchronized HashSet locking bottleneck [SPR-9711] #14345
- MemoryLeak in Cglib2AopProxy.ProxyCallbackFilter [SPR-8008] #12663
📔 Documentation
- Example shows deprecated ScheduledTimerTask [SPR-10050] #14683
- Document new testing features in the "New in Spring 3.2" section of the reference manual [SPR-9941] #14574
- Document WebApplicationContext support in the TestContext Framework [SPR-9864] #14497
- Document which functionality gets implicitly activated by <context:component-scan /> [SPR-9808] #14441